⊗ppPmFmOFH 299 of 447 menu

Formhåndtering i en enkelt PHP-fil

I den forrige lektion var vores form placeret på én side, men blev sendt til en anden. Det er faktisk ikke nødvendigt. Hvis du efterlader attributten action tom eller fjerner den helt, vil formularen blive sendt til den samme side.

Hvordan det vil fungere: ved første besøg på siden udfylder vi formularen med data og klikker på knappen. Herefter vil siden blive genindlæst og dens kode køres igen, men nu med formdata.

Lad os se på et eksempel. Antag, at vi har en form og dens håndtering i én fil:

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

Ved første besøg på siden vil funktionen var_dump vise et tomt array. Men efter afsendelse af formularen vil den vise formdataene. Det betyder, at første gang vil $_GET være tom, og anden gang - vil den indeholde formdata.

Dette kan føre til problemer. Antag for eksempel, at vi indtaster tal i formularen og ønsker at vise summen af disse tal på skærmen:

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

I dette tilfælde vil vi ved første besøg på siden se PHP-fejl, fordi arrayet $_GET er tomt, og vi forsøger at tilgå dets elementer.

Her skal det siges, at du muligvis ikke får vist fejl i browseren. I så fald skal du kontrollere, at visning af PHP-fejl er slået til, og sikre dig, at det er dit første besøg på siden, og at der ikke er formdata i adresselinjen.

Lad os løse problemet. For at gøre dette tilføjer vi en betingelse, hvor vi kontrollerer, om formularen er blevet afsendt.

For eksempel kan man kontrollere om $_GET er tom. Hvis $_GET ikke er tom - er formularen afsendt, og vi kan udføre summeringen. Ellers er det stadig vores første besøg på siden, og summeringen vil ikke blive udført. Sådan, her er den rettede kode:

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

Spørg brugeren om efternavn, fornavn og mellemnavn. Efter afsendelse af formularen, vis de indtastede data på skærmen.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis