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.