Problème pgsql
pop2010
-
pop2010 -
pop2010 -
Bonjour !
Voilà j'ai un problème avec pgsql et php.
Je récupère deux champs pass_client (mot de passe d'un client) et admin_client (booléen, le client est administrateur si vrai).
Je récupère également d'un formulaire $password (mot de passe entré dans le formulaire).
Je met un echo pour vérifier mes variable dans le site, et je constate que si le mot de passe entré dans le formulaire et le booléen sont corrects, le mot de passe stocké dans la base de donnée est toujours retourné avec un espace en plus... (donc par exemple au lieu d'avoir "pass" il renvoie "pass "), ce qui fait que je ne peux pas comparer les deux valeurs. En testant je me suis rendu compte que ça se passe avec toutes les chaînes de caractères.
Voici la parti du code concernée :
J'aimerai donc savoir où le bât blesse... ou alors (mais c'est marginal comme solution) comment rajouter un espace à la variable $password (apparemment $password=+" " ne fonctionne pas).
Merci d'avance !
Voilà j'ai un problème avec pgsql et php.
Je récupère deux champs pass_client (mot de passe d'un client) et admin_client (booléen, le client est administrateur si vrai).
Je récupère également d'un formulaire $password (mot de passe entré dans le formulaire).
Je met un echo pour vérifier mes variable dans le site, et je constate que si le mot de passe entré dans le formulaire et le booléen sont corrects, le mot de passe stocké dans la base de donnée est toujours retourné avec un espace en plus... (donc par exemple au lieu d'avoir "pass" il renvoie "pass "), ce qui fait que je ne peux pas comparer les deux valeurs. En testant je me suis rendu compte que ça se passe avec toutes les chaînes de caractères.
Voici la parti du code concernée :
<?php include('connect.php');
$query="SELECT pass_client, admin_client FROM client WHERE login_client='".$login."'";
$result=pg_exec($cnx, $query);
if(!$result) {
echo("Echec $query");
exit();
}
$liste=pg_fetch_array($result, 0);
if($liste[pass_client]==$password) {
if($liste[admin_client]) { ?>
J'aimerai donc savoir où le bât blesse... ou alors (mais c'est marginal comme solution) comment rajouter un espace à la variable $password (apparemment $password=+" " ne fonctionne pas).
Merci d'avance !
2 réponses
Salut,
Le problème d'espace ne me dis rien, mais effectivement, il y a une solution un peu moins jolie d'ajouter un espace au password :
$password .= " "; // Concaténation string avec le point !
Ou si il n'y a pas d'espace en fin de password :
if (rtrim($liste[pass_client] == rtrim[$password])
Pas très joli j'en conviens, mais ça devrait marcher...
Michael.
Le problème d'espace ne me dis rien, mais effectivement, il y a une solution un peu moins jolie d'ajouter un espace au password :
$password .= " "; // Concaténation string avec le point !
Ou si il n'y a pas d'espace en fin de password :
if (rtrim($liste[pass_client] == rtrim[$password])
Pas très joli j'en conviens, mais ça devrait marcher...
Michael.