Bonjour, j'ai un petit soucis avec ce code, je n'arrive pas à faire en sorte que lorsqu'on clique sur le bouton modifier ça change les valeurs dans la base de données.
Donc si quelqu'un peut m'éclairer...
Merci.

<?php
    session_start();
    $login = $_SESSION'login'];
    //require('checksession');

    include_once("config.php");
    $base = mysql_connect ($hote,$user,$motdp);
    mysql_select_db ($bdd, $base);

    //////////////////////////
    // Modifier la partie afin de vérifier que le champs mdp n'est pas vide.    
    //////////////////////////
    if ($_POST'pass'] != $_POST'pass_confirm']) {
            $erreur = "<B style=\"color : #ff0000; font-size:12px\">Les deux mots de passe sont différents</b><br />\n";
        }
    elseif (!empty($_POST'pass'])){
        extract ($_POST);

        $pass = (md5($_POST'pass']));
         $_SESSION'data']'nom'];
        $sql="UPDATE membre SET pass_md5='$pass', nom='$nom', prenom='$prenom', mail='$mail' WHERE id='$id'";
        $req = mysql_query($sql) 
            or die ('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());
        $valid=true;        
        }

    $sql="SELECT * FROM membre WHERE login='$login'";
    $req = mysql_query($sql) 
        or die ('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());
    $_SESSION'data']=mysql_fetch_assoc($req);
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Portail Intranet du Département SRC à Nancy</title>
                <link rel="stylesheet" media="screen" type="text/css" href="style.css" />
    </head>
    <body>
        <div class="cadre_general">
            <?php
                include('menu.php');
            ?>
            <div class="contenu">
                <?php 
                if($valid==true){
                ?>
                    <div class="success">
                        <img src="images/success.png" class="success">
                        <p align="center">Votre profil a été modifié avec succès</p><br/>
                        Retournez à la page d'<a href="index.php">accueil</a>
                    </div>
                <?php   
                }
                else {
                ?>
                <table align="center">
                    <tr>
                        <td>
                            <img src="images/profil.png">
                        </td>
                        <td>
                            <h1>Profil</h1>
                        </td>
                    </tr>
                </table>
                    <form action="profil.php" method="post">
                        <input name="id" type="hidden" value="<?php echo $_SESSION'data']"$id"]; ?>" />
                        Vous êtes inscrit depuis le <?php echo $_SESSION'data']"date_inscription"]; ?><br/>
                        Login : <?php echo $_SESSION'login']; ?><br />
                        Mot de passe : <input type="password" name="pass" value="<?php echo $_SESSION'data']"pass"]; ?>"><br />
                        Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php echo $_SESSION'data']"pass_confirm"]; ?>"><br />
                        Nom : <input type="text" name="nom" value="<?php echo $_SESSION'data']'nom']; ?>"><br />
                        Prénom : <input type="text" name="prenom" value="<?php echo $_SESSION'data']'prenom']; ?>"><br />
                        Mail : <input type="text" name="mail" value="<?php echo $_SESSION'data']'mail']; ?>"><br />
                        <input type="submit" value="Modifier">
                </form>
                <?php
                    }
                    echo $erreur;
                ?>
            </div>
        <?php
            include ('footer.php');
        ?>
    </body>
</html>

6 réponses


Toppy
Réponse acceptée

Salut,

Tu pourrais checker tes variables dans ton config.php

$pass = (md5($_POST'pass'])); // Paranthèses en plus !
$_SESSION'data']'nom'];// Ca sert à rien ! :D
$sql="UPDATE membre SET pass_md5='$pass', nom='$nom', prenom='$prenom', mail='$mail' WHERE id='$id'"; // Pas de guillemets pour l'id parce que c'est un entier (après si c'est pas un entier je sais pas) et puis check les noms voir si c'est bien ca !
// Ce sont les lignes 20-21-22

Cordialement.

Tu as quoi comme erreur ?

fl0_9
Auteur

Ba en fait ça modifie rien dans la base de donnée

l17 : a moins que tu l'as implémenté, la fonction emptyempty n'existe pas. Cependant sa devrait te faire une erreur.
Rajoute ça tout au début de ton code pour voir :

error_reporting(E_ALL);

l17 : a moins que tu l'as implémenté, la fonction emptyempty n'existe pas. Cependant sa devrait te faire une erreur.
Rajoute ça tout au début de ton code pour voir :

error_reporting(E_ALL);

bizarre ça:

elseif (!emptyempty($_POST'pass'])){

mais a priori, il s'agit d'un bug du script qui colore le code.

Tu peux essayer ça:

if(isset($_POST'pass'] && !empty($_POST'pass'])):
    if ($_POST'pass'] != $_POST'pass_confirm']):

        extract ($_POST);  

        $pass = (md5($_POST'pass']));  

        $_SESSION'data']'nom'];// A quoi ça sert?

        $sql = "UPDATE membre SET pass_md5='$pass', nom='$nom', prenom='$prenom', mail='$mail' WHERE id='$id'";  

        $req = mysql_query($sql)   
            or die ('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());  

        $valid = true;

    else:
        $erreur = "<B style=\"color : #ff0000; font-size:12px\">Les deux mots de passe sont différents</b><br />\n"; 
    endif;

endif;

Entre nous, je n'aime pas trop la manière dont tu utilises mySQL, mais bon à chacun ses habitudes.
De plus, même si la fonction "extract" est pratique, tu ne devrais pas l'utiliser. Tel quel, ton code n'est pas sécurisé, tu ne vérifies pas les données qui sont envoyées et ne protèges donc pas ton site.