⊗ppPmFmOFH 299 of 447 menu

Formulierverwerking in één PHP-bestand

In de vorige les was ons formulier geplaatst op de ene pagina en verzonden naar een andere. Dat is eigenlijk niet verplicht. Als je het attribuut action leeg laat of helemaal verwijdert, dan wordt het formulier naar deze zelfde pagina verzonden.

Hoe dit werkt: bij het eerste bezoek aan de pagina vullen we het formulier met gegevens en klikken we op de knop. Daarna wordt de pagina vernieuwd en de code wordt opnieuw uitgevoerd, maar nu met de formuliergegevens.

Laten we een voorbeeld bekijken. Stel dat we in één bestand een formulier en de verwerking ervan hebben:

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

Bij het eerste bezoek aan de pagina zal de functie var_dump een lege array tonen. En na het verzenden van het formulier toont het de formuliergegevens. Dat betekent de eerste keer is $_GET leeg, en de tweede keer - bevat het de formuliergegevens.

Dit kan tot problemen leiden. Stel, bijvoorbeeld, we voeren getallen in het formulier in en wil de som van deze getallen op het scherm tonen:

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

In dit geval zullen we bij het eerste bezoek aan de pagina PHP-fouten zien, gerelateerd aan het feit dat de array $_GET leeg is, terwijl we ernaar proberen toegang te krijgen.

Hier moet gezegd worden dat de fouten mogelijk niet in de browser verschijnen. In dat geval controleer je of de weergave van PHP-fouten is ingeschakeld, en zorg ervoor dat het je eerste bezoek aan de pagina is en dat er geen formuliergegevens in de adresbalk staan.

Laten we het probleem oplossen. Hiervoor voegen we een voorwaarde toe, waarin we controleren of het formulier is verzonden.

Je kunt bijvoorbeeld controleren of $_GET niet leeg is. Als $_GET niet leeg is - dan is het formulier verzonden en kan de optelling worden uitgevoerd. Anders is het nog het eerste bezoek aan de pagina en wordt de optelling niet uitgevoerd. Dus, hier is de gecorrigeerde code:

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

Vraag de gebruiker om achternaam, voornaam en patroniem (tussenvoegsel). Na het verzenden van het formulier, toon de ingevoerde gegevens op het scherm.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren