Beeloo
Messages postés5Date d'inscriptionjeudi 18 octobre 2007StatutMembreDernière intervention 4 mai 2008
-
3 mai 2008 à 14:39
Beeloo
Messages postés5Date d'inscriptionjeudi 18 octobre 2007StatutMembreDernière intervention 4 mai 2008
-
4 mai 2008 à 14:35
Beeloo
Messages postés5Date d'inscriptionjeudi 18 octobre 2007StatutMembreDerniè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.
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 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 !
Beeloo
Messages postés5Date d'inscriptionjeudi 18 octobre 2007StatutMembreDerniè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 !!
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 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 ...
Beeloo
Messages postés5Date d'inscriptionjeudi 18 octobre 2007StatutMembreDerniè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