Jos haluat saada palautelomakkeen tiedot omaan tekstitiedostoosi voi sen tehdä näin.
Palaute.html
<form action="kasittely.php"> Nimimerkki: <input type="text" name="kentta1" placeholder="Nimimerkki..."> <br> Palaute: <textarea name="kentta2" cols="40" rows="5"></textarea> <br> <br> <input type="submit" value="Lähetä!"> </form>
kasittely.php
Tiedostoon ei tuossa tule rivinvaihtoa, jolloin kaikki palautteet tulevat samalle riville. Ei ole kovin kätevää. Lisäksi monen viestin lähetys samaan aikaan voi teoriassa sekoittaa tiedoston sisällön; tämän välttämiseksi tiedoston voisi lukita flock-funktiolla tai kirjoittaa file_put_contents-funktiolla sopivilla valitsimilla. Ylimääräiset kolme pistettä textarea-tagissa ihmetyttävät myös. Lisäksi lomakkeesta puuttuu POST-metodin valinta. Oletko edes testannut koodiasi?
Menee ehkä vähän aiheen ohi, mutta paikkamerkillä (placeholder
) ei pitäisi korvata kentän nimikettä (label
).
HTML5 kirjoitti:
Menee ehkä vähän aiheen ohi, mutta paikkamerkillä (placeholder) ei pitäisi korvata kentän nimikettä (label).
+1 koska asiaankuuluva nimimerkki.
Metabolix kirjoitti:
lomakkeesta puuttuu POST-metodin valinta.
Vasta nyt huomasin että post method puuttui.
<form action="kasittely.php" method="POST"> Nimimerkki: <input type="text" name="kentta1" placeholder="Nimimerkki..."> <br> Palaute: <textarea name="kentta2" cols="40" rows="5"></textarea> <br> <br> <input type="submit" value="Lähetä!"> </form>
Lisäys:
Ja kasittely.php:sta puuttui ; echon lopusta
Muuttaisin HTML-koodin seuraavaan muotoon:
<form action="kasittely.php" method="post"> <p> <label> Nimimerkki: <input type="text" name="kentta1"> </label> </p> <p> <label> Palaute: <textarea name="kentta2" cols="40" rows="5"></textarea> </label> </p> <p> <input type="submit" value="Lähetä!"> <p> </form>
Rivitys on parempi tehdä kappale-elementeillä (p
) kuin rivinvaihdoilla (br
).
Label
-elementit mahdollistavat sen, että nimekettä napsauttamalla kenttä aktivoituu. Ne myös yhdistävät nimikkeet semanttisesti kenttiin.
Paikkamerkille ei ole tässä tarvetta, kun kentällä on nimike.
Koodi on sisennetty, ja form
-elementille on lisätty puuttuva method
-attribuutti.
***
PHP:n isset
-funktio ottaa vastaan useampiakin kohteita, joten ehdon
voisi kirjoittaa muotoon
isset($_POST['kentta1'], $_POST['kentta2'])
Tiedostoon kirjoittamisen voi tehdä lyhyemmin funktiolla file_put_contents
.
[sarcasm]Käytännöllistä saada palaute tekstitiedostoon.[/sarcasm]
Aihe on jo aika vanha, joten et voi enää vastata siihen.