⊗ppPmFmOFH 299 of 447 menu

Lomakkeen käsittely yhdessä PHP-tiedostossa

Edellisessä oppitunnissa lomakkeemme sijaitsi yhdellä sivulla, mutta lähetettiin toiselle. Itse asiassa tämä ei ole välttämätöntä. Jos jätät attribuutin action tyhjäksi tai poistat sen kokonaan, lomake lähetetään samalle sivulle.

Miten tämä toimii: ensimmäisellä käynnillä sivulla täytämme lomakkeen tiedoilla ja painamme nappia. Tämän jälkeen sivu päivittyy ja sen koodi suoritetaan uudelleen, mutta nyt lomakkeen tietojen kanssa.

Katsotaanpa esimerkkiä. Oletetaan, että meillä on yhdessä tiedostossa lomake ja sen käsittely:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Ensimmäisellä käynnillä sivulla funktio var_dump tulostaa tyhjän taulukon. Mutta lomakkeen lähetyksen jälkeen se tulostaa lomakkeen tiedot. Eli ensimmäinen kerta $_GET on tyhjä, ja toinen kerta - sisältää lomakkeen tiedot.

Tämä voi johtaa ongelmiin. Oletetaan, että esimerkiksi, syötämme lomakkeeseen numeroita ja haluamme tulostaa näiden numeroiden summan näytölle:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

Tässä tapauksessa ensimmäisellä käynnillä sivulla näemme PHP-virheitä, johtuen siitä, että taulukko $_GET on tyhjä, ja me yritämme päästä siihen.

Tässä on syytä sanoa, että sinulla ei ehkä virheitä näy selaimessa. Tässä tapauksessa tarkista, että PHP-virheiden näyttö on päällä, ja varmista, että tämä on ensimmäinen käynti sivulla ja osoiterivillä ei ole lomakkeen tietoja.

Korjataanpa ongelma. Tätä varten lisäämme ehdon, jossa tarkistamme, että lomake on lähetetty.

Esimerkiksi voidaan tarkistaa $_GET tyhjyyden varalta. Jos $_GET ei ole tyhjä - niin lomake on lähetetty ja voidaan suorittaa summaus. Muussa tapauksessa meillä on vielä ensimmäinen käynti sivulla ja summaus ei suoriteta. Joten, tässä on korjattu koodi:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Kysy käyttäjältä sukunimi, etunimi ja patronyymi. Lomakkeen lähetyksen jälkeen tulosta näytölle syötetyt tiedot.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää