Connexion impossible avec un utilisateur créer en php

Fermé
nadkaroui Messages postés 4 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 9 décembre 2014 - Modifié par nadkaroui le 9/12/2014 à 11:47
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 9 déc. 2014 à 17:16
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié par jordane45 le 9/12/2014 à 11:24
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 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 11:28
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 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 11:42
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > nadkaroui Messages postés 4 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 12:10
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 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 9 décembre 2014 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
9 déc. 2014 à 16:35
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
9 déc. 2014 à 17:16
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