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 :

D�buggage formulaire d'inscription


Sujet :

PHP & Base de donn�es

  1. #1
    Membre averti
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2024
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 24
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 24
    Par d�faut D�buggage formulaire d'inscription
    Bonjour � tous

    Je me permets de cr�er ce post car j'ai terriblement besoin d'aide pour d�bbuger le site que je suis en train de cr�er, j'ai d�j� fait des recherches pour essayer de comprendre les erreurs mais vu que cela fait plusieurs jours que je reste bloqu�e sans avanc�e je viens vous demander de l'aide. Par ailleurs, je travaille HTML, CSS, Javascript, PHPMyadmin et WAMP.

    La situation est simple, j'essaye de cr�er un formulaire d'inscription pour un site de recette.

    Voici le code HTML pour l'inscription :

    Code html : 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
        session_start();
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Les Recettes du Programmeur</title>
        <link rel="shortcut icon" type="image/x-icon" href= "../../Rattrapage Bloc 3/Ressources/stir-fry.png">
        <link rel="stylesheet" href="PageSignIn.css">
     
    </head>
     
    <body>
        <header>
        </header>
        <main>
            <h1 class="TitreSite">Les Recettes du Programmeur</h1>
            <div class="container">
                <div class="form_area">
                    <p class="title">Sign In</p>
                    <form method="POST" action="signin.php">
                        <div class="form_group">
                            <label class="sub_title" for="name">Pseudo</label>
                            <input placeholder="Entre votre pseudo" class="form_style" type="text" id="nom">
                        </div>
     
                        <div class="form_group">
                            <label class="sub_title" for="password">Password</label>
                            <input placeholder="Enter your password" id="password" class="form_style" type="password">
                        </div>
                        <div class="form_group">
                            <label class="sub_title" for="passwordCheck">Check Password</label>
                            <input placeholder="Enter your password" id="passwordCheck" class="form_style" type="password">
                        </div>
                        <div>
                            <button class="btn" name="submit">Inscription</button>
                            <p class="account">Vous avez un compte ? <a class="link" href="PageLogin.php">Log in !</a></p>
                        </div>
                    </form></div>
            </div>
        </main>
     
        <footer class="Footer">
            <div>
            <div class="FooterTxT">Mon Footer</div>
            </div>
        </footer>


    Et voici le code PHP pour effectuer l'inscription :


    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
    <?php
     
    session_start();
     
    if (isset($_POST['submit']))
    {
        $name = htmlspecialchars($_POST['nom']);
        $password = htmlspecialchars($_POST['password']);
     
        $con = new PDO("mysql:host=localhost;dbname=recettedev", 'root', '');
     
     
        if (empty($name) || empty($password)) {
     
            echo "Sign in Failed, please try again";
     
        } else {
     
        $sql = "SELECT * FROM user WHERE MDP = '$password' ";
        $result = $con->prepare($sql);
        $result->execute();
        $data = $result->fetch();
     
        if ($data->rowCount() > 0)
        {
            echo "Vous possédez déjà un compte";
     
        } else {
     
            $sql = "INSERT INTO user (Pseudo, MDP, Role) VALUES ('$name', '$password', '1')";
            $req = $db->prepare($sql);
            $req->execute();
     
            $_SESSION['user_id'] = $data['IDUsers'];
            $_SESSION['user_pseudo'] = $data['Pseudo'];
            $_SESSION['user_role'] = $data['Role'];
            $_SESSION['user_login'] = "Logged in";
            echo "Vous êtes bien enregistré, bienvenue", $_SESSION['user_pseudo'];
            header("Location: PageMain.php");
     
        }
        }
     
    }

    Mon probl�me est qu'a chaque fois que j'essaye de tester l'inscription, j'obtiens les erreurs Undefined array key "nom" et Undefined array key "password".
    Je comprends bien que PHP pense que mes valeurs nom et password sont vides mais je ne comprends pas pourquoi sachant que lors de mes test je remplis toujours les inputs.
    Si une personne pouvait m'expliquer la raison de mon probl�me, je vous en serait extr�mement reconnaissante. Je d�bute en PHP donc je suppose qu'il doit s'agir d'un probl�me de logique mais je dois dire que je ne comprends pas.

  2. #2
    Expert confirm�
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par d�faut
    affichez le contenu de $_POST pour voir tout ce que vous recevez.

    vous pouvez essayer cette fonction qui affichera n'importe quelle variable compos�e d'objets, tableaux, code XML, etc.
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function aff($var)
    {
    	echo "<pre>";
    	echo htmlspecialchars(var_export($var, TRUE));
    	echo "</pre>";
    }

  3. #3
    Expert confirm� Avatar de Toufik83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par d�faut
    Bonjour,

    C'est normal parce que PHP r�cup�re les valeurs des �l�ments HTML en fonction de l'attribut name et pas id.

    Vos �l�ments HTML n'ont aucun attribut name.

    La logique du script PHP n'est pas Ok, car vous v�rifiez l'existence seulement avec le mot de passe, donc si par hasard deux personnes ont le m�me mot de passe, vous aurez un s�rieux probl�me .

    Apr�s il y a d'autres remarques
    • Il ne faut pas utiliser select * dans les requ�tes pour des raisons d'ergonomie et performance, mais plut�t seulement les colonnes dont vous avez besoin.
    • Il ne faut pas injecter les valeurs des variables r�cup�r�es directement dans les requ�tes comme vous le faites, �a risque des injections SQL.
    • Pr�parez correctement vos requ�tes avec des marqueurs nomm�s/anonymes.
    • htmlspecialchars ne prot�ge rien ici, on l'utilise plut�t pour prot�ger les donn�es provenant de la base � l'utilisateur lors de l'affichage

  4. #4
    Membre averti
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2024
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 24
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2024
    Messages : 24
    Par d�faut
    Bonjour � tous !

    Merci pour vos r�ponses, je ne savais pas que l'attribut name �tait indispensable.
    Mais bon c'est en faisant ce genre d'erreur qu'on apprend.

    @Toufik83 :

    Merci pour tes conseils, j'ai am�liorer mon code gr�ce � tes retours.

    Merci encore � tous de m'avoir r�pondu !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Aide r�f�rencement site web sous wordpress
    Par Jibego dans le forum WordPress
    R�ponses: 1
    Dernier message: 22/08/2014, 17h41
  2. Conception d'un site web (inscription utilisateur)
    Par mkabness dans le forum G�n�ral Conception Web
    R�ponses: 10
    Dernier message: 31/01/2013, 17h27
  3. besoin d'aide pour site web
    Par monobloclimber dans le forum D�buter
    R�ponses: 7
    Dernier message: 04/07/2008, 13h39
  4. [MySQL] aide pour site web
    Par lulu57 dans le forum PHP & Base de donn�es
    R�ponses: 7
    Dernier message: 07/06/2008, 13h20
  5. Aide pour ins�rer un fichier flash dans un site web
    Par constitain dans le forum Flash
    R�ponses: 2
    Dernier message: 26/07/2006, 22h59

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