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 :

Formulaire d'inscription / validation données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 107
    Points : 52
    Points
    52
    Par défaut Formulaire d'inscription / validation données
    Bonjour et bonne année à tous,
    Je viens vers vous car j'ai un problème avec mon formulaire d'inscription, je dois préparer un espace d'authentification et je galère.

    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
    if(!empty($_POST['login']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['titre']))
    {
    // connexion
    mysql_connect("localhost", "root", "");
    mysql_select_db("membre");
     
    // sécurités 
    $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
    $pass2 = mysql_real_escape_string(htmlspecialchars($_POST['pass2']));
    if($pass == $pass2)
    {
    $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
    $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
    $prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
    $titre = mysql_real_escape_string(htmlspecialchars($_POST['titre']));
    // crypter mot de passe
    $pass = sha1($pass);
     
    mysql_query("INSERT INTO membre VALUES('', '$login', '$pass', '$nom', '$prenom', '$titre')");
    }
     
    else
    {
    echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
    }
    }
    ?>
     
     
     
        <html>
        <head>
        <title>Inscription</title>
        </head>
     
        <body>
        Inscription  :<br />
        <form method="Inscription.php">
    <label>login : <input type="text" name="login"/></label><br/>
    <label>Mot de passe : <input type="password" name="pass"/></label><br/>
    <label>Confirmation du mot de passe : <input type="password" name="pass2"/></label><br/>
    <label>Nom : <input type="text" name="nom"/></label><br/>
    <label>Prenom : <input type="text" name="prenom"/></label><br/>
    <label>Titre : <input type="text" name="titre"/></label><br/>
    <input type="submit" value="M'inscrire"/>
    </form>
        </body>
        </html>

    Je n'arrive pas à remplir la base dans un premier temps, je ne comprends où peut se situer le problème.

    Dans une deuxième temps, je cherche depuis hier à mettre des conditions pour la validation des données, comme un strlen($nom) par exemple.
    Je suis perdue dans la logique de l'insertion des conditions en fait. Est-ce que vous pouvez m'aider, me conseiller vers un tuto et un livre qui soit bien construit ?
    Merci d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Ton formulaire est mal construit : tu as mis method="Inscription.php" alors que cela devrait être :
    method="post" action="Inscription.php"Ensuite dans ton code, tu fais mysql_real_escape_string(htmlspecialchars()) : c'est pas très utile.
    On utilise htmlspecialchars() pour afficher des carctères spéciaux dans le navigateur tout en leur enlevant leur "sens informatique" qui pourrait être malheureusement interprété par le navigateur, ça n'a généralement rien à voir avec les données de la base.
    Enfin, c'est un choix. Il est tout à fait possible de procéder ainsi (même si je le déconseille), c'est juste que tu es amené à mêler données brutes et rendu web dans ta base de données. C'est deux choses différentes, mais bon.
    Dans tous les cas, pour échapper tes données mysql c'est mysql_real_escape_string() ou requête préparée (PDO).
    Pour les tutoriaux, c'est par ici

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Merci Rawsrc, je vais faire les modifs conseillées.
    Pour le tuto, je vais le lire aussi biensûr et je reviendrai avec mes questions certainement !
    Merci

Discussions similaires

  1. [AC-2010] Formulaire d'inscription de données dans plusieurs tables
    Par FITech dans le forum Modélisation
    Réponses: 0
    Dernier message: 03/06/2014, 04h06
  2. script js de validation de formulaire d'inscription
    Par Chakalaka dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/12/2009, 04h48
  3. Réponses: 18
    Dernier message: 17/03/2009, 17h25
  4. Réponses: 2
    Dernier message: 21/03/2008, 20h52
  5. [Formulaire]validation données zone de texte
    Par Lex O'Mil dans le forum IHM
    Réponses: 5
    Dernier message: 24/03/2007, 12h51

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