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ébutant] Formulaire d'inscription. [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 40
    Par défaut [Débutant] Formulaire d'inscription.
    Bonjour à tous,

    Voici mon souci : jeune débutant dans le codage php, je me suis lancé dans la création d'un formulaire d'inscription, et voici mon résultat de codage. Les pages s'ouvrent quant il faut mais aucune valeur ne rentre dans ma BDD.

    Code page 1 :
    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
    <?php
    function connectMaBase(){
     $base = mysql_connect ("localhost", "*****", "*****");
    mysql_select_db('***', $***);
    }
    ?>
    <html>
    <head>
    	<title>Formulaire d'inscription</title>
    </head>
    <body>
    Afin de devenir membre remplissez ce court formulaire :
    <form method="post" action="inscription_reussi.php">
    <table cellspacing="2" cellpadding="2" border="0">
    <tr> 
    <td> Votre nom :</td>
    <td><input type="text" name="nom_usage" /></td><br />
    </tr>
    <tr> 
    <td> Votre prénom :</td>
    <td><input type="text" name="prenom_usage" /></td><br />
    </tr>
    <tr> 
    <td> Votre E-mail :</td>
    <td><input type="text" name="email" /></td><br />
    </tr>
    <tr>
    <td>Votre mot de passe</td>
    <td><input type="password" name="pass"></td>
    </tr>
    <tr>
    <td>Retapez votre mot de passe</td>
    <td><input type="password" name="passbis"></td>
    </tr>
    <tr>
    <td>Question secrète en cas d'oubli du mot de passe</td>
    <td><input type "text" name="question" value="Quel est le nom de jeune fille de votre mère ?" size="50"></td>
    </tr>
    <tr>
    <td>Votre réponse</td>
    <td><input type="text" name="reponse"></td>
    </tr>
    <tr> 
    <td></td>
    <td><input type="submit" Value="S'inscrire" /></td><br />
    </tr>
    </table>
    </form>
    </body>
    </html>
    [/COLOR]
    Code de la page 2 :

    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
     
    <?php
    function connectMaBase(){
     $base = mysql_connect ("localhost", "****", "****");
    mysql_select_db('****', $*****);
    }
     
    $nom_usage=$_POST['nom_usage'];
    $prenom_usage=$_POST['prenom_usage'];
    $email=$_POST['email'];
    $pass =$_POST['pass'];
    $question =$_POST['question'];
    $reponse= strtolower($_POST['reponse']);
    $sql="INSERT INTO membres (nom_usage, prenom_usage, email, pass, question, reponse) VALUES ('$nom_usage', '$prenom_usage', '$email', '$pass', '$question', '$reponse')";
    @mysql_query($sql,$id_link);
    ?>
     
    <html>
    <head>
    	<title>Inscription réussie</title>
    </head>
    <body>
    Coté phpmyadmin j'ai créé mes tables de cette manière :



    J'ai beau chercher ou serait le problème et pas moyen.

    Merci d'avance pour votre aide et svp soyer clément je débute.

    Kocipia

  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
    Par défaut
    Bonjour et bienvenu sur le forum,

    Cacher les erreurs n'est pas une très bonne idée pour debuguer un code.
    $id_link n'est pas défini dans ton code.
    Écrit simplement
    Ensuite il faut echapper tes données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_usage=mysql_real_escape_string($_POST['nom_usage']);
    Il faut appeller ta fonction de connexion, sinon elle n'intervient pas.
    Donc un
    a mettre quelque part.

    Pour finir, visiblement dans ton premier fichier, la connexion a la base n'est pas utile puisqu'elle n'est pas utilisée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 40
    Par défaut
    Tout d'abord merci pour cette réponse rapide.

    J'ai donc enlever les lignes d'accés à la BDD, effectivement inutile.

    Ce bout de code est inscrit dans la ligne 10.

    Voici donc le nouveau code et je n'ai toujours pas le nouveau membre qui s'affiche sur phpmyadmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("*****");
    $nom_usage=mysql_real_escape_string($_POST['nom_usage']);
    $prenom_usage=mysql_real_escape_string($_POST['prenom_usage']);
    $email=mysql_real_escape_string($_POST['email']);
    $pass=$_POST['pass'];
    $question=mysql_real_escape_string($_POST['question']);
    $reponse=mysql_real_escape_string($_POST['reponse']);
    mysql_query($sql);
    $sql="INSERT INTO membres (nom_usage, prenom_usage, email, pass, question, reponse) VALUES ('$nom_usage', '$prenom_usage', '$email', '$pass', '$question', '$reponse')";
    ?>
    Ensuite il faut echapper tes données :
    Qu'entends tu par cette phrase ?

    Encore merci.

    Kocipia

  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
    Par défaut
    Tu as mis le mysql_query() avant la chaine de requête ^^

    Et tu n'as pas echappé $_POST['pass']
    "echapper" ca veut dire que tu mets un \ devant les caractères spéciaux.
    C'est ce que fait mysql_real_escape_string() pour toi.
    Imaginons que ton utilisateur s'appelle D'Artagnan.
    Dans ta requête ca ferrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... VALUES ('D'Artagnan', ...
    Horreur ! l'apostrophe dans le nom casse la chaine en deux bouts.
    Avec mysql_real_escape_string() ca donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... VALUES ('D\'Artagnan', ...
    Ouf l'apostrophe dans le nom est maintenant bien consideré comme faisant partie de la chaine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 40
    Par défaut
    Hum toujours rien.

    Je viens de relire le code et une petite chose m'interpèle (peut-être rien à voir mais bon)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_connect("localhost", "*****", "****");
    mysql_select_db("******");
    La première ligne correspond à la connexion avec identifiant et mot de passe, la dessus je pense pas de problème.
    La seconde ligne appelle la BDD, ok.
    Mais il manquerai pas un morceau de code indiquant la table à compléter ?

    En l'occurrence la table "membres"

    Tu en penses quoi ?

  6. #6
    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
    Par défaut
    Non la table est dans la requête.

    ajoute un
    pour voir les erreurs mysql.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [Débutant] Formulaires et masques de saisie
    Par Fingo dans le forum Access
    Réponses: 4
    Dernier message: 24/03/2006, 14h16
  2. [Débutant] Formulaire affichage double
    Par hudsson dans le forum Access
    Réponses: 8
    Dernier message: 21/03/2006, 18h42
  3. Formulaire d'inscription
    Par ero-sennin dans le forum Langage
    Réponses: 3
    Dernier message: 29/01/2006, 19h23
  4. Creation d'un formulaire d'inscription
    Par whbh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 21/01/2006, 14h04
  5. Formulaire d'inscription
    Par Gourouni dans le forum ASP
    Réponses: 6
    Dernier message: 02/12/2004, 16h28

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