Problème avec php
Thomas MARTIN
-
Kzim27 Messages postés 16 Statut Membre -
Kzim27 Messages postés 16 Statut Membre -
Bonjour,
J'ai essayé de faire un page php qui compare les valeur des input cochés (pour lesquels l'attribut name="choix0[]") d'un formulaire à des valeurs stockées dans un fichier texte reponse_q0.txt .
Cependant, ça m'affiche tout le temps le même message d'erreur, et j'ai beau chercher, je ne trouve pas d'erreur.
Voici le code de la page php :
et voici le message d'erreur :
( ! ) Parse error: syntax error, unexpected '[' in C:\Program Files\wamp\www\Info222\test.php on line 11
la ligne 11 étant celle en gras.
Si quelqu'un pouvait me dire ce qui cloche, je lui en serait très reconnaissant.
Merci d'avance.
J'ai essayé de faire un page php qui compare les valeur des input cochés (pour lesquels l'attribut name="choix0[]") d'un formulaire à des valeurs stockées dans un fichier texte reponse_q0.txt .
Cependant, ça m'affiche tout le temps le même message d'erreur, et j'ai beau chercher, je ne trouve pas d'erreur.
Voici le code de la page php :
<?php
$score = 0;
if(count($_POST['choix0']) == count(file('reponse_q0.txt')))
{
$comparaison = True;
for($i=0;$i<count($_POST['choix0']);$i++)
{
if(!($_POST['choix0'][$i] == file('reponse_q0.txt')[$i])){$comparaison = False};
};
if($comparaison)
{
$score = $score + 1;
};
};
echo"Votre score est de $score !";
?>
et voici le message d'erreur :
( ! ) Parse error: syntax error, unexpected '[' in C:\Program Files\wamp\www\Info222\test.php on line 11
la ligne 11 étant celle en gras.
Si quelqu'un pouvait me dire ce qui cloche, je lui en serait très reconnaissant.
Merci d'avance.
A voir également:
- Problème avec php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
5 réponses
Je ne suis pas sur que tu puisse faire ca:
peux être essai:
file('reponse_q0.txt')[$i]
peux être essai:
for($i=0;$i<count($_POST['choix0']);$i++)
{
$fileData = file('reponse_q0.txt')
if(!($_POST['choix0'][$i] == $fileData[$i])){$comparaison = False};
};
Merci, mais ça marche toujours pas.
Cette fois, il me met
( ! ) Parse error: syntax error, unexpected T_IF in C:\Program Files\wamp\www\Info222\test.php on line 13
line13 désigne la même ligne, celle en gras dans mon premier message.
Cette fois, il me met
( ! ) Parse error: syntax error, unexpected T_IF in C:\Program Files\wamp\www\Info222\test.php on line 13
line13 désigne la même ligne, celle en gras dans mon premier message.
essaie comme ca:
<?php
$score = 0;
if(count($_POST['choix0']) == count(file('reponse_q0.txt')))
{
$comparaison = True;
for($i=0;$i<count($_POST['choix0']);$i++)
{
$fileData = file('index.php');
if(!($_POST['choix0'][$i] == $fileData[$i]))
{
$comparaison = False;
}
}
if($comparaison)
{
$score = $score + 1;
}
}
echo "Votre score est de $score !";
?>
Ca marche mieux, merci beaucoup, il n'y a plus de message d'erreur. Apparemment, il ne fallait pas mettre de ; après les {}, c'est bien ça ?
Toutefois, il y a un autre problème :
Le score était tout le temps de 0.
En fait, on rentre dans la boucle suivante
if(!($_POST['choix0'][$i] == $fileData[$i]))
{
$comparaison = False;
}
Pour l'indice $i = 0. Quelqu'un aurait-il une idée de pourquoi ?
Inexplicablement, il semblerait que $fileData[0] renvoit "3 ", 3 suivi d'un espace.
Pourtant, fileData fait référence à reponse_q0.txt, un fichier texte qui contient uniquement 3 sur la première ligne.
Ok, en fait, il semblerait que le problème soit présent sur toutes les lignes sauf le dernière, apparemment l'espace est là à cause du retour charriot dans le fichier texte.
En ajoutant FILE_IGNORE_NEW_LINES comme second argument à file, on peut éviter cela.
Du coup, tout marche pour moi, merci beaucoup à vous tous !
Toutefois, il y a un autre problème :
Le score était tout le temps de 0.
En fait, on rentre dans la boucle suivante
if(!($_POST['choix0'][$i] == $fileData[$i]))
{
$comparaison = False;
}
Pour l'indice $i = 0. Quelqu'un aurait-il une idée de pourquoi ?
Inexplicablement, il semblerait que $fileData[0] renvoit "3 ", 3 suivi d'un espace.
Pourtant, fileData fait référence à reponse_q0.txt, un fichier texte qui contient uniquement 3 sur la première ligne.
Ok, en fait, il semblerait que le problème soit présent sur toutes les lignes sauf le dernière, apparemment l'espace est là à cause du retour charriot dans le fichier texte.
En ajoutant FILE_IGNORE_NEW_LINES comme second argument à file, on peut éviter cela.
Du coup, tout marche pour moi, merci beaucoup à vous tous !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question