Connexion impossible avec un utilisateur créer en php

nadkaroui Messages postés 4 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
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 :

<?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.
A voir également:

1 réponse

jordane45 Messages postés 40050 Statut Modérateur 4 758
 
Bonjour,
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
0
nadkaroui Messages postés 4 Statut Membre
 
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
0
nadkaroui Messages postés 4 Statut Membre
 
oui les variables de connexion sont en haut du code qui font pareil

$host        = "host=localhost";
$dbname = "dbname=cloud-personnel";
$user = "user=postgres ";
$pass = "password=root";
$port = "port=5432";


bien cordialement
0
jordane45 Messages postés 40050 Statut Modérateur 4 758 > nadkaroui Messages postés 4 Statut Membre
 
Oui 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 ))

0
nadkaroui Messages postés 4 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
Finalement 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.
0
jordane45 Messages postés 40050 Statut Modérateur 4 758
 
Pas de souci. ^^

Par contre.. Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0