⊗ppPmFmOFH 299 of 447 menu

Behandling av skjema i én PHP-fil

I forrige leksjon var skjemaet vårt plassert på én side, og ble sendt til en annen. Egentlig er dette ikke nødvendig. Hvis du lar attributtet action stå tomt eller fjerner det helt, vil skjemaet bli sendt til denne samme siden.

Hvordan dette vil fungere: ved første besøk på siden fyller vi ut skjemaet med data og trykker på knappen. Etter dette vil siden bli oppdatert og koden vil kjøres på nytt, men nå med skjemadata.

La oss se på et eksempel. Anta at vi har et skjema og dets behandling 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øk på siden vil funksjonen var_dump vise en tom matrise. Etter at skjemaet er sendt inn vil den vise skjemadata. Det vil si at første gang vil $_GET være tom, og andre gang - vil den inneholde skjemadata.

Dette kan føre til problemer. Anta for eksempel at vi skal skrive inn tall i skjemaet og vil vise summen av disse tallene på skjermen:

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

I dette tilfellet vil vi ved første besøk på siden se PHP-feil, fordi matrisen $_GET er tom, og vi prøver å få tilgang til dens elementer.

Her bør det sies at du kanskje ikke får feil i nettleseren. I så fall sjekk at visning av PHP-feil er slått på, og forsikre deg om at det er første gang du besøker siden og at det ikke er noen skjemadata i adresselinjen.

La oss fikse problemet. For å gjøre dette legger vi til en betingelse der vi sjekker om skjemaet ble sendt inn.

For eksempel kan vi sjekke om $_GET ikke er tom. Hvis $_GET ikke er tom - betyr det at skjemaet ble sendt inn og vi kan utføre addisjon. Ellers er det fortsatt første besøk på siden og addisjon vil ikke bli utført. Så, her er den korrigerte koden:

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

Spør brukeren om etternavn, fornavn og patronym (mellomnavn). Etter at skjemaet er sendt inn, vis de innfylte dataene på skjermen.

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