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

Langage PHP Discussion :

pb avec des variables


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut pb avec des variables
    bonjour,

    J'utilise un tutoriel sur le site pour débuter en php et j'ai un petit problème avec les variables.

    J'avais cru comprendre qu'il n'était pas nécessaire de déclarer les variables.

    Pourtant si je fais un formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form method="post" action="check.php">
    <? echo "Login : <input type=\"text\" name=\"login\" value=\"$login\"/>
    Mot de passe : <input type=\"password\" name=\"pass\" value=\"$pass\"/>"
    ?>
    <input type="submit" value="Identifier"/>
    </form>
    cela me renvoi que les variables login et pass ne sont pas définies.

    pouvez vous me donner un petit coup de pouce ???

    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Il faut récupérer les variables avec $_POST et voir si les champs sont remplis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /***
       Si le champ pas n'est pas vide (!empty()) 
       on attribut la valeur du champ, sinon on attribut
       "VIDE!" à la variabe $pass (et $login) 
    ***/
    $pass = (!empty($_POST["pass"])) ? $_POST['pass'] : 'VIDE!';
    $login = (!empty($_POST["login"])) ? $_POST['login'] : 'VIDE!';
     
    echo $login."<br />".$pass;

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ok merci encore une question, sur la page check.php, je teste la validité du mot de passe et du login,

    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
     
    <? $pass = (!empty($_POST["pass"]));
    $login = (!empty($_POST["login"]));
    ?> 
    <? 
     
    $requet = "select * from droits where Nom=\"$login\" and Mdp=\"$pass\""; 
    $result = mysql_query($requet);
    if not ($result.EOF) {
    	echo "Bonne identification";
     
    	} else {
    	echo "Mauvaise identification";
    	}
    	?>
    mais je ne sais pas quoi mettre dans le if not pour que cela marche

    merci de votre aide

  4. #4
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Points : 61
    Points
    61
    Par défaut correction
    salut voila je pense que devrais marché :

    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
    <?php 
    if(!empty($_POST["pass"]) || !empty($_POST["login"]))  { // tu peux utiliser trim() pour optimiser
     
    echo " Mot pass ou  login vide ";
    }
    else
    {
    $login=$_POST["pass"];
    $pass=$_POST["pass"]); 
    }
     
     
    $requet = "select * from droits where Nom=$login and Mdp=$pass"; 
    $result = mysql_query($requet) or die(mysql_error());
    if ($result && mysql_num_rows($result) == 1) 
    {
    echo "c'est bon";
    }
    else
    {
    echo "cassse toi";
    }
    	?>

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ok merci beaucoup

    Citation Envoyé par php4life

    if ($result && mysql_num_rows($result) == 1)
    tu pourrai juste m'expliquer cette ligne s'il te plait?

    merci d'avance

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ca me donne toujours "casse toi"

    une idée ???

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Points : 61
    Points
    61
    Par défaut
    salut..
    bon désolé ... la c mieux
    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
     
    $result = mysql_query($requet);
    if($result) //si la requete est ok on pass
    {
     if ( mysql_num_rows($result) == 1)
     //si on a un seule enregsitrement comptabilisé  c'est bon , 
    //logiquement le login  qui se loge doit avoir  un seul tuple dans la table  
    //si t'as 0 tuples c'est a dir que le login n'existe pas .. 
    //au  + d'1 il y a une incohérence .. fo pas avoir 2 comptes php4life par exemple !
     {
     echo "c'est bon";
     }
     else
     {
     echo "cassse toi";
     }
    else
    {
    echo "error MySQL".mysql_error(); // on affiche l'erreur
    }
    voila .. tiens moi au courant

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ca me met toujours casse toi !

    merci pour l'explication, j'ai compris le principe

  9. #9
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Points : 75
    Points
    75
    Par défaut
    ok excuse moi

    j'avais fait une betise

    ca marche

    merci beaucoup

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Points : 61
    Points
    61
    Par défaut YYOyo! c
    héhé !
    De rien,!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/11/2005, 12h03
  2. Remplir les cellules Excel avec des variables VB
    Par rupeni dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/11/2005, 09h31
  3. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  4. paramétrer ADOConnection avec des variables
    Par ouckileou dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/04/2004, 08h11
  5. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35

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