[PHP] If else klopt niet - unexpexted T_ELSE
Na een hele dag scripten zit ik er al redeleijk door heen ahah en mijn vraag was of juloie mij snel uit de brand kunnen helpen waar mijn fout zit !
de fout code melding is :
Parse error: syntax error, unexpected T_ELSE in /home/kevin/domains/kevin.xentia.nl/public_html/testing/formhtml.php on line 29
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
51
52
53
54
55
56
57
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
51
52
53
54
55
56
57
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Arrays declareren voor opslag van fouten en data
$error = array();
$data = array();
// Velden die in het formulier aanwezig moeten zijn
$formuliervelden = array('voornaam', 'achternaam');
// Alle velden doorlopen
foreach($formuliervelden as $veld)
{
// Controleren of er een waarde voor het formulierveld bestaat
if(isset($_POST[$veld]));
{
// Spaties aan begin en eind weghalen
$value = trim($_POST[$veld]);
// Controle of variabele gevuld is
if($value == '')
{
// Foutmelding toevoegen
$error[] = 'je bent vergeten om '.$veld.' in te vullen';
}
// Ingevulde waarden aan data array toevoegen
$data[$veld] = $value;
}
else
{
$error[] = 'Het veld '.$veld.' is niet gepost';
}
}
// Controleren of er geen fouten opgetreden zijn
if(empty($error));
{
// Formulier succes!
echo '<p> je hebt het formulier met succes ingevuld!</p>';
echo '<p> de volgende gegevens heeft u in gevuld</p>';
echo '<p> Voornaam: '.$data['voornaam']'</p>';
echo '<p> Achternaam: '.$data['achternaam'].'</p>';
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=formhtml.php');
foreach($error as $errors);
{
echo '<p style="color:red">'.$error.'</p>';
}
}
{
else header('Location: formhtml.php');
}
}
?>
{
// Arrays declareren voor opslag van fouten en data
$error = array();
$data = array();
// Velden die in het formulier aanwezig moeten zijn
$formuliervelden = array('voornaam', 'achternaam');
// Alle velden doorlopen
foreach($formuliervelden as $veld)
{
// Controleren of er een waarde voor het formulierveld bestaat
if(isset($_POST[$veld]));
{
// Spaties aan begin en eind weghalen
$value = trim($_POST[$veld]);
// Controle of variabele gevuld is
if($value == '')
{
// Foutmelding toevoegen
$error[] = 'je bent vergeten om '.$veld.' in te vullen';
}
// Ingevulde waarden aan data array toevoegen
$data[$veld] = $value;
}
else
{
$error[] = 'Het veld '.$veld.' is niet gepost';
}
}
// Controleren of er geen fouten opgetreden zijn
if(empty($error));
{
// Formulier succes!
echo '<p> je hebt het formulier met succes ingevuld!</p>';
echo '<p> de volgende gegevens heeft u in gevuld</p>';
echo '<p> Voornaam: '.$data['voornaam']'</p>';
echo '<p> Achternaam: '.$data['achternaam'].'</p>';
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=formhtml.php');
foreach($error as $errors);
{
echo '<p style="color:red">'.$error.'</p>';
}
}
{
else header('Location: formhtml.php');
}
}
?>
Gewijzigd op 13/09/2012 21:39:34 door Kevin Verblaauw
Op regel 52 sluit je een else af met } en op regel 53 staat een {
Toevoeging op 13/09/2012 22:11:11:
help me please :*(
Quote:
help me please :*(
We zijn hier om je te helpen, dus daar hoef je echt geen nieuwe reactie voor te geven.
Tevens zijn we hier vrijwillig, we reageren en helpen je wanneer we tijd en zin hebben. Wees blij dat we je helpen en ga niet zitten klagen als we 20 minuten niet reageren.
Alvast bedankt...
tevens zijn we hier op PHPhulp niet echt blij met dit soort bump berichten binnen 24 uur, gelukkig houdt het systeem ze al grotendeels tegen.
Wat doet die puntkomma daar?
Die sluit de if() waardoor else een melding geeft.
lijn 14, lijn 36, lijn 48
De puntkomma aan het einde van die lijnen horen daar niet.
---
Zie ook de reactie van Obelix en Idefix.
Die else staat daar niet goed.
de syntax is
Code (php)
Nooit een else zetten waar geen if komt. Niet creatief zijn en de else binnen de accolades zetten.
---
En dat moet dus overal en altijd goed zitten. 1 puntkomma op de verkeerde plaats is meestal genoeg om alles te verpesten.
Wat jou ook niet helpt, is je systeem van indentering (= het aantal spaties in het begin van elke lijn). Probeer daar altijd heel proper te werken.
bv. lijn 36 en lijn 44.
Die if en else horen samen. Die zouden dan ook exact even veel moeten geïndenteerd zijn (Zoals je het doet op lijnen 14 en 29 is het wel okay). Dan valt het veel meer op wat bij wat hoort.
En dan haal je de fouten er veel vlugger uit.
Gewijzigd op 14/09/2012 11:56:24 door Kris Peeters