Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
596 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme UPDATE dans PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme UPDATE dans PHP

n°2225446
leforeto
Posté le 18-04-2014 à 08:58:04  profilanswer
 

Bonjour,  
 
Je suis étudiant en bts sio et j'ai un projet à faire en développement.
C'est un site internet de blague.
 
Voici le contexte :  
 
J'ai une page listemembres.php où on affiche (pour l'administrateur) la liste de tous les membres sous forme de tableau (numéro utilisateur, pseudo, mot de passe et droit).
Il y a aussi une liste déroulante qui reprend la liste des membres affichée par leur pseudo (grâce à une requête SELECT).
 
A noter que pour la liste déroulante, la balise est : <select name"envoyer">
 
Maintenant on sélectionne dans la liste par exemple "coca" (c'est un pseudo) et on fait valider,   ça envoit sur la page modifmembre.php .
 
Sur modifmembre.php, on récupère le pseudo en faisant : $pseudo = $_GET['envoyer'];
Un SELECT est exécuté pour récupérer les informations de ce pseudo.
 
Sur modifmembre.php, j'ai un INPUT pour rentrer un nouveau mot de passe et un INPUT pour modier le droit.
 
Je vous montre le code qui ne marche pas ( je vois pas d'erreur mais il y en a une forcément) :
 
<?php include 'connexionBDDetsessionstart.php';?>
<html>
<head>
<meta charset='utf-8'/>
<title>Modification profil</title>
<link rel="stylesheet" Type="text/css" href="doc1.css"/>
</head>
<body>
<FORM ACTION="listemembres.php">
<INPUT TYPE="SUBMIT" VALUE="Retour"></FORM>
<form method="GET">
 
<?php $pseudo = $_GET['envoyer'];?>
 
<h1 align="center"><?php echo 'Modification du profil : '.$pseudo?></h1>
<table align="center">
 <tr>
  <td id="clr1">Nouveau mot de passe :</td>  
  <td><INPUT type="text" size="20" name="motdepasse"></td>
 </tr>
 <tr>
  <td id="clr1">Nouveau droit :</td>
  <td><INPUT type="text" size=20 name="Droit"></td>
 </tr>
 <tr>
  <td><br/><INPUT type="submit" value="Valider" name="modifier">
  <INPUT type="reset" value="Annuler"></td>
 </tr>
</table>
<?php
$requete = "SELECT pseudo, motdepasse, Droit FROM utilisateur WHERE pseudo='".$pseudo."'";
$exe= mysql_query($requete);
$row = mysql_fetch_row($exe);
echo $row[0];
 
if(isset($_GET['modifier']))
 {  
  $mdp = $_GET['motdepasse'];
  $Droit = $_GET['Droit'];
 
  if($mdp != '' or $Droit != '')
  {
   $requete = 'UPDATE utilisateur SET motdepasse ="'.$mdp.'", Droit ="'.$Droit.'" WHERE pseudo="'.$row[0].'"';
   $exe= mysql_query($requete);
   echo $requete;
  }
 }
?>
</form>
</body>
</html>
 
Voilà alors le echo $row[0] affiche le pseudo. CA MARCHE ! On a bien le pseudo ou bien le mot de passe du pseudo qu'on a sélectionné avant dans la liste déroulante.
 
MAIS pseudo="'.$row[0].'"' ne marche pas quand on est dans if(isset($_GET['modifier'])).
 
Je fais echo $requete et le résultat est :
 
UPDATE utilisateur SET motdepasse ="lu", Droit ="7" WHERE pseudo=""
 
Donc le pseudo n'est plus pris en compte.
 
De plus une erreur s'affiche après avoir valider :
 
Notice: Undefined index: envoyer in C:\Users\...\modifmembre.php on line 13
 
Si j'écris UPDATE... avant le IF ISSET avec un mot de passe et/ou un droit rentré en dur, CA MARCHE.
 
MA QUESTION : pourquoi la valeur de $pseudo n'est plus pris en compte dans mon isset et pourquoi je perds la valeur de $pseudo après avoir fait valider ?
 
Merci de votre aide.

mood
Publicité
Posté le 18-04-2014 à 08:58:04  profilanswer
 

n°2225458
scribou
Posté le 18-04-2014 à 12:02:43  profilanswer
 

Juste pour essayer de voir où tu perds ton $row[0], rajoute quelques echos genre :  

Code :
  1. echo $row[0];
  2. if(isset($_GET['modifier']))
  3.  $mdp = $_GET['motdepasse'];
  4.  $Droit = $_GET['Droit'];
  5.  if($mdp != '' or $Droit != '')
  6.  {
  7.            echo $row[0];
  8.    $requete = 'UPDATE utilisateur SET motdepasse ="'.$mdp.'", Droit ="'.$Droit.'" WHERE pseudo="'.$row[0].'"';
  9.    echo $requete;
  10.    $exe= mysql_query($requete);
  11.    echo $requete;
  12.  }
  13. }


 
C'est pour essayer de voir/comprendre où tu perds tes valeurs ;)  
 
PS: utilise les balise [cpp][/cpp] quand tu en mets, c'est bcp plus agréable a lire ;)

n°2225537
Soileh
Lurkeur professionnel
Posté le 19-04-2014 à 00:12:54  profilanswer
 

:hello: !

 

Selon moi, c'est plus un problème d'enchaînement dans l'ordre d'appel aux pages PHP, avec passage des variables entre elles [:cupra] (enfin, si je comprends bien le souci :??:)

 

Edit : tu peux essayer de représenter le problème sous forme de diagramme d'état-transition ;)
Pour moi :

Spoiler :


  • page listemembres.php : tu passes en GET la variable "envoyer" contenant le pseudo de la personne ;
  • page modifmembre.php : ta page récupère la commande "envoyer" et tu construit ton formulaire avec les données récupérées ;
  • page modifmembre.php : ta page récupère la commande "modifier", mais tu a perdu le passage de la commande "envoyer", c'est-à-dire le pseudo ! Résultat : ton SELECT ne retourne rien, et ta variable $row est vide.
 

:jap:


Message édité par Soileh le 19-04-2014 à 00:21:36

---------------
And in the end, the love you take is equal to the love you make

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme UPDATE dans PHP

 

Sujets relatifs
Problème argument fonction slope (vba)Probleme sur la fonction get pour un Httprequest
Problème de compréhension de la boucle FORprobleme sur replace dans une macro
Problème latin-1 utf-8 sur restauration de BDDProbleme de compatibilité entre sharepoint 2012 et IE11 ?
[PHP/MYSQL] Problème d'UPDATE . : RESOLU : .[PHP] Problème update
[PHP/MySQL]Problème d'UPDATE avec une variable contenue dans l'url 
Plus de sujets relatifs à : Probleme UPDATE dans PHP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR