Connexion impossible avec un utilisateur créer en php
Bonjour,
Quand je crée un utilisateur sur Postgres j'arrive à me connecter avec par contre quand je le crée sur une page php et j'essaie d'utiliser ses identifiants il m'affiche l'erreur "Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: authentification par mot de passe échouée pour l'utilisateur"
voila mon code :
pour plus de détail voila la page php d'authentification
Merci pour votre aide.
Quand je crée un utilisateur sur Postgres j'arrive à me connecter avec par contre quand je le crée sur une page php et j'essaie d'utiliser ses identifiants il m'affiche l'erreur "Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: authentification par mot de passe échouée pour l'utilisateur"
voila mon code :
<?php
$host = "host=localhost";
$dbname = "dbname=cloud-personnel";
$user = "user=postgres ";
$pass = "password=root";
$port = "port=5432";
$db=pg_connect( "$host $port $dbname $user $pass" );
$alias = $_POST["alias"] ;
$categorie = $_POST["cat"] ;
$pass = $_POST["password"] ;
$sql2 = "create user $alias with password '$pass';";
$sql3 = "alter group $categorie add user $alias";
pg_query($sql2);
pg_query($sql3);
header("location: ajoutuser.php");
?>
pour plus de détail voila la page php d'authentification
<?php
$pseudo = $_POST['la1'];
$passe = $_POST['la2'];
//Variable de connexion
$host = "host=localhost";
$dbname = "dbname=cloud-personnel";
$user = "user=".$pseudo;
$pass = "password=".$passe;
$port = "port=5432";$date = date("m.d.y");
// CONNEXION A LA BASE DE DONNEE
if (pg_connect( "$host $port $dbname $user $pass" ))
{
if ($pseudo=='postgres' && $passe=='root')
{
header("Location:index_admin.html");
exit;
}
else
{
$sql = "UPDATE utilisateur SET date_con = '$date', nb_cnx = nb_cnx + 1 WHERE alias = '$user'";
$res=pg_query($sql);
header("Location:index_user.php?pseudo=$user&pass=$pass");
exit;
}
}
else
{
header("Location:authentification.php?error");
}
?>
Merci pour votre aide.
1 réponse
-
ModérateurBonjour,
Ne te manquerait il pas des virgules ?$db=pg_connect( $host, $port, $dbname, $user, $pass );
EDIT : En regardant le manuel je pense que la chaine de connexion serait plutot du genre :$dbconn3 = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$pass ");
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane-
Merci pour votre réponse rapide, je pense qu'avec pg_connect on ne met pas les virgules je fais pareil pour les autres manipulations de mes pages et j'ai aucune erreur. L'utilisateur est déjà créer avec le mot de passe c'est pareil que je le crée en sql sur postgres par contre celui que je crée en sql j'arrive à me connecter avec et l'autre non :/ c'est bizarre
-
-
Modérateur@nadkarouiOui je viens de le voir..
j'avais lu en diagonale.. désolé...
Par contre... je ne comprend pas ta phrase :L'utilisateur est déjà créer avec le mot de passe c'est pareil que je le crée en sql sur postgres par contre celui que je crée en sql j'arrive à me connecter avec et l'autre non
Ah.. je viens de voir que tu avais ajouté des infos...
Donc ton souci se situerait au niveau de cette partie là de ton code ?$pseudo = $_POST['la1']; $passe = $_POST['la2']; //Variable de connexion $host = "host=localhost"; $dbname = "dbname=cloud-personnel"; $user = "user=".$pseudo; $pass = "password=".$passe; $port = "port=5432";$date = date("m.d.y");
=> As tu fais un print_r($_POST) pour voir si les variables étaient bonnes ?
Eventuellement fais aussi un Print de ta chaine de connexion:$cnxString = "$host $port $dbname $user $pass" ; echo "<br> Chaine de connexion : <br>"; print_r($cnxString ); // CONNEXION A LA BASE DE DONNEE if (pg_connect( $cnxString ))
-
@jordane45Finalement print_r($_POST) m'a servi pour trouver le beug, j'avais une erreur en mot de passe mais pas à ces pages la. Je m'excuse pour cette bêtise.
Merci infiniment pour le temps consacré pour me répondre. -
-