Parse error: syntax error, unexpected ''
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai cette erreur : Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\rs\pages\profile.php on line 23
Voici mon profile.php :
Que faire ? Merci d'avance :)
J'ai cette erreur : Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\rs\pages\profile.php on line 23
Voici mon profile.php :
<?php //----------------------------- //Profile.php //----------------------------- include_once('body/header.php'); include_once('body/menu.php'); ?> <div class='info'> <?php if(!function_exists('recuperer_info_membre_choisi')){ echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! "; } $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $arr_infos = recuperer_info_membre_choisi($pseudo); if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){ foreach($arr_infos as $R) { if(demande_existe() == 0){ echo "<div class='error'> Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br /> <a href='index.php?page=envoi&pseudo=<?php echo $info_membre_choisi['pseudo']; ?>'>Envoyer une invitation</a> </div>"; } echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>"; echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>"; echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>"; echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>"; } }else{ header("Location:index.php?page=membre"); } ?> </div>
Que faire ? Merci d'avance :)
A voir également:
- Parse error: syntax error, unexpected ''
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Error 1962 ✓ - Forum PC fixe
- Whea error occt - Forum Processeur
- A javascript error occurred in the main process - Forum Matériel & Système
19 réponses
Tu fais à chaque fois la même erreur .....
Tu es DEJA dans un ECHO ... et toi tu REMETS un echo...
Forcément ..ça ne marche pas !
Ensuite.... d'où sors tu la variable $info_membre_choisi ??? si tu regardes bien le code ... c'est $R qu'il faut utiliser ...!
bref...Corrige ainsi :
Tu es DEJA dans un ECHO ... et toi tu REMETS un echo...
echo "<div class='error'> Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br /> <a href='index.php?page=envoi&pseudo=<?php echo $info_membre_choisi['pseudo']; ?>'>Envoyer une invitation</a> </div>";
Forcément ..ça ne marche pas !
Ensuite.... d'où sors tu la variable $info_membre_choisi ??? si tu regardes bien le code ... c'est $R qu'il faut utiliser ...!
bref...Corrige ainsi :
echo "<div class='error'> Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br /> <a href='index.php?page=envoi&pseudo=".$R['pseudo']."'>Envoyer une invitation</a> </div>";
Salut !
Tu fais un echo d'echo, pourquoi ??? Tout simplement :
Tu fais un echo d'echo, pourquoi ??? Tout simplement :
<?php //----------------------------- //Profile.php //----------------------------- include_once('body/header.php'); include_once('body/menu.php'); ?> <div class='info'> <?php if(!function_exists('recuperer_info_membre_choisi')){ echo "ERREUR : La fonction recuperer_info_membre_choisi n'existe pas ! "; } $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $arr_infos = recuperer_info_membre_choisi($pseudo); if(count($arr_infos)>0 && $pseudo != $_SESSION['pseudo']){ foreach($arr_infos as $R) { if(demande_existe() == 0){ echo "<div class='error'> Vous n'êtes pas ami(e) avec ".$R['pseudo']."<br /> <a href='index.php?page=envoi&pseudo=".$info_membre_choisi['pseudo']."Envoyer une invitation</a> </div>"; } echo"<img src='avatar/". $R['avatar']."' height='200' width='200' alt='avatar'>"; echo "<p><strong>Email : </strong><em>".$R['email']."</em></p>"; echo "<p><strong>Sexe : </strong><em>".$R['sexe']."</em></p>"; echo "<p><strong>A propos de vous : </strong><em>".$R['apropos']."</em></p>"; } }else{ header("Location:index.php?page=membre"); } ?> </div>
Rien ne change, j'ai un petit chargement puis rien. J'ai : http://localhost/rs/index.php?page=profile&pseudo=xzak47
<!DOCTYPE html> <html> <head> <link rel='stylesheet' href='css/style.css'> </head> <meta charset="UTF-8" > <body> <div id='content'> ??<div class='header'> Bienvenue jean<p><a href="index.php?page=logout">Se déconnecter</a></p> </div>?<div class='menu'> <ul> <li><a href="index.php?page=membre">Accueil</a></li> <li><a href="index.php?page=update">Changer vos informations</a></li> <li><a href="index.php?page=liste_membre">les membres</a></li> <li><a href="">Vos amis</a></li> <li><a href="">Invitations</a></li> <li><a href="">Messages</a></li> <li class="nbr">2 membres</li> </ul> </div><div class='info'> <div class='error'> Vous n'êtes pas ami(e) avec xzak47<br /> <a href='index.php?page=envoi&pseudo=xzak47'>Envoyer une invitation</a> </div><img src='avatar/CR7.jpg' height='200' width='200' alt='avatar'><p><strong>Email : </strong><em> xxxxx@gmail.com</em></p><p><strong>Sexe : </strong><em>Homme</em></p><p><strong>A propos de vous : </strong><em>En cours de développement</em></p></div> </div> </body>
(Adresse mail supprimée par la modération)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
On est bien d'accord que ton souci .. c'est le lien
Tu as quoi dans ta page ENVOI ?
Je pense que le souci vient de là ....
<a href='index.php?page=envoi&pseudo=xzak47'>Envoyer une invitation</a>
Tu as quoi dans ta page ENVOI ?
Je pense que le souci vient de là ....
Oui ! envoi.php :
<?php enreg_invitation(); header("Location:index.php?page=profile&pseudo=".$_GET['pseudo']); ?>
Que t'ai-je dis par rapport à l'utilisation des variables GET / POST / SESSION ... ????
TOUJOURS .. les traiter avec ISSET ... AVANT de les utiliser !
Eventuellement... le temps des tests .. tu peux commenter la redirection et voir si tu arrives bien sur la page... en ajoutant un echo par exemple..
Cordialement,
Jordane
TOUJOURS .. les traiter avec ISSET ... AVANT de les utiliser !
<?php enreg_invitation(); $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo){ header("Location:index.php?page=profile&pseudo=".$pseudo); exit(); }else{ echo "<br> ERREUR ! Aucun Pseudo passé en paramètre!! "; } ?>
Eventuellement... le temps des tests .. tu peux commenter la redirection et voir si tu arrives bien sur la page... en ajoutant un echo par exemple..
<?php $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; //---------------------------------------------------------// //le temps des tests : //---------------------------------------------------------// echo "<br> page ENVOI : OK ! "; echo "<br> Pseudo = "$pseudo; //---------------------------------------------------------// enreg_invitation(); if($pseudo){ // header("Location:index.php?page=profile&pseudo=".$pseudo); exit(); }else{ echo "<br> ERREUR ! Aucun Pseudo passé en paramètre!! "; } ?>
Cordialement,
Jordane
c'est affiché : page ENVOI : OK !
Pseudo = xzak47
Pseudo = xzak47
Oui c bien ce pseudo ! mais du coup j'ai décommenter les echo, j'ai mis ceci :
mais je ne suis pas redirigé, meme problème :(
<?php enreg_invitation(); $pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo){ header("Location:index.php?page=profile&pseudo=".$pseudo); exit(); }else{ echo "<br> ERREUR ! Aucun Pseudo passé en paramètre!! "; } ?>
mais je ne suis pas redirigé, meme problème :(
Pourtout... dans ta barre d'adresse ... tu as bien :
http://localhost/rs/index.php?page=profile&pseudo=xzak47
... c'est donc que la redirection a fonctionné.....
En quoi ... selon toi... la redirection n'a pas marché ?
A quoi le vois tu ?
N'est tu pas sur la page profil ?
N'est-ce pas le profil de xzak47 qui apparait ??
....
http://localhost/rs/index.php?page=profile&pseudo=xzak47
... c'est donc que la redirection a fonctionné.....
En quoi ... selon toi... la redirection n'a pas marché ?
A quoi le vois tu ?
N'est tu pas sur la page profil ?
N'est-ce pas le profil de xzak47 qui apparait ??
....
Je parle de quand je clique sur "Envoyer l'invitation", rien ne se passe
Quand tu cliques sur "Envoyer l'invitation" .... rien ne se passe ??
Pourtant ... tu arrives bien sur la page "envoie" ... (c'est ce qu'on a vérifié en y désactivant la redirection...)
Donc il se passe bien quelque chose !
Ensuite.. dans le code de ta page envoie... tu rediriges vers la page profil ... tu as peut être l'impression que rien ne se passe ... mais à mon avis c'est juste que ça va trop vite pour tu ne le vois !....
Pourtant ... tu arrives bien sur la page "envoie" ... (c'est ce qu'on a vérifié en y désactivant la redirection...)
Donc il se passe bien quelque chose !
Ensuite.. dans le code de ta page envoie... tu rediriges vers la page profil ... tu as peut être l'impression que rien ne se passe ... mais à mon avis c'est juste que ça va trop vite pour tu ne le vois !....
Oui et bien quoi ??
Il se passe bien ce que je dis ......
Donc.. c'est pas que ta redirection ne marche pas.... c'est autre chose...
sûrement ta fonction enreg_invitation(); qui ne marche pas correctement !
Au passage ... je trouve que les tutos que tu suis... ne sont pas terribles du tout...
- Utilisation des variables POST /GET / SESSION sans ISSET ...
- Des appels à des fonctions sans paramètres ....
- Le fait qu'il soit en mysql et non en mysqli ou PDO ....
Je pense sérieusement que ce n'est pas comme ça que tu vas correctement apprendre à coder !
Il te manque les BASES du langage PHP .....
La meilleur preuve .. tu n'es pas capable par toi même, de résoudre le moindre souci ( message d'erreur.....)
Tu devrais vraiment suivre des tutos plus récents et mieux faits ... comme ceux du site openclassroom.
Quoi qu'il en soit .. revenons à ton problème actuel :
Quand tu cliques sur Envoyer une invitation ... est-ce que ça change quelque chose dans ta BDD ?
Il se passe bien ce que je dis ......
Donc.. c'est pas que ta redirection ne marche pas.... c'est autre chose...
sûrement ta fonction enreg_invitation(); qui ne marche pas correctement !
Au passage ... je trouve que les tutos que tu suis... ne sont pas terribles du tout...
- Utilisation des variables POST /GET / SESSION sans ISSET ...
- Des appels à des fonctions sans paramètres ....
- Le fait qu'il soit en mysql et non en mysqli ou PDO ....
Je pense sérieusement que ce n'est pas comme ça que tu vas correctement apprendre à coder !
Il te manque les BASES du langage PHP .....
La meilleur preuve .. tu n'es pas capable par toi même, de résoudre le moindre souci ( message d'erreur.....)
Tu devrais vraiment suivre des tutos plus récents et mieux faits ... comme ceux du site openclassroom.
Quoi qu'il en soit .. revenons à ton problème actuel :
Quand tu cliques sur Envoyer une invitation ... est-ce que ça change quelque chose dans ta BDD ?
Quand je vais dans ma bdd je vois bien que la demande en ami est prise en compte, mais normalement je devrais juste avoir la page du profil apres le clic non ?
<?php //----------------------------- //Profile.func.php //----------------------------- // la fonction qui va recuperer les informations de la personne choisie par l'utilisateur function recuperer_info_membre_choisi($pseudo = NULL) { global $bdd; // déclaration globale de BDD $result = array(); $sql = "SELECT * FROM utilisateurs WHERE pseudo=:pseudo" ; $query = $bdd->prepare($sql); $query->execute(array(':pseudo' =>$pseudo)); $result=$query->fetchall(); return $result; } //la function qui va vérifier si une demande existe entre les deux membres function demande_existe() { global $bdd; // déclaration globale de BDD $query = $bdd->prepare("SELECT COUNT(id_invitation) FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo) "); $query ->execute(array('get_pseudo' => $_GET['pseudo'], 'session_pseudo' => $_SESSION['pseudo'])); }
1 - Tu ne suis aucun de mes conseils visiblement !
2 - ... il te manque un FETCH .. pour voir récupérer le contenu de ta requête
3 - Il te manque un RETURN à la fin de ta fonction ... sinon.. ben... elle ne RETOURNE RIEN !
Je te laisse déjà faire ces corrections là .
Une fois qu'elles seront faites... reposte ton code modifié ....qu'on poursuive si ça ne fonctionne toujours pas !
- La requête et les params ne sont pas séparés de leur utilisation !
- Tu utilises une variable GET et une variable SESSION ... SANS les avoir traité avant avec ISSET ...
2 - ... il te manque un FETCH .. pour voir récupérer le contenu de ta requête
3 - Il te manque un RETURN à la fin de ta fonction ... sinon.. ben... elle ne RETOURNE RIEN !
Je te laisse déjà faire ces corrections là .
Une fois qu'elles seront faites... reposte ton code modifié ....qu'on poursuive si ça ne fonctionne toujours pas !
//la fonction qui va enregistrer l'invitation dans la bdd function enreg_invitation() { global $bdd; $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudoSession && $pseudoGet ){ $sql = "INSERT INTO amis (pseudo_exp,pseudo_dest,date_invitation,date_confirmation,active) VALUES (:sessPseudo,:getPseudo,NOW(),'',0)"; $params = array( ":sessPseudo" => $pseudoSession, ":getPseudo" => $pseudoGet ); $query = $bdd->prepare($sql); $req = $query->execute($params); }else{ echo " Erreur : Une des variables n'existe pas..."; } }
Tu suis bien un tutoriel ... pour apprendre ... non ?
On a déjà échangé pas loin de 200 messages (si ce n'est plus) pour te corriger tes autres fonctions..... tu devrais être en mesure de t'inspirer de tes codes précédents pour corriger celle là !
On va changer un peu de méthode ... au lieu de te donner le code tout fait .... (ce qui n'a aucun intéret pour toi si tu souhaites apprendre....) je vais t'aider à corriger ton code.
On va y aller par étape.
Premièrement .. dans le code suivant :
tu sépares la requête et l'array de params de leur utilisation.
=> Tu n'as qu'à faire la même chose que dans le code que tu nous as posté ici : https://forums.commentcamarche.net/forum/affich-32103280-parse-error-syntax-error-unexpected#30
On a déjà échangé pas loin de 200 messages (si ce n'est plus) pour te corriger tes autres fonctions..... tu devrais être en mesure de t'inspirer de tes codes précédents pour corriger celle là !
On va changer un peu de méthode ... au lieu de te donner le code tout fait .... (ce qui n'a aucun intéret pour toi si tu souhaites apprendre....) je vais t'aider à corriger ton code.
On va y aller par étape.
Premièrement .. dans le code suivant :
function demande_existe() { global $bdd; // déclaration globale de BDD $query = $bdd->prepare("SELECT COUNT(id_invitation) FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo) "); $query ->execute(array('get_pseudo' => $_GET['pseudo'], 'session_pseudo' => $_SESSION['pseudo'])); }
tu sépares la requête et l'array de params de leur utilisation.
=> Tu n'as qu'à faire la même chose que dans le code que tu nous as posté ici : https://forums.commentcamarche.net/forum/affich-32103280-parse-error-syntax-error-unexpected#30
Bon ok... cette étape là .. je te la fait ...
regarde bien .. pour être capable de le refaire par toi même :
Etape 2 : Récupérer les variable proprement... via des ISSET ....; AVANT de les utiliser !
Je te laisse essayer .... et là .. pour le coup .. ce n'est pas abstrait ... tu n'as qu'à regarder le code suivant pour t'en inspirer :https://forums.commentcamarche.net/forum/affich-32103280-parse-error-syntax-error-unexpected#30
.
regarde bien .. pour être capable de le refaire par toi même :
function demande_existe() { global $bdd; // déclaration globale de BDD // je mets la requête dans une variable AVANT de l'utiliser $sql = "SELECT COUNT(id_invitation) FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $_GET['pseudo'], 'session_pseudo' => $_SESSION['pseudo']) ; $query = $bdd->prepare($sql); $query ->execute($params); }
Etape 2 : Récupérer les variable proprement... via des ISSET ....; AVANT de les utiliser !
Je te laisse essayer .... et là .. pour le coup .. ce n'est pas abstrait ... tu n'as qu'à regarder le code suivant pour t'en inspirer :https://forums.commentcamarche.net/forum/affich-32103280-parse-error-syntax-error-unexpected#30
.
Bon.... je n'ai pas le temps d'attendre tes réponses pour ce soir ...
donc voici le code final à obtenir :
Essaye de le comprendre... histoire d'être capable de t'en inspirer pour tes prochains codes !
donc voici le code final à obtenir :
function demande_existe() { global $bdd; // déclaration globale de BDD //récupération des variables PROPREMENT ! $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; // je mets la requête dans une variable AVANT de l'utiliser // PS : j'ai ajouté un ALIAS (COUNT(id_invitation) as NB) afin de pouvoir plus facilement // utiliser le résultat de la requête... $sql = "SELECT COUNT(id_invitation) as NB FROM amis WHERE (pseudo_exp = :session_pseudo AND pseudo_dest = :get_pseudo) OR (pseudo_exp = :get_pseudo AND pseudo_dest = :session_pseudo)"; // je place les params dans une variable avant de l'utiliser : $params = array('get_pseudo' => $pseudoGet, 'session_pseudo' => $pseudoSession) ; $query = $bdd->prepare($sql); $query ->execute($params); $result = $query->fetchall(); //on récupère le NB de ta requête... $nb = $result[0]['NB']; //On fait un RETURN pour envoyer le résultat vers ton code... return $nb; }
Essaye de le comprendre... histoire d'être capable de t'en inspirer pour tes prochains codes !
Le bouton "Envoyer une invitation" a disparu avec votre code ! or quand je remets l'ancien, il reapparait :(
Le bouton "Envoyer une invitation" a disparu avec votre code ! or quand je remets l'ancien, il reapparait :(
1 - L'ancien code était COMPLETEMENT FAUX !
2 - ... Est-ce que pour le pseudo pour lequel tu regardes... une invitation a été envoyée ??
plus de messages d'erreur mais quand je clique sur "envoyer une invitation", je suis pas redirigé sur le profil du membre
Quand tu cliques sur le lien... tu as quoi dans la barre d'adresse de ton navigateur qui apparait ?