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 :

[Tableaux] Problème de test sur une variable


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut [Tableaux] Problème de test sur une variable
    Je cree une page web ou j essaye de controler l entree des visiteurs, cependant, j ai un petit probleme sur cette condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($login == $data['matricula']) && ($data['part'] == 1) && ($password == $data['dni']))
    En fait dans ce test les variables sont issues d'une base de donnée ($data[.....]) et $login, $ dpassword et $part viennent d un formulaire.

    Mon probleme est donc (enfin je pense) que cette condition ($password == $data['dni']) ne fonctionne pas car $data['dni'] est de type VARCHAR.
    Donc comment faire pour que cela fonctionne???
    Merci

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu fais un echo de chacune de tes variables avant ton test comme ça tu verras ce qui va pas comme tu voudrais.

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    C'est quoi $dpassword ? le $password ? et il n'y a pas de $part :o, normal ?, si cela provient d'un formulaire tu as bien remplis tes variables avec $_POST ? ou $_GET ?

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    J ai essayé ave echo et cela ne me solutionne rien. J'obtiens le bon ressultat a l ecran, doc le formulaire est bon.

    Tenez jvous mets le code.


    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
    <?php
     
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', 'root');
    define('DB_SERVER_PASSWORD', 'parissg');
    define('DB_DATABASE', 'base');
     
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    mysql_select_db(DB_DATABASE, $connect);
    foreach($_POST as $index => $valeur) {
    	$$index = mysql_real_escape_string(trim($valeur));
    	}
     
    session_start();
    $loginOK = false;
    if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
    	{
    	extract($_POST);
    	$sql = "SELECT `matricula`,`dni`,`part` FROM `identificacion` WHERE `matricula` = '".addslashes($login)."'";
    	$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
    	if (mysql_num_rows($req) > 0)
    		{
    		$data = mysql_fetch_assoc($req);
    		if (($login == $data['matricula']) && ($data['part'] == 1) && ($password == $data['dni']))
    			{
    			$_SESSION['login'] = $data['dni'];
    	  		$_SESSION['password'] = $data['matricula'];
    	  		$_SESSION['part'] = $data['part'];
    			echo $_SESSION['login'];
    			echo $_SESSION['password'];
    			echo $_SESSION['part'];
    			}						
    		else
    			{
    			$_SESSION['login'] = $data['dni'];
    	  		$_SESSION['password'] = $data['matricula'];
    	  		$_SESSION['part'] = $data['part'];
    			echo $_SESSION['login'];
    			echo $_SESSION['password'];
    			echo $_SESSION['part'];
    ?>

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Mais c'est quoi le problème exacte ? OO

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Mon probleme est que cette condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($login == $data['matricula']) && ($data['part'] == 1) && ($password == $data['dni']))
    Est toujours fausse a cause du dernier ($password == $data['dni']).
    Et je ne sais pas pourquoi sauf que je pense que c à cause du type de data['dni']) qui est la seule variable n etant pas un int dans la base de donnee (c est un varchar)

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Essaye sans utiliser extract() et prend les variable de $_POST, sinon pour un mot de passe c'est normal que ce soit VARCHAR, si tu n'as que des INT, sa sera pas dur à hacker tous tes mots de passe :s. Fait aussi un var_dump($_POST) pour bien voir .

    Aussi les données qui ressorte de la base de données essaye depuis le tableau à l'indice 0 , comme sa :

    et essaye mysql_fetch_array() au lieu de assoc, sait-on jamais

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    cela ne répond sans doute pas à ta question, mais il est impératif de mettre session_start en première ligne du script

Discussions similaires

  1. Problème de sintaxe sur une variable
    Par jmde dans le forum VBA Access
    Réponses: 6
    Dernier message: 12/06/2008, 14h59
  2. Test sur une variable tableau évoluée
    Par p_12345 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 11/12/2007, 10h52
  3. faire un test sur une variable
    Par donny dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2006, 16h55
  4. Réponses: 2
    Dernier message: 11/09/2006, 13h22
  5. Réponses: 4
    Dernier message: 16/06/2005, 16h37

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