Php, structure If et comparaison de variables

Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008 - 3 mai 2008 à 14:39
Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008 - 4 mai 2008 à 14:35

8 réponses

Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008
3 mai 2008 à 14:50
Bon j'ai rien compris au système de post ....
Donc je re re re écrit :

Il s'agit d'un code php tout con pour vérifier le login et pwd qu'un membre à saisi. Le problème vient du if de comparaison de $pass (pass saisi) et $password (pass dans la bdd)... J'écho les valeurs, elles sont pareilles mais le if considère qu'elles sont pas égales ^^:

Mon code:

<?php

// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.
include('connect.php');
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))
{
$login=$_POST['login'];
$pass=$_POST['pass'];
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select MDP_USER from USERS where PSEUDO_USER='".$login."'";
$req = odbc_exec($sqlconnect,$sql);
$row = odbc_fetch_object($req);
$password=$row->MDP_USER;
echo ($password);
echo ($pass);
if($pass == $password)
{
// session_start();
// $_SESSION['login'] = $login;

echo 'Vous etes bien logué';
}
else {
echo 'Mauvais login / password. Merci de recommencer

';
exit;
}
}
else
{
echo 'Vous avez oublié de remplir un champ.

';
exit;
}

L'affichage:

mdp01 mdp01

Mauvais login / password. Merci de recommencer
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 mai 2008 à 15:23
pourquoi tu t'es mis en réponse accèpté ? ton problème est résolu ?

Si t'a besoin d'aide, MP !!!
Un forum...
0
Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008
3 mai 2008 à 15:25
Ouais non j'ai pas fait gaffe ...
Mon problème n'est toujours pas résolu malheureusement ...
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 mai 2008 à 15:32
Salut,

je vois pas ou est le pb, par contre es ce que l'espace entre les deux pseudos est volontaire ?
Si non ça veut dire qu'un de tes mdp contient un espace !

a++

Si t'a besoin d'aide, MP !!!
Un forum...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008
4 mai 2008 à 10:51
En fait ça y est j'ai trouvé !

J'ai affiché avec des var_dump($password); var_dump($pass); et j'ai remarqué que un été en string(32) et l'autre en string(5) alors j'ai trouvé une solution barbare pour l'instant j'ai rajouté des espace au password saisie jusqu'à arrivé a un string(32).

$pass=$_POST['pass'];
$espace=(32-strlen($pass));
for ($i=1;$i<=$espace;$i++)
{
$pass=$pass." ";
}

Si vous avez mieux comme solution n'hésitez pas !!
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
4 mai 2008 à 13:31
Salut,

Déja tes deux mots de passes sont en clair ? Si la solution que tu viens de dire fonctionne, alors

if(trim($pass) == trim($password)) fonctionnera tout aussi bien.
 
Au fait, à la place d'une boucle tu aurais pu simplement faire $pass .= str_repeat(' ',32-strlen($pass));

Pour infos Trim enlève les espaces superflus au début et à la fin d'une chaine.
str_repeat répète une chaine N fois.

Voir php.net pour plus d'infos

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
4 mai 2008 à 13:50
Yoman64++ comme d'habitude quoi !

a++

PS : désolé, je viens d'ouvrir ma boite de mail car pendant toute la matinée je devais administrer et modérer mon forum, pas grand chose a faire car il est encore jeune mais bon ...

Si t'a besoin d'aide, MP !!!
Un forum...
0
Beeloo Messages postés 5 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 4 mai 2008
4 mai 2008 à 14:35
Alors if(trim($pass) == trim($password)) ça ne marche pas ==> Je pense que ça vient de SQLSERVER(bdd obligatoire à cause du bts). Il met des espace tout seul !

Sinon pour $pass .= str_repeat(' ',32-strlen($pass)); Ca marche nikel :) Merci bcp

PS: J'ai commencé le php il y a deux mois donc je suis encore en initiation
0
Rejoignez-nous