Ik heb een geïntegreerd met php aanmeldformulier "compleet.php" in html gemaakt, met de gebruikelijke controles op het invullen van de velden. Hier is de structuur van het script:
<?php
if (isset($_POST['submit'])) {
if ($voornaam == "") {
echo "fout1!<br/>";
} else if ($achternaam == "") {
echo "fout2!<br/>";
} else if ($adres == "") {
echo "fout3!<br/>";
} else if ($netadres == "") {
echo "fout4!<br/>";
} else if (($aanhef = "alia") && ($aanhef1 = "")) {
echo "fout5!<br/>";
} else {bewerking van ingevoerde gegevens en mail naar mij}
?>
Dan volgt het formulier in HTML met bovenstaande velden, te verzenden naar compleet.php
Als ik niets invul in het formulier en meteen naar compleet.php post, krijg ik vermelding van fout4, terwijl ik volgens mij vermelding van fout 1 zou moeten krijgen, want $voornaam == "".
Ik ben geen beginneling, maar gebruik php-html voor mijn taal Esperanto.
Kan iemand mij alsjeblieft helpen?
Zoals Ward al aangaf: Zet de errors aan.
- Aar - op 18/06/2015 17:56:49

<input type="text" name="voornaam" value="<?php if (isset($_POST['voornaam'])) { echo $_POST['voornaam']; } ?> />

AYYY.
Thomas van den Heuvel op 18/06/2015 19:35:15

[quote="- Aar - op 18/06/2015 17:56:49"]

<input type="text" name="voornaam" value="<?php if (isset($_POST['voornaam'])) { echo $_POST['voornaam']; } ?> />

AYYY.

[/quote]
Ai?
Thomas bedoelt:

"AYYY en geen "AYYY"
- geen sluitingsquote voor value="...[color=#ff0000]"[/color]
- je escaped $_POST['voornaam'] niet

:*(
Ik heb van alles geprobeerd, maar kan de foutmeldingen nog steeds niet produceren.
Als ik het volgende script gebruik (ik vermeld steeds maar twee variabelen):
<?php if (isset($_POST['submit'])) {
foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
} else {
$voornaam = $achternaam = "";
}
?>
komt er, als het aanmeldformulier voor het eerst verschijnt: "Notice: Undefined variable: voornaamFt", vanwege
<input type="text" name="voornaam" value="<?php echo $voornaam;?>" size="30"/>
<span class="error">* <?php echo $voornaamFt;?></span>
in het formulier. Idem voor achternaamFt.
Als ik het script uitbreid met twee regels om de foutmeldingen op leeg te zetten:
<?php if (isset($_POST['submit'])) {
foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
} else {
$voornaamFt = $achternaamFt = "";
$voornaam = $achternaam = "";
}
?>
verschijnt het aanmeldformulier zonder Notice, maar als ik het dan leeg verzend, komt er geen echo van voornaamFt en achternaamFt.
De kans dat $voornaamFt bestaat is klein.
<?php // $voornaamFt bestaat NIET
if (isset($_POST['submit'])) {
foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
// $voornaamFt bestaat NIET
if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
else // $voornaamFt bestaat NIET
if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
} else {
// $achternaamFt bestaat NIET
$voornaam = $achternaam = "";
}
?>

Simpele oplossing:
<?php $voornaamFt = '';
$achternaamFt = '';
if (isset($_POST['submit'])) {
foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
} else {
$voornaam = $achternaam = "";
}
?>
Ik bedenk nu, dat het gedeelte
<?php $voornaamFt = $achternaamFt = "";
if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
?>
, weliswaar met de voorwaarde if "(isset($_POST['submit']))", voor het formulier staat en dat het misschien pas "gefired" moet worden bij "submit".
Zie ook mijn aanvulling vorige post.
Jouw opmerking, SanThe kruiste de mijne. Zoals je waarschijnlijk begrijpt, zijn de foutmeldingen vooraf op nul gesteld.

[size=xsmall]Toevoeging op 19/06/2015 15:40:52:[/size]

Ik heb error_reporting(E_ALL | E_STRICT); aan staan.

Reageren