Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1

    Homme Profil pro sofyan oumziz
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme sofyan oumziz
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : -1
    Points
    -1

    Par défaut Problème avec la fonction STRLEN

    Bonsoir tout le monde

    Je viens de créer un formulaire en Php mais j'ai un problème:
    si je veux le soumettre et que les données soit enregistrées dans la table, je dois enlever la fonction STRLEN(), sinon la table reste vide. pouvez-vous m'aidez svp?? et merci d'avance.

    voila mon code :


    Code :
    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 
    if(!empty($_POST) && strlen($_POST['nom'])>5 && strlen($_POST['prenom'])>5 && strlen($_POST['pass1'])>6){
    $nom = mysql_real_escape_string($_POST['nom']);
    $prenom = mysql_real_escape_string($_POST['prenom']);
    $pseudo = mysql_real_escape_string($_POST['pseudo']);
    $dts = mysql_real_escape_string($_POST['dts']);
    $sexe = mysql_real_escape_string($_POST['sexe']);
    $pass1 = sha1($_POST['pass1']);
    $pass2 = sha1($_POST['pass2']);
    $email = mysql_real_escape_string($_POST['email']);
    $activation = mysql_real_escape_string(uniqid(rand()));
    include('connection.php');
    mysql_query("INSERT into table Values(null,'$nom','$prenom','$pseudo','$dts','$sexe','$pass1','$email','$activation')");
    echo"<div class='succes animated flipInY  '>Pour activer votre compte un email vous a été envoyé à l'adresse ".$email."
    </div>";
    }
    else{
    if(!empty($_POST) ){
    $t = mysql_real_escape_string($_POST['pseudo']);
    $e = mysql_real_escape_string($_POST['email']);
    $p1 = mysql_real_escape_string($_POST['pass1']);
    $p2 = mysql_real_escape_string($_POST['pass2']);
    if($p1 !== $p2){
    echo "<p style='position:absolute;top:290px;left:0;font-family:arial,helvetica,sans-sherif;color:red;font-weight:bold;width:170px'>Les mots de passe ne sont pas identiques!</p>";
    }
    include('connection.php');
    $sql= mysql_query("SELECT * FROM table WHERE pseudo LIKE '$t' ORDER BY id");
    $rql = mysql_num_rows($sql);
    $rsql= mysql_query("SELECT * FROM table WHERE email LIKE '$e' ORDER BY id");
    $mrql = mysql_num_rows($rsql);
    if($rql == 1)
    {echo'<div id="pseudo">Ce pseudo existe deja!</div>';}
    if($mrql == 1)
    {echo'<div id="email">Cet email existe deja!</div>';}
    }
    if(!empty($_POST['nom']) and strlen($_POST['nom'])<5){
    echo "<p style='position:absolute;top:5px;left:0px;font-family:arial,helvetica,sans-sherif;color:red;font-weight:bold;font-size:11.5px'>5 caractères au moins!</p>";
    }
    if(!empty($_POST['prenom']) and strlen($_POST['prenom'])<5){
    echo "<p style='position:absolute;top:52px;left:0px;font-family:arial,helvetica,sans-sherif;color:red;font-weight:bold;font-size:11.5px'>5 caractères au moins!</p>";
    }
    if(!empty($_POST['pseudo']) and strlen($_POST['pseudo'])<5){
    echo "<p style='position:absolute;top:100px;left:0px;font-family:arial,helvetica,sans-sherif;color:red;font-weight:bold;font-size:11.5px'>5 caractères au moins!</p>";
    }
    if(!empty($_POST['pass1']) and strlen($_POST['pass1'])<6){
    echo "<p style='position:absolute;top:245px;left:0px;font-family:arial,helvetica,sans-sherif;color:red;font-weight:bold;font-size:11.5px'>6 caractères au moins!</p>";
    }
     
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    20 910
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 910
    Points : 27 296
    Points
    27 296

    Par défaut

    as tu debugue un minimum, c est à dire contrôler la valeur des tests que tu réalises dans t on if ?

  3. #3

    Homme Profil pro sofyan oumziz
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme sofyan oumziz
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : -1
    Points
    -1

    Par défaut

    quant je fais ca:

    Code :
    1
    2
    3
    if ( !empty($_POST)  and  strlen($_POST['nom'] )>5 ){
     
    }

    tout va bien puisque j'ai calcule seulement la chaine du premier champ. mais si je fais:

    Code :
    1
    2
    3
    if ( !empty($_POST)  and  strlen($_POST['nom'] )>5  and  strlen($_POST['prenom'] )>5  ){
     
    }
    c'est la ou il y a le probleme

    je n'ai aucun bugue, aucun message d'erreur ne s'affiche

  4. #4

    Homme Profil pro sofyan oumziz
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme sofyan oumziz
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : -1
    Points
    -1

    Par défaut probleme avec strlen

    uuup c'est résolu j'ai trouve la solution moi même après 3heures hhhh. Tout simplement le prob réside dans le classement il faut mettre comme ça :
    Code :
    1
    2
    3
    if(isset($_POST['nom']) && strlen($_POST['nom'])>5 and isset($_POST['prenom']) && strlen($_POST['prenom'])>5 and isset($_POST['pseudo']) && strlen($_POST['pseudo'])>5 and isset($_POST['pass1']) && strlen($_POST['nom'])>6){
     
    }
    c'est a dire chaque isset() correspond a une strlen(), sinon on aura des prob.

  5. #5
    Expert Confirmé Avatar de RunCodePhp
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    2 964
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : janvier 2010
    Messages : 2 964
    Points : 3 509
    Points
    3 509

    Par défaut

    Ok

    Juste pour info, la fonction isset() accepte plusieurs paramètres, plusieurs valeurs, ce qui permet de simplifier le code, cette alternative.

    Par ailleurs, pour améliorer la lisibilité du code, rien t'empêche de faire des sauts de ligne dans une alternative.

    Exemple :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST['nom'], $_POST['prenom'], $_POST['pseudo'], $_POST['pass1']) &&
        strlen($_POST['nom']) > 5 &&
        strlen($_POST['prenom']) > 5 &&
        strlen($_POST['pseudo']) > 5 &&
        strlen($_POST['pass1']) > 6) {
     
        // ... etc ...
    }
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  6. #6

    Homme Profil pro sofyan oumziz
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme sofyan oumziz
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : -1
    Points
    -1

    Par défaut probleme avec strlen

    Merci bien pour ton conseil.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •