Lien "retirer de votre liste amis" a disparu et confusion profil
Résoluhharchi9 Messages postés 693 Statut Membre -
Avant d'attaquer la messagerie (ce qui va clore mon site) :
1/ Mon lien pour retirer un amis de ma liste a disparu... et quand je vais dans liste_membre et que je clique sur le profil de "jean" je vois qu'il a les mêmes données que mon compte "xzak47" (à savoir l'email, àpropos et le sexe)...voici le code concerné :
<?php
//-----------------------------
//Profile.php
//-----------------------------
include_once('body/header.php');
include_once('body/menu.php');
$pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$arr_infos = recuperer_info_membre_choisi($pseudo);
$accepter_demande = accepter_demande();
$demande_existe = demande_existe();
$verifier_expediteur = verifier_expediteur();
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=".$R['pseudo']."'>Envoyer une invitation</a>
</div>";
}else if( $accepter_demande == 0 && $verifier_expediteur == 1){
echo "<div class='success'>Demande envoyée
<a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";
}else if($accepter_demande == 0 && $verifier_expediteur == 0){
echo "<div class='success'>Demande en cours<br />
Verifiez vos invitations
</div>";
}
echo ">a href'>Envoyer un message</a></p>"
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><br /><br />";
if( $accepter_demande == 1 && $verifier_expediteur == 1){
echo "<a href='index.php?page=supprimer_amis&pseudo=". $R['pseudo']."' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
}
}//fin du foreach
}else{
header("Location:index.php?page=membre");
}
echo "</div>";
?>
2/ J'ai cette erreur : Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in C:\wamp\www\rs\pages\profile.php on line 32
Merci encore ;)
- Lien "retirer de votre liste amis" a disparu et confusion profil
- Liste déroulante excel - Guide
- Qui a consulté mon profil facebook - Guide
- Verificateur de lien - Guide
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
19 réponses
Un problème de code PHP sur une page de profil affiche les données d'un utilisateur et les invitations d'ami, avec une erreur de syntaxe à la ligne 32 et la disparition du lien. Pour corriger, il faut rétablir les echo et les balises HTML, vérifier les guillemets et les concaténations, et ajuster les blocs conditionnels pour afficher correctement le bouton d'invitation et le retrait. Des réponses évoquent l'usage correct des variables pseudo_exp et pseudo_dest et l'emploi de requêtes préparées pour supprimer un ami, ainsi que la vérification de l'état d'une demande. En complément, des exemples montrent des erreurs de syntaxe autour des echo et des caractères non échappés, des solutions potentielles et des conseils pour tester les requêtes en base.
j'ai mtn un "Envoyer un message" mais je ne peux pas cliquer dessus
Et tu penses que sans voir le code "modifié" .. nous allons pouvoir deviner où se trouve le souci ???
Il faut
1 - Que tu regardes le code généré (celui affiché par ton navigateur.. clic droit.. afficher la source)
2 - Que tu nous montres le code PHP corrigé
NB: Pour qu'un lien fonctionne... il faut qu'il soit correctement écrit !
A savoir :
echo "<a href='index.php?page=envoyer&pseudo=".$R['pseudo']."'>Envoyer un message</a></p>";
=> Je suis parti du principe où tu avais une page nommée : envoyer.php.
le code en question :
<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_dest && $pseudo_exp){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :pseudo_session
AND pseudo_dest = :pseudo_get
OR pseudo_exp = :pseudo_get
AND pseudo_dest = :pseudo_session";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$etatDemande = checkActive($pseudo_session,$pseudo_get );
// echo " <br> La demande est maintenant = ".$etatDemande;
$return = $etatDemande;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}
return $return;
}
/**
* Verifie l'état d'une demande
*/
function checkActive($pseudo_dest,$pseudo_exp ) {
global $bdd;
$return = -1;
$sql = "DELETE FROM amis
WHERE pseudo_exp = :pseudo_exp
AND pseudo_dest = :pseudo_dest";
// je place les params dans une variable avant de l'utiliser :
$params = array(':pseudo_dest' =>$pseudo_dest , ':pseudo_exp' => $pseudo_exp );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$result = $query->fetchall();
$return = count($result)>0 ? $result[0]['active']:-1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
return $return;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_dest && $pseudo_exp){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$etatDemande = checkActive($pseudo_session,$pseudo_get );
// echo " <br> La demande est maintenant = ".$etatDemande;
$return = $etatDemande;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}
return $return;
}
/**
* Verifie l'état d'une demande
*/
function checkActive($pseudo_dest,$pseudo_exp ) {
global $bdd;
$return = -1;
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':pseudo_dest' =>$pseudo_dest , ':pseudo_exp' => $pseudo_exp );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$result = $query->fetchall();
$return = count($result)>0 ? $result[0]['active']:-1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
return $return;
}
<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_get && $pseudo_session){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$etatDemande = checkActive($pseudo_session,$pseudo_get );
// echo " <br> La demande est maintenant = ".$etatDemande;
$return = $etatDemande;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}
return $return;
}
/**
* Verifie l'état d'une demande
*/
function checkActive($pseudo_session,$pseudo_get ) {
global $bdd;
$return = -1;
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$result = $query->fetchall();
$return = count($result)>0 ? $result[0]['active']:-1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
return $return;
}
<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_get && $pseudo_session){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$etatDemande = checkActive($pseudo_session,$pseudo_get );
// echo " <br> La demande est maintenant = ".$etatDemande;
$return = $etatDemande;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}
return $return;
}
/**
* Verifie l'état d'une demande
*/
function checkActive($pseudo_dest,$pseudo_exp ) {
global $bdd;
$return = -1;
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$result = $query->fetchall();
$return = count($result)>0 ? $result[0]['active']:-1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
return $return;
}
j'ai : http://www.noelshack.com/2015-26-1434929726-erreur2.jpg
remplaces tout ton code par :
<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_get && $pseudo_session){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$return = 1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}
return $return;
}
<?php
//la function qui va refuser l'invitation
function refuser_invitation() {
global $bdd;
//récupération des variables PROPREMENT !
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
$pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$return = 0;
if($pseudo_get && $pseudo_session){
$sql = "DELETE FROM amis
WHERE pseudo_exp = :get_pseudo
AND pseudo_dest = :session_pseudo";
// je place les params dans une variable avant de l'utiliser :
$params = array(':session_pseudo' =>$pseudo_session , ':get_pseudo' => $pseudo_get );
eho "<br> le temps des tests :";
echo "<br>params : <br>";
print_r($params);
echo "<br>je suis connecté avec : ".$pseudo_session ;
echo "<br>je veux supprimer : ". $pseudo_get ;
try{
$query = $bdd->prepare($sql);
$query ->execute($params);
$return = 1;
}catch(Exception $e) {
echo "<br>ERREUR ! ".$e->getMessage()."<br>";
echo "<br>params : <br>";
print_r($params);
}
}else{
echo "<br> ERREUR ! Variables vides !";
}
return $return;
}
Cordialement,
Jordane
Tu as bien des choses qui s'affichent sur ta page non ?
(vu que je t'ai fait ajouter du debug.....)
Tu as bien pensé à commenter les redirections ( header:location ...) de ta page "refuser.php" ????
Sinon.. en effet.. tu ne verras jamais les erreurs et/ou les debug que j'ai ajouté !!!!
DELETE FROM amis
WHERE pseudo_exp = ' xzak47'
AND pseudo_dest = 'jean'
<?php
//-----------------------------
//Profile.php
//-----------------------------
include_once('body/header.php');
include_once('body/menu.php');
$pseudo = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;
$arr_infos = recuperer_info_membre_choisi($pseudo);
$accepter_demande = accepter_demande();
$demande_existe = demande_existe();
$verifier_expediteur = verifier_expediteur();
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=".$R['pseudo']."'>Envoyer une invitation</a>
</div>";
}else if( $accepter_demande == 0 && $verifier_expediteur == 1){
echo "<div class='success'>Demande envoyée
<a href='index.php?page=annuler&pseudo=".$R['pseudo']."'>Annuler la demande</a></div>";
}else if($accepter_demande == 0 && $verifier_expediteur == 0){
echo "<div class='success'>Demande en cours<br />
Verifiez vos invitations
</div>";
}
echo "<a href='index.php?page=new_message&pseudo=".$R['pseudo']."'>Envoyer un message</a></p>";
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><br /><br />";
if( $accepter_demande == 1 && $verifier_expediteur == 1){
echo "<a href='index.php?page=supprimer_amis&pseudo=". $R['pseudo']."' class='error'> Retirer ".$R['pseudo']." de votre liste d'amis</a>";
}
}//fin du foreach
}else{
header("Location:index.php?page=membre");
}
echo "</div>";
?>
Non je suis connecté avec jean,
Ta fonction s'appelle : REFUSER INVITATION ... cela veut donc dire .. que c'est pour REFUSER l'invitation que quelqu'un a envoyé ...
Hors dans ta BDD .. l'invitation est envoyée par JEAN ...... à XZAK47
C'est donc UNIQUEMENT XZAK47 qui peut REFUSER l'invitation ! ... et pas l'inverse !!!!!
dans le compte xzak47, le "retirer de votre liste d'amis" ne s'affiche pas
Retirer de votre liste d'amis ... n'a aucun rapport avec REFUSER l'INVITATION !
Là .. c'est une autre fonction qu'il te faut appeler dans ce cas .... et donc... rien à voir avec le code que tu nous montres depuis le début !
Cordialement,
Jordane
<?php
//la function qui va changer les informations du membre
function changer_informations_membre($email,$apropos) {
global $bdd; // déclaration globale de BDD
$request = $bdd->prepare('UPDATE utilisateurs SET email = :email, apropos = :apropos');
$request->execute(array(
'email' => $email,
'apropos' => $apropos
));
}
?>
<?php
//la function qui va changer les informations du membre
function changer_informations_membre($email,$apropos) {
global $bdd; // déclaration globale de BDD
$request = $bdd->prepare('UPDATE utilisateurs SET email = :email, apropos = :apropos WHERE pseudo=:pseudo_session');
$request->execute(array(
'email' => $email,
'apropos' => $apropos
));
}
?>
<?php
//la function qui va changer les informations du membre
function changer_informations_membre($email,$apropos) {
global $bdd; // déclaration globale de BDD
$user = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
if($user){
$sql = "UPDATE utilisateurs SET email = :email, apropos = :apropos WHERE pseudo = :pseudo";
$params = array( ":email" => $email
,":apropos" => $apropos
,":pseudo"=>$user
);
$request = $bdd->prepare($sql);
$request->execute($params);
}
}else{
echo "<br> ERREUR : User inconnu !";
}
?>
<?php
//la function qui va changer les informations du membre
function changer_informations_membre($email,$apropos) {
global $bdd; // déclaration globale de BDD
$user = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
if($user){
$sql = "UPDATE utilisateurs SET email = :email, apropos = :apropos WHERE pseudo = :pseudo";
$params = array( ":email" => $email
,":apropos" => $apropos
,":pseudo"=>$user
);
$request = $bdd->prepare($sql);
$request->execute($params);
}else{
echo "<br> ERREUR : User inconnu !";
}
}
?>
qui s'affiche :(