Problème de variables. Merci pour votre aide.
Fermé
totorom
Messages postés
2
Date d'inscription
lundi 17 août 2015
Statut
Membre
Dernière intervention
17 août 2015
-
Modifié par jordane45 le 17/08/2015 à 16:10
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 18 août 2015 à 10:49
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 18 août 2015 à 10:49
A voir également:
- Problème de variables. Merci pour votre aide.
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Variable TEMP ✓ - Forum Windows 10
- Nombre de combinaison possible avec 3 variables ✓ - Forum Programmation
- Vérifiez la variable d'environnement TEMP. QUE FAIRE ????? ✓ - Forum Microsoft Office
3 réponses
jordane45
Messages postés
38139
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 avril 2024
4 649
Modifié par jordane45 le 18/08/2015 à 10:49
Modifié par jordane45 le 18/08/2015 à 10:49
Bonjour,
Déjà... il faut récupérer "proprement" les variables AVANT de les utiliser.
Pour se faire.. tu peux utiliser l'écriture TERNAIRE (sorte de IF) et s'assurer que les variables Existent avec la fonction ISSET ou !Empty
ce qui donnerait :
Ensuite... attention... tu utilises l'ancienne extension mysql. celle-ci est considérée comme obsolète. Je t'invite à passer à la PDO.
Voir ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Et enfin... il faut que tu ajoutes un peu de debug à ton code.. histoire d'essayer de comprendre où ça bloque.
Par exemple (sans passer à PDO.. ) :
Par contre... il y a des variables dans ton code qui sortent de nul part ... $act ... $id ....
D'où viennent-elles ? Comment sont elles initialisées ? (elles viennent de ton fichier config.php ?? )
Cordialement,
Jordane
Déjà... il faut récupérer "proprement" les variables AVANT de les utiliser.
Pour se faire.. tu peux utiliser l'écriture TERNAIRE (sorte de IF) et s'assurer que les variables Existent avec la fonction ISSET ou !Empty
ce qui donnerait :
//Récupération des variables // $variable = (condition) ? valeur si vraie : valeur si faux ; $Submit = isset($_POST['Submit'])?$_POST['Submit']:NULL; $user_acheteur=!empty($_POST['user_acheteur'])? $_POST['user_acheteur'] : NULL; //On récupère les données envoyées $user_vendeur=!empty($_POST['user_vendeur'])?$_POST['user_vendeur']:NULL; //On récupère les données envoyées
Ensuite... attention... tu utilises l'ancienne extension mysql. celle-ci est considérée comme obsolète. Je t'invite à passer à la PDO.
Voir ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Et enfin... il faut que tu ajoutes un peu de debug à ton code.. histoire d'essayer de comprendre où ça bloque.
Par exemple (sans passer à PDO.. ) :
<?php //utilisation de la balise PHP complète au lieu de l'abrégée <? require_once "config.php"; //Récupération des variables // $variable = (condition) ? valeur si vraie : valeur si faux ; $Submit = isset($_POST['Submit'])?$_POST['Submit']:NULL; $user_acheteur=!empty($_POST['user_acheteur'])? $_POST['user_acheteur'] : NULL; //On récupère les données envoyées $user_vendeur=!empty($_POST['user_vendeur'])?$_POST['user_vendeur']:NULL; //On récupère les données envoyées $user = !empty($_SESSION['user']) ? $_SESSION['user'] : NULL; if($Submit){ //utilisation d'un SWITH au lieu de IF/ELSE.. switch($act){ case "positif": mysql_query("UPDATE membres set votes_positif_envoyes=votes_positif_envoyes+1 where user='".$user."'") or die("Erreur 01"); mysql_query("UPDATE membres set votes_positif_recus=votes_positif_recus+1 where user='$user_vendeur'") or die("Erreur 02"); mysql_query("UPDATE livre_en_ventes set vote=1 where id='$id'") or die("Erreur vote positif 1"); echo "<p align='center'><strong>Vote <font color='#2d902d'>POSITIF</font> envoyé !<br> Merci.<br></strong></p>"; echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=Liste.php'>"; break; case "negatif": mysql_query("UPDATE membres set votes_negatif_envoyes=votes_negatif_envoyes+1 where user='".$user."'") or die("Erreur 03"); mysql_query("UPDATE membres set votes_negatif_recus=votes_negatif_recus+1 where user='$user_vendeur'") or die("Erreur 04"); mysql_query("UPDATE livre_en_ventes set vote=2 where id='$id'") or die("Erreur vote negatif 2"); echo '<p align="center"><strong>Vote <font color="#FF0000">NEGATIF</font> envoyé ! <br> Merci.<br></strong></p>'; echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=Liste.php'>"; break; default: //aucune valeur correspondante.... echo "<br> Erreur : variable act inconnue : ".$act; break; }//fin du switch }else{ echo "<br> Erreur : la variable submit n'existe pas !<br>"; echo "<pre>"; print_r($_POST); echo "</pre>"; } ?>
Par contre... il y a des variables dans ton code qui sortent de nul part ... $act ... $id ....
D'où viennent-elles ? Comment sont elles initialisées ? (elles viennent de ton fichier config.php ?? )
Cordialement,
Jordane
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
17 août 2015 à 16:21
17 août 2015 à 16:21
Je vois juste une erreur dans ton code PHP :
Il doit y avoir un point virgule à la fin, j'ai déjà rencontré des problèmes moi-même à cause de l'utilisationdu <?, à la place mieux vaut utiliser le <?php
C'est bête mais peut-être que c'est ça, sinon je vois que tu utilises d'anciennes fonctions mysql_query , elles fonctionnent toujours mais elles sont vieillottes et vont disparaitre dans quelques années, elles ont été remplacées par mysqli_query. Il y a juste un i à rajouter.
<? echo $result['user_acheteur'] ?>
Il doit y avoir un point virgule à la fin, j'ai déjà rencontré des problèmes moi-même à cause de l'utilisationdu <?, à la place mieux vaut utiliser le <?php
<?php echo $result['user_acheteur']; ?>
C'est bête mais peut-être que c'est ça, sinon je vois que tu utilises d'anciennes fonctions mysql_query , elles fonctionnent toujours mais elles sont vieillottes et vont disparaitre dans quelques années, elles ont été remplacées par mysqli_query. Il y a juste un i à rajouter.
totorom
Messages postés
2
Date d'inscription
lundi 17 août 2015
Statut
Membre
Dernière intervention
17 août 2015
17 août 2015 à 18:30
17 août 2015 à 18:30
Merci geekat pour ton idée, mais non ça ne fonctionne toujours pas.
En faite lorsque l'acheteur clic sur la note "positif" ou "négatif", le lien du navigateur donne bien l'url avec l'id , l'user_acheteur et l'user_vendeur, mais lorsque ça arrive sur la page Liste_votes.php pour executer les requêtes, seules la ligne 28 et 31 fonctionnent et s'enregistrent bien.
Pas l'update avec $user_vendeur.
Donc j'ai bien le livre qui est noté dans la table livre_en_ventes, j'ai bien la note+1 pour l'acheteur, celui qui donne la note positive ou négative, mais le vendeur n'a rien du tout.Pas de note.
Donc le problème provient en toute logique de ma variable $user_vendeur je pense.
En faite lorsque l'acheteur clic sur la note "positif" ou "négatif", le lien du navigateur donne bien l'url avec l'id , l'user_acheteur et l'user_vendeur, mais lorsque ça arrive sur la page Liste_votes.php pour executer les requêtes, seules la ligne 28 et 31 fonctionnent et s'enregistrent bien.
Pas l'update avec $user_vendeur.
Donc j'ai bien le livre qui est noté dans la table livre_en_ventes, j'ai bien la note+1 pour l'acheteur, celui qui donne la note positive ou négative, mais le vendeur n'a rien du tout.Pas de note.
Donc le problème provient en toute logique de ma variable $user_vendeur je pense.
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
18 août 2015 à 09:40
18 août 2015 à 09:40
Et quand tu affiches la variable $user_vendeur ça donne quoi ?