Page 1 sur 1

Parse error en PHP

Publié : 02 févr. 2007, 22:35
par Acron
Bonjour à tous, j'ai un petit problème : j'ai voulu me bricoler une petite calculette pour la SES (science économique et sociale) mais j'ai un problème dans mon code : il me renvoie un message d'erreur et je ne comprend absolument pas pourquoi, pourriez vous m'aider ?

Le code :

Code : Tout sélectionner

<?php
if (isset($choix)){
echo "<form action='calculette.php' method='get'>
<input type='text' name='combien'> Combien de facteurs ?
<br />
<input type='submit' name='submit_2' value='OK'>
</form>";
}
if (isset($combien)){
$form_open="<form action='calculette.php' method='get'>";
$form_close="</form>";
$submit_3="<input type='submit' name='submit_3' value='OK'>";
echo $form_open;
for ($ref=1 ; $ref <= $combien ; $ref++){
echo "$ref <input type='text' name='facteur['$ref']'><br />";
}
echo $submit_3;
echo $form_close;
}
if (isset($facteur) && $choix=="addition"){
$ref_2=1;
while ($ref_2 <= $ref) {
$ref_2=$ref_2++;
$ref_3=0;
$ref_3++;
$result_addition_1=$facteur['$ref_3']+$facteur['$ref_2'];
$result_addition_2=$result_addition_1+$facteur['$ref_3'];
echo $result_addition_2;
}
}
elseif (isset($facteur) && $choix=="soustraction"){
$ref_2=1;
while ($ref_2 <= $ref) {
$ref_2=$ref_2++;
$ref_3=0;
$ref_3++;
$result_soustraction_1=$facteur['$ref_3']-$facteur['$ref_2'];
$result_soustraction_2=$result_soustraction_1-$facteur['$ref_3'];
echo $result_soustraction_2;
}
}
elseif (isset($facteur) && $choix=="multiplication"){
$ref_2=1;
while ($ref_2 <= $ref) {
$ref_2=$ref_2++;
$ref_3=0;
$ref_3++;
$result_multiplication_1=$facteur['$ref_3']*$facteur['$ref_2'];
$result_multiplication_2=$result_multiplication_1*$facteur['$ref_3'];
echo $result_multiplication_2;
}
}
elseif (isset($facteur) && $choix=="division"){
$ref_2=1;
while ($ref_2 <= $ref) {
$ref_2=$ref_2++;
$ref_3=0;
$ref_3++;
$result_division_1=$facteur['$ref_3']/$facteur['$ref_2'];
$result_division_2=$result_division_1/$facteur['$ref_3'];
echo $result_division_2;
}
}
else {
$erreur="Une erreur s'est produite";
echo $erreur;
}
else {
$erreur="Une erreur s'est produite";
echo $erreur;
}
else {
$erreur="Une erreur s'est produite";
echo $erreur;
}
?>
et le message d'erreur :
Parse error: syntax error, unexpected T_ELSE in /home/acron/domains/acron.ns7-wistee.fr/public_html/calculette.php on line 95
On m'a dit de vérifier que je n'avais pas oublié de ";" ni de "}" et ni l'un ni l'autre :'(

Edit : la ligne 95 arrive sur le deuxième else

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9

Publié : 02 févr. 2007, 23:26
par SB
Pourquoi il y a 3 fois le code ci-dessous ?

Code : Tout sélectionner

else {
$erreur="Une erreur s'est produite";
echo $erreur;
} 
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 02 févr. 2007, 23:35
par Acron
Parcequ'il y a trois fois if, donc au cas ou on mettrait autre chose qu'un chiffre par exemple je suis sûr que quel que soit l'étape à laquelle on est rendu ce sera bien un message d'erreur qui apparaîtra et pas un blanc

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9

Publié : 02 févr. 2007, 23:48
par pascal
je comprends rien à l'imbrication de ton code, en tous cas les 3 else à la suite ça me semble hautement suspect.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; ca; rv:1.8.1.1) Gecko/20060601 Firefox/2.0.0.1 (Ubuntu-edgy)

Publié : 03 févr. 2007, 00:09
par myahoo
pascal a écrit :les 3 else à la suite ça me semble hautement suspect
Effectivement, ça ne vaut pas du "case" :P

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 03 févr. 2007, 10:44
par Benoit
Acron a écrit :Parcequ'il y a trois fois if, donc au cas ou on mettrait autre chose qu'un chiffre par exemple je suis sûr que quel que soit l'étape à laquelle on est rendu ce sera bien un message d'erreur qui apparaîtra et pas un blanc
Le bloc "else" doit suivre directement le bloc "if" auquel il se rapporte. Ça n'a pas de sens d'en mettre trois de suite à la fin.

Publié : 03 févr. 2007, 10:55
par Acron
OK merci :)
Je vais retourner le code de façon à ce qu'il n'y ait plus qu'un seul if et donc par conséquent, plus qu'un seul else

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9

Publié : 28 févr. 2007, 02:20
par x@v
le meiux c'est de nous donné laligne qui pose l'erreur

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 prout Firefox/2.0