IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

UPDATE session_start et modification


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut UPDATE session_start et modification
    Salut tout le monde.

    Je suis novice dans la programmation et j ai un probleme pour faire des modification dans le BDD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    if ($ajout=='1'){ 
    	mysql_query("UPDATE utilisateurs SET nom = '".$_SESSION['nom']."' WHERE login='$login' AND pass='$pass'");		
    echo "<br><br>votre modification à été effectué";								
    }
    ?>
     
    <form action="monprofils.php?ajout=1" method="post" name="modif">
    <input name="prenom" type="text" id="prenom" value="<?php echo $_SESSION['nom']; ?>">
    <input type="submit" name="submit" value="ok">
    </form>
    Le client qui se connecte avec son login et pass puis il veut modifier son nom.
    Dans le <input> le nom de l utilisateur s affiche bien, mais impossible de le changer

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Bha il faut que tu tapes un code qui soit débugable déjà...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($ajout=='1'){ 
    if(!mysql_query("UPDATE utilisateurs SET nom = '".$_SESSION['nom']."' WHERE login='$login' AND pass='$pass'"))
          echo 'DEBUG : '.mysql_error().'<br>';
    if(mysql_affected_rows() != 1)
       echo 'DEBUG : aucun enregistrement modifié !<br>';
    echo "<br><br>votre modification à été effectué"; 
    } 
    else
    {
       echo 'DEBUG : pas de modif<br>';
    }
    et si avec ça tu trouves pas la réponse tout seul, nous, ça nous permettra peut être de trouver une piste

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    j ai fait comme tu m as dis et il m est :

    DEBUG : aucun enregistrement modifié !

    sa fait 2 jours que je me prend la tete dessus

  4. #4
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Si ça t'affiche pas de message d'erreur SQL et que t'as "aucun enregistrement modifié", c'est que ta requete est syntaxiquement juste, mais qu'elle ne concerne aucun enregistrement. En d'autre terme, soit $login, soit $pass, soit la combinaison des 2 ne correspond a aucun enregistrement de ta BDD !
    pour t'en convaincre, remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!mysql_query("UPDATE utilisateurs SET nom = '".$_SESSION['nom']."' WHERE login='$login' AND pass='$pass'"))
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req = "UPDATE utilisateurs SET nom = '".$_SESSION['nom']."' WHERE login='$login' AND pass='$pass'";
    echo 'Ma requete : '.$req.'<br>';
    if(!mysql_query($req))

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Votre script commence-t-il bien par un appel à session_start() ?
    Si vous ajoutez en début de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';
    Vos variables de session s'affichent-elles ?

    De quel contexte les variables $login et $pass sont-elles issues ?


    Julp.

  6. #6
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Dans le <input> le nom de l utilisateur s affiche bien, mais impossible de le changer
    Julp -> on est en droit de supposer que oui

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Quand je remplace ce que tu m as dis sa ecrit :

    Ma requete : UPDATE utilisateurs SET nom = 'nom' WHERE login='yasin' AND pass='d6472ade50574de01d2f20f121345g5'

    sa veux dire qu il prend bien en compte l utilisateur et le pass mais qu il ne fait pas les modif ?

  8. #8
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    Je suis la discussion (fort dynamique !) depuis tout a l'heure et il y a plusieurs choses qui me chagrine dans ton code (ou alors il est incomplet):
    1- ton form tient a la fois du get et du post. Bon ca a l'air de passer puisqu'il semble comprendre que $ajout existe et vaut 1. Personnellement je l'aurait mis dans un champ hidden.

    2- tu te poses des questions sur ta requete. Pourquoi ne pas faire un echo de cette requete ? Tu serais ainsi fixé !

    3- tu sembles croire que php va te transformer tout seul la valeur de $_SESSION['nom'] ! ou alors il manque qq chose...
    on s'attendrait avoir un truc du genre :
    $new_nom=$_POST['prenom'];

    D'ou vient $login ? Ca ne serait pas justement ton $_SESSION['nom'] ?

    Bref, ca donnerait :
    mysql_query("UPDATE utilisateurs SET nom ='$new_nom' WHERE login='$login' AND pass='$pass'");

    ou
    mysql_query("UPDATE utilisateurs SET nom ='$new_nom' WHERE login='$_SESSION['nom']' AND pass='$pass'");

    puis une mise a jour, si besoin de ta variable de session :
    $_SESSION['nom']=$new_nom;

    Sohnic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/05/2011, 09h25
  2. Réponses: 1
    Dernier message: 22/05/2007, 21h17
  3. UPDATE avec modif identique
    Par magic charly dans le forum Oracle
    Réponses: 2
    Dernier message: 19/02/2007, 11h13
  4. Requête UPDATE [2 modifications]
    Par stan30160 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/06/2006, 17h16
  5. update - modification d'une occurance
    Par starius dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/04/2004, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo