impossible d'ouvrir une base via sessions

Eléphanteau du PHP | 33 Messages

21 juin 2005, 00:41

re tlm,

bon voila via une ouverture de session je tente d ouvrir ma base, par defaut je me loggue sous root, sans pass donc, mais des que je cree un user ou que je mets un pass a root et bien je me prends ca :

Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: OUI) in c:\program files\easyphp1-8\www\reglages01\admin\index.php on line 62
error connect
et si je mets pas de pass, j ai bien acces a ma base.

En revanche la validation du formulaire login/pass se deroule bien avec ou sans mot de passe...

Enfin si je crée un user, avec ou sans pass, et bien ca me mets tjs ce msg d erreur :
Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: OUI) in c:\program files\easyphp1-8\www\reglages01\admin\index.php on line 62
error connect
voila le fichier de validation :
$pseudo=$_POST['pseudo'];
$password=$_POST['password'];

//connection et authentification
$Connection=mysql_connect("localhost","root","") or die ("error connect");

//Connection à la base reglages
$odb=mysql_select_db("mysql",$Connection) or die ("Base reglages non trouvée");


$query = "SELECT * FROM user WHERE User ='$pseudo' AND password='$password' ";

$result = mysql_query($query); //execute la requete
$row = mysql_fetch_array($result);

if (empty($row)) // si $rowest vide, c'est que la combinaison user/ password est fausse
{
  echo "erreur d'auth";
}
else 
{
	session_start();
	$_SESSION['pseudo'] = $row['User'];
	$_SESSION['password'] = $row['password'];


    echo "ok"  ;
    echo "<a href=\"index.php\">Créer</a>";
   
}
et le fichier index.php :
<? 
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:"Inconnu";
$mdp = isset($_SESSION['password'])?$_SESSION['password']:"Inconnu";


if ($pseudo != "Inconnu" && $mdp != "Inconnu")
{
    $Connection = mysql_connect("localhost", $pseudo , $mdp) or die ("error connect");
    $odb = mysql_select_db("reglages",$Connection) or die ("Base reglages non trouvée");


echo "Votre login est ".$pseudo." et votre mot de passe est ".$mdp;

voila si quelqu un aurait une idée je trouve cela assez etrange...merci de l aide :)

Mammouth du PHP | 19672 Messages

21 juin 2005, 06:37

Le problème vient de ce que l'utilisateur root est enregistré sans mot de passe dans la table "user" de ta base "mysql". éventuellement, tu peux ajouter des utilisateurs avec mot de passe.

Vérifie via phpMyAdmin la base "mysql". Ce n'est pas un problème de code, c'est une liste d'utilisateurs de MySQL
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 juin 2005, 09:02

Je vais poser une question bête, mais est-ce que tu pense à changer cette ligne quand tu met un pass à root ?
$Connection=mysql_connect("localhost","root","") or die ("error connect");
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 33 Messages

21 juin 2005, 10:41

re,

oui le pass du root ne pose pas d probleme je pense, vu que l authentification se deroule bien a chaque fois, c est au moment d ouvrir la base avec les variable de session que ca bug, des que je renseigne un pass ca veut pas :((:..
Le problème vient de ce que l'utilisateur root est enregistré sans mot de passe dans la table "user" de ta base "mysql". éventuellement, tu peux ajouter des utilisateurs avec mot de passe.

Vérifie via phpMyAdmin la base "mysql". Ce n'est pas un problème de code, c'est une liste d'utilisateurs de MySQL
bah le soucis c est que si je mets un pass a root, l authentification se passe bien mais pareil ca bloke sur l ouverture de la base....
j ai l impresssion que des que je mets un pass et bien ca ne veut pas passer.


quelqu un aurait une idée please ?? (:(:

Eléphant du PHP | 260 Messages

21 juin 2005, 10:54

Lorsque tu crée ton nouveau user dans ta table MYSQL.user est-ce que tu pense bien aussi a te donner les droits de select, insert, delete ... ?
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

Eléphanteau du PHP | 33 Messages

21 juin 2005, 11:20

Lorsque tu crée ton nouveau user dans ta table MYSQL.user est-ce que tu pense bien aussi a te donner les droits de select, insert, delete ... ?
oui je fais "creer un utillisateur", avec ALL PRIVILEGES, et avec ou sans pass je n arrive pas a ouvrir ma base :(:(, seule l authentification se deroule correctemet :(

Eléphant du PHP | 260 Messages

21 juin 2005, 11:31

oui je fais "creer un utillisateur", avec ALL PRIVILEGES, et avec ou sans pass je n arrive pas a ouvrir ma base :(:(, seule l authentification se deroule correctemet :(
Attend ou tu vois sa toi dans MySql ?! "creer un utilisateur" :?
Tu as quelle version ?
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

Eléphanteau du PHP | 33 Messages

21 juin 2005, 11:35

dans la page de garde, dans privileges, ya un lien poitant vers "ajouter un utilisateur ", pardon c est pas creer....

et meme en creant un user via commande sql, bah c est le meme probleme . :(
j vois pas ce qui pourrait clocher :(

Eléphant du PHP | 214 Messages

21 juin 2005, 11:40

Pour te connecter à ta base c'est pas dans une table de ta base que tu dois mettre un nouvel utilisateur c'est dans la table "USER" de MySQL, c'est ce que Cyrano a essayé de t'expliquer je crois
Les grands esprits sont une cible facile pour les médiocres...

Eléphant du PHP | 260 Messages

21 juin 2005, 11:42

j'essaye chez moi !
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

Eléphant du PHP | 260 Messages

21 juin 2005, 11:50

Pour te connecter à ta base c'est pas dans une table de ta base que tu dois mettre un nouvel utilisateur c'est dans la table "USER" de MySQL, c'est ce que Cyrano a essayé de t'expliquer je crois
Oui c'est vrai mais de la manière dont il procède fonctionne aussi.

Alors Meta, sache que chez moi sa fonctionne donc l'erreur vient de ton code !! Es-tu sur du mot de passe que tu a rentré ?
Mon code :
<?
   $connect=mysql_connect("localhost","waf","test") or
        die("Impossible de se connecter a la BDD - Contacter l'administrateur : " . mysql_error());
mysql_selectdb("waf_db",$connect) or
        die("Impossible de se table - Contacter l'administrateur : " . mysql_error());
?>
Et sa fonctionne parfaitement !!

:arrow: Partis manger !
Mon jeu : http://www.battle-stars.fr.tc
---
Mon serveur : http://servlan.dyndns.org
---
Bientôt tous mes serveurs OPEN ;)

metan
Invité n'ayant pas de compte PHPfrance

21 juin 2005, 13:39

bah ecoutez je ne vois pas ce qui peut clocher,

mon code est celui du haut, la seule chose que j arrive a faire c est :

1. m authentifier avec root sans pass et ouvrir ma base
2. si je cree un user sans pass (dans la base mysql et table user), je peux m authentifier et ouvrir ma base
3. si je cree un user sans pass, je peux m authentifier mais ne peuxd pas ouvrir la base
4. si j ajoute un pass a root, j arrive bien a m authentifier mais je ne peux pas ouvrir ma base/ :-

voila ma page de validation de saisie login/pass :
$pseudo=$_POST['pseudo'];
$password=$_POST['password'];

//connection et authentification
$Connection=mysql_connect("localhost","root","") or die ("error connect");

//Connection à la base reglages
$odb=mysql_select_db("mysql",$Connection) or die ("Base reglages non trouvée");


$query = "SELECT * FROM user WHERE User ='$pseudo' AND password='$password' ";

$result = mysql_query($query); //execute la requete
$row = mysql_fetch_array($result);

if (empty($row)) // si $rowest vide, c'est que la combinaison user/ password est fausse
{
  echo "Votre nom d'utilisateur/mot de";
}
else 
{
	
	$_SESSION['pseudo'] = $row['User'];
	$_SESSION['password'] = $row['password'];


    echo "Votre authentification s'est bien déroulée. <br><br> "  ; 
    echo "<a href=\"index.php\">Cliquez ici pour acceder au menu principal.</a>";
   
}
et voila un bout de ma page index.php, la ou je voudrai ouvrir ma base :
 <?php


$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:"Inconnu";
$mdp = isset($_SESSION['password'])?$_SESSION['password']:"Inconnu";


if ($pseudo != "Inconnu" && $mdp != "Inconnu")
{
    $Connection = mysql_connect("localhost", $pseudo , $mdp) or die ("error connect");
    $odb = mysql_select_db("reglages",$Connection) or die ("Base reglages non trouvée");


echo "Votre login est ".$pseudo." et votre mot de passe est ".$mdp;




		if ($pseudo = "root")

		{

$sql0= "SELECT DISTINCT modele_annee FROM modele";

je precise que dans ma page de validation je pense a tjs bien verifier ces parazmetres :
$Connection=mysql_connect("localhost","root","") or die ("error connect"); 
donc la je ne vois vraiment pas d ou ca pourrait venir.. :(

si quelqu un aurait une idée, merci d avance de votre precisue aide :)

Invité
Invité n'ayant pas de compte PHPfrance

21 juin 2005, 15:00

up personne n aurait une petite solution please ??

Eléphanteau du PHP | 33 Messages

21 juin 2005, 20:37

argh je n'ai toujours pas trouve d solutions, si quelqu un aurait une idée sur le probleme ce serait simpa d repondre...merci d avance de votre aide. :(:(

ViPHP
ViPHP | 1380 Messages

21 juin 2005, 21:07

Accès refusé pour l'utilisateur: 'root'@'@localhost'
Un peu bizarre le double @@!

Vérifie dans la table user le host de root. Ou bien tu lui mets % pour tout host (sous windows je pense me souvenir que le wild card est différent. A vérifier)
ripat