|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre à l'essai
![]() Développeur informatique Inscription : décembre 2007 Messages : 155 ![]() |
Bonjour,
Je rencontre un problème avec les guillemets en utilisant PHP. IE m'affiche l'erreur suivante: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING Voici le code de ma deuxième fonction: Code :
$_SESSION["id_user"] = $issue->fields[0]; IE m'affiche également deux erreurs équivalentes à la première (meme type d'erreur) sur cette fonction suivante: Le code de la dernière fonction: Code :
$issue = identification_formulaire (isset($_REQUEST["login"]), isset($_REQUEST["mot_de_passe"])); $issue = identifier($_REQUEST["login"],$_REQUEST["mot_de_passe"]); J'ai essayé de supprimer les guillemets, les trois erreurs disparaissent, cependant, je rencontre une autre erreur: Parse error: syntax error, unexpected $end (cette erreur est indiquée à la dernière ligne de mon fichier) Mon fichier contient 3 fonctions dont voici le code de ma première fonction: Code :
|
||||||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 7 ![]() |
<TD>Nom d'utilisateur</TD>
l'apostrophe de nom d'utilisateur est considérée comme un guillement essaie avec Nom d\utilisateur |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Développeur informatique Inscription : décembre 2007 Messages : 155 ![]() |
J'ai suivi ce que tu m'as dis, mais j'ai toujours le meme problème.
|
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Je ne vois pas d'erreur du type donné dans le code que tu nous fournis.
PHP ne donne pas obligatoirement la ligne où se situe l'erreur quand c'est une faute de frappe, un oublie de parenthèse, de guillemet ou de point-virgule. Regarde plus haut dans ton code ou indique nous la totalité du code donnant l'erreur. Sinon, à part ça dans le 1er code, je ne vois juste : Code :
$sql = "SELECT id FROM user WHERE login=" . $conn->qstr($login) . "AND mot_de_passe=" . $conn->qstr($mot_de_passe); Code :
$sql = "SELECT id FROM user WHERE login='" . $conn->qstr($login) . "' AND mot_de_passe='" . $conn->qstr($mot_de_passe)."'";
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Ok, je n'étais pas très familier avec la syntaxe HEREDOC avec PHP
Apparemment, il ne faut pas que la "balise" fermante soit indentée. Or, il semble que ce soit le cas dans votre code. Code :
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
00
|
|
|
#6 | ||||||
|
Membre à l'essai
![]() Développeur informatique Inscription : décembre 2007 Messages : 155 ![]() |
J'ai changé comme tu m'as indiqué, j'ai toujours le meme problème.
Je vous ai fourni la totalité du code (3 fonctions) et je vous ai indiqué les 3 lignes qui produisent les erreurs. Il fallait bien lire les indications que j'ai écries. Maintenant, je vais afficher la totalité du code qui est composé de 3 fonctions avec les lignes qui génèrent les erreurs: Première fonction: dans cette fonction, j'ai pas d'erreur Code :
Code :
Code :
$_SESSION["id_user"] = $issue->fields[0]; Troisième fonction: deux erreurs Code :
Une erreur se produit sur cette ligne sur cette ligne: Code :
$issue = identification_formulaire (isset($_REQUEST["login"]), isset($_REQUEST["mot_de_passe"])); Code :
$issue = identifier($_REQUEST["login"],$_REQUEST["mot_de_passe"]); |
||||||
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Développeur informatique Inscription : décembre 2007 Messages : 155 ![]() |
C'est bon, je n'ai pas indenté END; et maintenant, il n' y a pas d'erreurs dans ce fichier. Merci bcp pour votre aide. Mais maintenant, je suis entrain de compiler car j'ai bcp de fichiers, il y a d'autres erreurs dans d'autres fichiers.
Pourquoi l'interpréteur PHP n'affiche pas l'erreur sur END; ? Il affiche sur une autre ligne |
|
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
PHP n'est pas compilé mais interprété.
La différence est que le/s script/s sont lus et interprété à la volée. S'il manque un guillemet, un ";" ou une parenthèse, il lui arrive de s'en rendre compte à la fin quand il s'avère manquer de quelque chose pour achever l'interprétation. Il se réfère donc souvent, soit à la fin du document, soit aux lignes précédentes à l'erreur. Pour le reste, la syntaxe HEREDOC est bien particulière (comme n'importe quelle syntaxe en informatique, elle a des règles.) Vous pouvez voir dans le lien que j'ai donné dans mon précédent post les différentes règles. Elle permet de garder les tabulations, les sauts de ligne, permet d'intégrer des variables et de les parser. Elle permet aussi de prendre en compte les guillemets simples et doubles sans échappement. Code :
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
10
|
Copyright © 2000-2012 - www.developpez.com