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 de ma table.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Informatique de Gestion
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique de Gestion

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut UPDATE de ma table.
    Bonjour à tous,

    Voilà, cela fait quelques heures que je suis bloqué sur une page que je dois résoudre. Pour expliquer brièvement ma situation, je dois créer un site (social network basic). J'ai donc créé les pages de login, signup, index et une pour userlist (affiche tout les utilisateurs enregistrés dans la bdd). Dans cette liste, selon le rôle (que l'on soit manager ou administrateur du site), on peut éditer ou supprimer un profil.

    Concernant mon problème, lorsque j'appuie sur le bouton submit du formulaire, rien ne se passe, rien ne s'enregistre bref, j'ai essayé plusieurs requêtes etc... rien à faire cela s'obstine à fonctionner correctement.

    Voici mon code de userlist:

    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
    50
    <?php
     
    require_once ("../functions.php");
    $sql = $pdo->prepare("select * from user");
    $sql->execute();
    $rowAll = $sql->fetchAll();
    ?>
     
    <!DOCTYPE html>
    <html>
        <head>
            <title>Index</title>
            <meta charset="utf-8"/>
            <!-- CSS EXTERNE -->
            <link rel="stylesheet" href="../css/style.css" type="text/css">
        </head>
        <body>
            <div class="main-index">
                <div class ="title">
                    <h1>Bibliothèque de César</h1>
                </div>
                <nav class="menu">
                    <ul>
                        <li class="menu-home"><a href="index.php">index</a></li>
                        <li class="menu-userlist"><a href="userlist.php">list of users</a></li>
                        <li class="menu-logout"><a href="../logout.php">Log out</a></li>
                    </ul>
                </nav>
                <div class="listuser">
                    <?php
                    if ($sql ->rowCount() != 0) {
                        echo "<table>";
                        foreach ($rowAll as $row) {
                            echo "<tr><td>" . $row['username'] . "</td>
                    <td>" . $row['fullname'] . "</td>
                    <td>" . $row['email'] . "</td>
                    <td>" . $row['birthdate'] . "</td>
                    <td>" . $row["role"] . "</td>
                    <td><a href='editprofil.php?username=".$row['username']."'><input type='button' value='Edit'></a>
                    <a href='errors'><input type='button' value='Delete'></a></td></tr>";
                        }
                        echo "</table>";
                    }
                    ?>
                </div>
                <footer class="footer">
                    <p>&copy; 2018 Fontaine César, All Rights Reserved</p>
                </footer>
            </div>
        </body>
    Voici ma page editprofil :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <?php
    require_once("../functions.php");
    $username='';
    if(isset($_GET['username']))
        $username = sanitize($_GET['username']);
     
     
    try {
        $query = $pdo->prepare("SELECT * FROM user WHERE username=:username");
        $query->execute(array("username" => $username));                                          //*
        $result = $query->fetch();
    } catch (Exception $e) {                                                                 //*
        die("Problème lors de l'accès a la base de données22");
    }
     
    $fullname = $result['fullname'];
    $email = $result['email'];
    $dateofbirth = $result['birthdate'];
    $role = $result['role'];
    $id = $result['id'];
     
     
    if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['password_confirm']) && isset($_POST['fullname']) && isset($_POST['email']) && isset($_POST['dateofbirth']) && isset($_POST['role'])) {
     
        $username2 = sanitize($_POST['username']);
        $password2 = sanitize($_POST['password']);
        $password_confirm2 = sanitize($_POST['password_confirm']);
        $fullname2 = sanitize($_POST['fullname']);
        $email2 = sanitize($_POST['email']);
        $dateofbirth2 = sanitize($_POST['dateofbirth']);
        $role2 = sanitize($_post['role']);
        if (trim($username2) == '')
            $errors[] = "Le nom d'utilisateur est obligatoire";
        if (trim($password2) == '')
            $errors[] = "Le mot de passe est obligatoire";
        if ($password2 != $password_confirm2)
            $errors[] = "Les mots de passe doivent être identiques";
        if (trim($fullname2) == '')
            $errors[] = "Le nom plein est obligatoire";
        if (trim($emai2l) == '')
            $errors[] = "L'email est obligatoire";
        if (strlen(trim($password2)) < 6)
            $errors[] = "Le mot de passe doit contenir 6 caractères au minimum";
        if (strlen(trim($username2)) < 6)
            $errors[] = "Le nom d'utilisateur doit contenir 6 caractères au minimum";
     
        if (!isset($errors)) {
            try {
                $query = mysql_query("UPDATE user set username='$username2' ,password ='$password2' ,fullname ='$fullname2' , email ='$email2', birthdate='$dateofbirth2 role='$role2'  where id ='$id'");
                if($query)
                    //$success = "Le profil a été mis à jour";
                    echo "modifier";
            } catch (Exception $ex) {
                die("Problème lors de l'accès a la base de données123");
            }
        }
    }
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title>Sign up</title>
            <meta charset="utf-8"/>
            <meta name="viewport" content="width=devide-width, initial-scale=1.0">
            <link rel="stylesheet" href='../css/style.css' type="text/css">
        </head>
        <body>	
            <div class="main">
                <div class ="title">
                    <h1>Bibliothèque de César</h1>
                </div>
                <div class="signup">
     
                    <div class="form-signup">
                        <div class="login-title">
                            <h1>Edit profile</h1>
                        </div>
                        <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
                            <table>
                                <tr class=" signuptable">
                                    <td>Username:</td>
                                    <td><input id="username" name="username" type="text" value="<?php echo $username; ?>"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>Fullname:</td>
                                    <td><input id="fullname" name="fullname" type="text" value="<?php echo $fullname; ?>"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>Password:</td>
                                    <td><input id="password" name="password" type="password"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>Confirm Password:</td>
                                    <td><input id="password_confirm" name="password_confirm" type="password"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>email:</td>
                                    <td><input id="email" name="email" type="email" value="<?php echo $email; ?>"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>Birthdate:</td>
                                    <td><input id="dateofbirth" name="dateofbirth" type="date" value="<?php echo $dateofbirth; ?>"></td>
                                </tr>
                                <tr class=" signuptable">
                                    <td>Role:</td>
                                    <td><select>
                                            <option>admin</option>
                                            <option>manager</option>
                                            <option>membre</option></select></td>
                                </tr>
                            </table>
                            <div class="form-btn">
                                <button type="submit" class="btn-validate">Submit</button>
                            </div>
                        </form>
     
                        <?php
                        if (isset($success)) {
                            echo "<div class ='success'>" . $success . "</div>";
                        }
     
                        if (isset($errors)) {
                            echo "<div class ='errors'><br><br><p>Veuillez corriger les erreurs: </p>
                                <ul>";
                            foreach ($errors as $error) {
                                echo "<li>" . $error . "</li>";
                            }
                            echo '</ul></div>';
                        }
                        ?>            
                    </div>
                </div>
                <footer class="footer">
                    <p>&copy; 2018 Fontaine César, All Rights Reserved</p>
                </footer>
            </div>
        </body>
    </html>
    Merci de votre aide

    Bonne journée !

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    J’ai lu quelque part qu’il était préférable d’utiliser un input de type submit dans un formulaire au lieu d’un button. Apparemment tous les navigateurs n’interprètent le button submit de la même manière.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Informatique de Gestion
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique de Gestion

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par badaze Voir le message
    J’ai lu quelque part qu’il était préférable d’utiliser un input de type submit dans un formulaire au lieu d’un button. Apparemment tous les navigateurs n’interprètent le button submit de la même manière.
    Merci de votre réponse

    J'ai changé le bouton en input mais toujours rien, le problème c'est que je ne sais pas où se trouve mes erreurs, quand j'appuie sur le bouton "edit" rien ne se passe, même pas l'affichage d'une erreur !

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    On a un mysql_query qui se promène dans votre code, si l'exécution du code atteint cette ligne (à vérifier à coup d'echo par exemple) et qu'il n y a pas d'erreurs, cela signifie que les erreurs PHP ne sont activées/affichées car la fonction n'existe plus
    PS: si le sanitize contient du htmlspecialchars/htmlentities/addslashes, il faut le retirer autant utiliser les $_POST directement et préparer les requêtes convenablement.
    Le bienfait n'est jamais perdu

  5. #5
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    user est un mot clé du langage SQL il me semble.

    Essaie avec ˋuser`.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32
  2. Update d'une table
    Par EssaiEncore dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/02/2005, 10h00
  3. Tquery - update avec 2 tables
    Par spocksb dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/08/2004, 08h39
  4. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30
  5. Update entre 2 tables
    Par jfox dans le forum SQL
    Réponses: 8
    Dernier message: 04/11/2003, 10h22

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