isset error werkt niet
Kaas stengel op 14/10/2012 15:44:00:
Ik heb het nu bijna goed, ook al is de code nu te uitgebreid eigenlijk en snap ik van de helft niet wat de code doet maar dat even ter zijde.
Hoezo te uitgebreid? Als het echt te uitgebreid is, moet je dat wat overbodig is verwijderen: heeft immers geen toegevoegde waarde. Dan moet je wel weten wat de code betekent/doet ;-)
En wat als je straks iets moet veranderen en je weet niet wat de functie van iets is, wordt het knap lastig. Dat je het niet helemaal zelf kunt scripten is niet zo erg.
Je gebruikt nu 4x <li>, maar sluit ze nergens af (regels 32-35).
Wat kan ik zoal weg halen dan?
Notice: Undefined index: tijdschrift in C:\websites\..... on line 12
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($_POST['voornaam'] == "") {
$error = "Je bent vergeten om je voornaam in te vullen!<br />";
}
if ($_POST['achternaam'] == "") {
$error .= "Je bent vergeten om je achternaam in te vullen!<br />";
}
if ($_POST['postcode'] == "" ) {
$error .= "Je bent vergeten om je postcode in te vullen!<br />";
}
if ($_POST['tijdschrift'] == "" ) {
$error .= "Je moet minimaal 1 tijdschrijft aankruisen!";
}
if (!isset($error)) {
echo "Gegevens zijn succesvol verzonden.";
}
else {
echo "Gelieve alle formuliervelden netjes in te vullen !<br /><br/>".$error;
}
}
else {
echo "U moet eerst het formulier invullen !<br>";
}
?>
<table> <form method="post" action="">
<tr><td>Vul je voornaam in:</td><td> <input type="text" name="voornaam" size="25">*</td></tr>
<tr><td>Vul je achternaam in:</td><td> <input type="text" name="achternaam" size="25">*</td></tr>
<tr><td>Vul je telefoonnummer in:</td><td> <input type="text" name="telefoonnummer" size="25"></td></tr>
<tr><td>Vul je postcode in:</td><td> <input type="text" name="postcode" size="25">*</td></tr>
</table>
<br>
Ben je een jongen of een meisje:<br>
<INPUT name="guide" type="radio" value="jongen">Jongen
<INPUT name="guide" type="radio" value="meisje">Meisje<p>
Kies minimaal 1 tijdschrijft:<br>
<INPUT type="checkbox" name="tijdschrift" value="gamez">Stuur mij informatie over het tijdschrijft GAMEZ <br>
<INPUT type="checkbox" name="tijdschrift" value="girlz" >Stuur mij informatie over het tijdschrijft GIRLZ <br>
<INPUT type="checkbox" name="tijdschrift" value="uitgaan">Stuur mij informatie over het tijdschrijft UITGAAN <br>
<INPUT type="checkbox" name="tijdschrift" value="mode">Stuur mij informatie over het tijdschrijft MODE <br><br>
<INPUT type="submit" name= "submit" value="Verzend het formulier"><br><br>
<tr><td>Tekstvelden met een * zijn verplicht!</td></tr>
</table>
</FORM>
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($_POST['voornaam'] == "") {
$error = "Je bent vergeten om je voornaam in te vullen!<br />";
}
if ($_POST['achternaam'] == "") {
$error .= "Je bent vergeten om je achternaam in te vullen!<br />";
}
if ($_POST['postcode'] == "" ) {
$error .= "Je bent vergeten om je postcode in te vullen!<br />";
}
if ($_POST['tijdschrift'] == "" ) {
$error .= "Je moet minimaal 1 tijdschrijft aankruisen!";
}
if (!isset($error)) {
echo "Gegevens zijn succesvol verzonden.";
}
else {
echo "Gelieve alle formuliervelden netjes in te vullen !<br /><br/>".$error;
}
}
else {
echo "U moet eerst het formulier invullen !<br>";
}
?>
<table> <form method="post" action="">
<tr><td>Vul je voornaam in:</td><td> <input type="text" name="voornaam" size="25">*</td></tr>
<tr><td>Vul je achternaam in:</td><td> <input type="text" name="achternaam" size="25">*</td></tr>
<tr><td>Vul je telefoonnummer in:</td><td> <input type="text" name="telefoonnummer" size="25"></td></tr>
<tr><td>Vul je postcode in:</td><td> <input type="text" name="postcode" size="25">*</td></tr>
</table>
<br>
Ben je een jongen of een meisje:<br>
<INPUT name="guide" type="radio" value="jongen">Jongen
<INPUT name="guide" type="radio" value="meisje">Meisje<p>
Kies minimaal 1 tijdschrijft:<br>
<INPUT type="checkbox" name="tijdschrift" value="gamez">Stuur mij informatie over het tijdschrijft GAMEZ <br>
<INPUT type="checkbox" name="tijdschrift" value="girlz" >Stuur mij informatie over het tijdschrijft GIRLZ <br>
<INPUT type="checkbox" name="tijdschrift" value="uitgaan">Stuur mij informatie over het tijdschrijft UITGAAN <br>
<INPUT type="checkbox" name="tijdschrift" value="mode">Stuur mij informatie over het tijdschrijft MODE <br><br>
<INPUT type="submit" name= "submit" value="Verzend het formulier"><br><br>
<tr><td>Tekstvelden met een * zijn verplicht!</td></tr>
</table>
</FORM>
Ook is mijn persoonlijke ervaring dat boeken van school achter lopen in vele gevallen. Zo ben ik in gesprek met uitkering instantie om een opleiding te mogen gaan doen. Bij het bezoeken van de school, schrok ik er van de veroudere materiaal die er gebruikt werden. Zo werd er rustig <table> voor opmaak gebruik of formulieren opmaak. Ook erg veel in-line CSS en vooral het I-frame gebruik moest ik om giegelen.
Wat ik wil zeggen is eigenlijk, dat er meer wegen naar Romen gaan. En dat we hier op het forum je zo goed mogelijk willen helpen met eventueel andere manier dan op school word gebruikt.
Bas D L op 14/10/2012 17:45:26:
local krijg ik wel deze foutmelding.
Notice: Undefined index: tijdschrift in C:\websites\..... on line 12
Notice: Undefined index: tijdschrift in C:\websites\..... on line 12
Logisch, want tijdschrift is een array en kun je niet op die manier controleren.
Kijk eens naar isset.
Je zult nog een foutmelding krijgen als je voornaam wel juist is, maar bv de achternaam niet. Definieer $error voor je gaat controleren of de $_POST-waarden bestaan.
Obelix en Idefix op 14/10/2012 18:01:58:
Logisch, want tijdschrift is een array en kun je niet op die manier controleren.
Kijk eens naar isset.
Bas D L op 14/10/2012 17:45:26:
local krijg ik wel deze foutmelding.
Notice: Undefined index: tijdschrift in C:\websites\..... on line 12
Notice: Undefined index: tijdschrift in C:\websites\..... on line 12
Logisch, want tijdschrift is een array en kun je niet op die manier controleren.
Kijk eens naar isset.
Lees de foutmelding. De index is niet gedefinieerd. Heeft niks te maken met of het wel of geen array is. Waarschijnlijk krijg je deze melding als er geen optie bij tijdschrift is geselecteerd. De $_POST waarde wordt dan niet meegestuurd en er is dan geen index gedefinieerd. Of de waarde geset is, kun je inderdaad controleren via isset.
Toevoeging op 14/10/2012 18:45:41:
Misschien bedoelen we overigens hetzelfde, alleen is jouw uitleg niet helemaal lekker ;)
Ozzie PHP op 14/10/2012 18:44:16:
Misschien bedoelen we overigens hetzelfde, alleen is jouw uitleg niet helemaal lekker ;)
Dat laatste ;-)
Maar goed, de code die ik in mijn vorige bericht gaf (die dus bijna werkt) moet dus nog een beetje aangepast worden.
-De tijdschrift error moet er nog in verwerkt worden.
-Criteria moeten soepeler gezet worden, hij controleert nu namelijk of er echt wat zinnigs wordt ingevuld, dit is nog niet nodig voor mij. Het gaat er meer om dat er IETS wordt ingevuld.
-Onder de errors komen 3 zwarte balltjes, die moeten ook nog weg. (Dit zijn dezelfde balletjes als die voor de errors komen te staan).
Jullie hulp wordt zeer gewaardeerd overigens!!!
Toevoeging op 16/10/2012 11:01:01:
De balletjes heb ik inmiddels weggekregen door wat te prutsen met dat <li>.
Nu zit ik nog met de tijdschrift error (die overigens ook niet in die handleiding staat) en het soepeler zetten van de criteria.