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 :

Inscription (+SQL) [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut Inscription (+SQL)
    Bonjour , j'ai un petit probléme , j'ai créé un script qui permet 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
    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
    <?php
    if(isset($_POST['login']))
        {
        $login=$_POST["login"];
        $pass=$_POST["pass"];
        $pass2=$_POST["pass2"];
        $login=trim($login);
        $pass=trim($pass);
        $pass2=trim($pass2);
        if($pass==$pass2)
            {
        $mail=$_post['mail'];
        $clogin=strlen($login);
        $cpass=strlen($pass);
        if($clogin>3&$cpass>3)
            {
            $pass=md5("$pass");
            $cpass=strlen($pass);
            if($clogin<30&$cpass<40)
                { 
                include("conex.ini.php");
                $sql="SELECT id_client
                FROM `client`
                WHERE login = '$login'";
                $res = mysql_query($sql)or exit(mysql_error());
                $nbclient=0;
                while ($row = mysql_fetch_row($res))
                    {
                    for ($j = 0; $j < count($row); $j++)    
                        {
                        $nbclient++;
                        }
                    }
                if("0"=="$nbclient")
                    {
                    //inscription de 1 personne dans la base de donnée
                    $sql="INSERT INTO `client` (`login` , `pass` , `mail` )
                    VALUES ('$login', '$pass' , '$mail')";
                    mysql_query($sql);
                    echo"<script>alert(\"Vous pouvez vous conecter en tant que $login\");";
                    echo"window.location.replace(\"index.php?m=1\");\n";
                    echo"</script>";
                    }
                else
                    {
                    echo"<script>alert(\"se login est deja utilisé\");";
                    echo"window.location.replace(\"./index.php?m=2\");\n";
                    echo"</script>";
                    }
                }
            else
                {
                echo"<script>alert(\"se login ou mot de passe est trop grand\");";
                echo"window.location.replace(\"./index.php?m=2\");\n";
                echo"</script>";
                }
     
            }
        else
            {
            echo"<script>alert(\"Login ou mot de passe trop petit\");";
            echo"window.location.replace(\"./index.php?m=2\");</script>";
            }
            }
        else
            {
            echo"<script>alert(\"Vous devez confirmer le mot de passe avec le méme mot..\");";
            echo"window.location.replace(\"./index.php?m=2\");</script>";
            }
        }
    else
        {
        $page="./inscription.php";
        echo"<h2>Inscription</h2>";
        echo"<table>";
        echo"<form action=\"$page\" method=\"POST\">";
        echo"<tr><td>Login</td><td><input type=\"text\"name=\"login\"></td></tr>";
        echo"<tr><td>Pass</td><td><input type=\"password\" name=\"pass\"></td></tr>";
        echo"<tr><td>Confirmation</td><td><input type=\"password\" name=\"pass2\"></td></tr>";
        echo"<tr><td>email</td><td><input type=\"text\" name=\"mail\"></td></tr>";
        echo"<tr><td></td><td><input type=\"submit\" value=\"s'inscrire\" style=\"width: 100%\"></form></td></tr></table>";
        }
    ?>
    Le probléme : quand je remplace $mail="mailde@jecpasquoi.fr";
    >>Sa fonctionne

    Mais quand il as $mail=$_POST['mail'];
    Sa ne fonctionne pas ...

    Sa ne fonctionne pas ...

  2. #2
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Le probléme : quand je remplace $mail="mailde@jecpasquoi.fr";
    Mais quand il as $mail=$_POST['mail']
    Comment ?! Je comprends pas non plus.

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut
    Citation Envoyé par ePoX
    Comment ?! Je comprends pas non plus.
    Voila , j'ai modifier mon post

  4. #4
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Sa peut être du à :
    - Deux passwords différent.
    - un problème de cassse ??! -> $mail=$_POST['mail'];
    au lieu de $mail=$_post['mail'];
    - Un login et/ou password dont la longueur n'excède pas 3 caracteres
    - Un login plus long de 30 car, ou un password hasher en md5 plus long de 40 car(Cette vérif me semble bancale dans le sens ou tu ne controle pas la longueur de la chaine hasher)
    au passage : transforme ceci : $pass=md5("$pass"); en $pass=md5($pass);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                $sql="SELECT id_client
                FROM `client`
                WHERE login = '$login'";
                $res = mysql_query($sql)or exit(mysql_error());
                $nbclient=0;
                while ($row = mysql_fetch_row($res))
                    {
                    for ($j = 0; $j < count($row); $j++)    
                        {
                        $nbclient++;
                        }
                    }
    Bon alors y'à du superflu à priori. Ce que tu veut savoir c'est si il existe 1 et 1 seul client possèdant le même login.
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                $sql="SELECT id_client
                FROM `client`
                WHERE login = '$login'
                LIMIT 0,1";
                $res = mysql_query($sql)or exit(mysql_error());
                if( mysql_fetch_array($res) == false)
    {
    // inscription
    }
    voila quelques pistes.

    bye

  5. #5
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut
    merci , je test

  6. #6
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Quel est le schéma de ta table précisément ?

  7. #7
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut
    Merci , s'était bien $_POST donc , je vais bien lire ton message pour améliorer , en fait j'ai utiliser au depard le script de matthieu ( lecture d'une requéte SQL comme dans PHP My admin )

    Encore merci beaucoup pour tes conceils , que je meterai en pratique ...

    Sinon pour finir , ma table est

    id_client mediumint(8) UNSIGNED Non auto_increment

    login varchar(30) latin1_swedish_ci Non

    pass varchar(40) latin1_swedish_ci Non

    mail varchar(50) latin1_swedish_ci Oui NULL
    >>OUI et non , sont en fait null
    >>NULL : defaud

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

Discussions similaires

  1. [SQL] Système d'inscription/connexion
    Par tokimitsu dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 06/03/2008, 14h15
  2. [MySQL] erreur sql dans formulaire pour inscription membre
    Par kate59 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/02/2008, 13h08
  3. SQL 2005 : inscription Serveur
    Par DOMINO53 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 22/11/2007, 14h47
  4. Inscription d'un serveur SQL server 2005 Express
    Par Opo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/04/2006, 13h46
  5. Inscription du serveur SQL erreur d'installation
    Par zilale dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/05/2005, 16h53

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