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

PHP & Base de données Discussion :

Erreur de mise à jour


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut Erreur de mise à jour
    bonsoir tous

    je suis en train d’implémenter la faille du CSRF du php sur ma machine. donc j'ai crée une interface d’authentification qui rederige après vers une page pour changer le password (exemple à choisir) puis j'ai crée une page change.html qui porte les même champ de la page changer password.
    après l’exécution j'ai aucun erreur à afficher mais la mise à jour de password ne s’affecter pas dans ma BD , j'en sais pas pourquoi!.

    le code du change.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?php
    include("../db.php");
    session_start();
    if(isset($_POST["pass"]) && isset($_POST["conf_pass"])){
          $o=$_POST["pass"];
        $pass=$_POST["conf_pass"];
     
        if($o==$pass){
    if(isset($_SESSION['id'])){
     
     
     mysqli_query($connection,"UPDATE comptes set password=$pass WHERE id='".$_SESSION['id']."'");
     
    echo "<center><strong>votre password bien changé</strong></center>";
    }
     
     
    	}else {
    		echo "votre password n'est pas identique";
    	}
    }
     
    mysqli_close($connection);
    ?>
    <html>
    <head>
    	<title>changer password</title>
    	<meta charset="utf-8">
    </head>
    <body>
    <center>
    <br>
    <br>
    <form method="POST" action="change.php">
        nouveau password <br>
    	<input type="text" name="pass"/>
    	<br>
    	<br>
     
    	confirmé le password: <br>
    	<input type="text" name="conf_pass"/>
    	<br><br>
        <input type="submit" name="bn" value="confirmé">
     
    </form>
    </center>
    </body>
    </html>
    change.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form method="POST" action="change.php">
     
                    <input type="hidden" name ="pass" value="hacked" >
                    <br>
                    <input type="hidden"  name="conf_pass" value="hacked" >
     
     
                    </div>
                    <button type="submit" name="con">click here to be continue</button>
                </form>
    j'ai fais un test avant la requete avec la variable var_dump et j'ai que la passowrd sera "hacked" comme elle se trouve dans "value =''hacked'". mais la mise à jour ne sera jamais effectuer sur la BD.

    merci de m'aider pour fonctionner ce code

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta requete n'est pas bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = mysqli_prepare($connection,"UPDATE comptes set password=? WHERE id=?");
    mysqli_stmt_bind_param($stmt, "ss", $pass, $_SESSION['id'] );
    mysqli_stmt_execute($stmt);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ta requete n'est pas bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = mysqli_prepare($connection,"UPDATE comptes set password=? WHERE id=?");
    mysqli_stmt_bind_param($stmt, "ss", $pass, $_SESSION['id'] );
    mysqli_stmt_execute($stmt);
    merci pour ta réponse j'arrive donc a modifier le pasword. mais si je cherche a modifier d'autres valeurs du table comment j'ajoute dans la requête puisque la 1ére fois que j’utilise le myqli-prepare(). donc j'essayé ce code mais la mise à jour n'affecter pas dans la base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = mysqli_prepare($connection,"UPDATE comptes set login=? , password=? WHERE id=?");
    mysqli_stmt_bind_param($stmt,$log,$pass, $_SESSION['id'] );
    mysqli_stmt_execute($stmt);

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas mis le deuxième argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_stmt_bind_param($stmt,"sss", $log,$pass, $_SESSION['id'] );
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Erreur de mise à jour de table liée
    Par tom_ibonia dans le forum Access
    Réponses: 1
    Dernier message: 19/10/2006, 10h52
  2. Message erreur sur Mise à jour formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2006, 08h52
  3. Erreur sur mise à jour
    Par Smint dans le forum Access
    Réponses: 10
    Dernier message: 01/07/2006, 15h29
  4. [Conception] erreur de mise à jour UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2006, 12h56
  5. Erreur 3251 : mise à jour non prise en charge
    Par gletare dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 10h17

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