login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Undefined index error tijdens afhandelen formulier (Opgelost)

Offline JoDe - 11/06/2016 15:37
Avatar van JoDeLid Beste,
Ik krijg een "undefined index"-fout voor volgende volgende regels code:
  1. <?php
  2. $bus = $_POST["busnr"];
  3. $blindziend = $_POST["bliendziend"];
  4. $ontvfact = $_POST["ontvfact"];

Die laatste twee waren keuzerondjes, maar die eerste was een tekstbox. Ze waren niet allemaal in gebruik, alleen de keuzerondjes. De bus was leeg, maar dat is ook geen verplicht veld.
Kan iemand een beetje helpen?
Alvast bedankt!
Groetjes, Jordymjawss

4 antwoorden

Gesponsorde links
Offline Thomas - 11/06/2016 16:05
Avatar van Thomas Moderator Beste,

Indien checkboxes of radiobuttons niet aangevinkt of geselecteerd zijn worden deze in het geheel niet gePOST. Deze bestaan dan simpelweg niet in de superglobal array $_POST.

Mogelijk zit er ook een spellingsfout in de tekst $_POST["bliendziend"].
Offline Jointjeff - 11/06/2016 16:05 (laatste wijziging 11/06/2016 16:14)
Avatar van Jointjeff HTML interesse Hoi,

Als die POST inputs niet gesubmit worden, dan krijg je inderdaad zo'n foutmelding.

Wat je dus kan doen is kijken of die inputs worden gesubmit door een isset if statement te gebruiken.

Als voorbeeld:
  1. <?php
  2. if ( isset ( $_POST['busnr'] ) ) {
  3. $bus = filter_input( INPUT_POST, 'busnr', FILTER_SANITIZE_STRING ); // mogelijk kan je beter filteren op numerieke invoer
  4. }
  5. ?>


Vergeet niet je input te valideren/filteren.

--

Edit: de spelfout die Thomas al aangaf lijkt me ook het meest voor de hand liggend. :-)
Offline JoDe - 11/06/2016 16:31 (laatste wijziging 11/06/2016 18:17)
Avatar van JoDe Lid Beste mensen,
Het is opgelost! Ik heb in busnr standaard twee nullen laten zetten, omdat dat de oplossing bleek! Mocht die anders kunnen, dan hoor ik het nog altijd graag!
Die keuzerondjes waren een ander verhaal, dat heb ik nog altijd niet door!
Maar een keuzelijst maken leek voor de ontvfact de oplossing en de andere had gewoon fouten in de name=""-atributen!
In ieder geval bedankt!
Jordy (JoDe)

--- Oorspronkelijke reactie ---
Hoi,
Die spelfout was tijdens het overnemen, dat heb ik in de code gecontrolleerd.
En ik heb twee keuzerondjes, elk voor een optie, bij het veld blindziend is dat twee keer met de naam blindziend, de value is ofwel blind, ofwel ziend. Ik had blind aangeduid. Bus was niet verplicht en niet van toepassing, dus dat heb ik leeggelaten.
Maar dat van die code snap ik niet zo goed.
Ik heb
  1. if(!isset($submit))
  2. { echo "Je hebt het formulier niet ingevuld"; }
  3. else { ...
gebruikt als test, deed ik daar wat mis en heeft dat gedaan wat jij met die code bedoelde, @JointJeff!
Ik snap het ook niet zo goed! Ik had dat vroeger nooit!
Ik maak gebruik van Wamp3 met PHP7.0.7 en MySQL5.7.11.
Zou het helpen dat ik het gehele script zou doorsturen via DropBox?
Offline Thomas - 12/06/2016 15:43
Avatar van Thomas Moderator Ik zal dit topic dan voorlopig markeren als zijnde opgelost.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.27s