Page 1 sur 2

connexion base impossible !

Posté : 05 mai 2005, 00:36
par YVES
Bonjour, voilà le premier problème d'entrée de jeu, si j'ose dire...


Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'yves@localhost' (mot de passe: OUI) in d:\program files\easyphp1-7\www\medieland\ins.php on line 12
Impossible de se connecter à la base de données

voici mon fichier de config

<?php
$host = "localhost";
$pseudo = "root";
$passe = "";
$bdd = "medieland";
mysql_connect($host,$pseudo,$passe) or die("Impossible de se connecter à la base de données");
mysql_select_db("$bdd") or die("Impossible de se connecter à la base de données");
?>

et la fameuse ligne 12 qui serait source d'erreur:
mysql_connect($host,$pseudo,$passe) or die("Impossible de se connecter à la base de données");

d'ou vient donc ce problème d'accès à la base? :oops:

Posté : 05 mai 2005, 08:23
par Cyrano
selon la ligne, MySQL demande un mot de passe pour l'utilisateur "yves" : ça ne correspond pas au code que tu nous montre où l'utilisateur est root... sans mot de passe.

Posté : 05 mai 2005, 13:06
par albat
Simple suggestion de sécurité :
N'indique pas sur ce forum (ni ailleurs !) le mot de passe que tu utilises... ;)

Posté : 05 mai 2005, 13:34
par YVES
Heu, désolé messieurs, mais je n'y vois pas plus clair :oops:
1) c'est "root" qui fiche la pagaille?

2) le mot de passe choisi pour la phase de test n'APPARAIT PAS ici, je vous rassure.

3) ca serait pas un pb d econfig dans le fichier ini ou 1 truc de ce genre :roll: :?:

Posté : 05 mai 2005, 13:46
par Cyrano
Il est possible que tu puisses accéder sans nom d'usager ni mot de passe selon la version et/ou la configuration. Enlève "root" et envoie une chaine vide à la place et ça fonctionnera peut-être...?

Posté : 06 mai 2005, 00:16
par YVES
Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in d:\program files\easyphp1-7\www\medieland\config.php on line 6
Impossible de se connecter à la base de données

C'est quasiment le meme mess d'erreur apres avoir virer "root" du fichier config :(

Je ne comprends pas, ce programme fonctionnait avant (depuis, j'ai du réinstallé le pc et tous les logiciels avec dont easy php mysql.....) :roll:

Posté : 06 mai 2005, 00:17
par YVES
J'ajouterais pour finir? :oops: qu'il me semble avoir lu (il y a longtemps) que c'était une histoire de fichier à configurer convenablement, mais lequel?

Posté : 06 mai 2005, 09:16
par Cyrano
Théoriquement, tu vas trouver ça dans un fichier my.ini, soit dans le répertoire de MySQL, soit dans C:/WINDOWS

Posté : 06 mai 2005, 10:13
par Ripat
J'ajouterais pour finir? :oops: qu'il me semble avoir lu (il y a longtemps) que c'était une histoire de fichier à configurer convenablement, mais lequel?
Les accès au serveur MySQL sont définis soit dans le fichier d'option my.ini ou my.cnf comme relevé par Cyrano, soit "en dur" dans la base de donnée mysql. Plus particulièrement dans la table users. Ces accès (niveau bdd) sont régis par:
  • user
    password
    host
Dans le fichier d'option tu trouveras les codes d'accès (en clair!) sous la section [client]. Personnellement je trouve la solution en dur plus sécuritaire.

As-tu essayé en ligne de commande:

Code : Tout sélectionner

c:\> mysql -u root -p Enter password:
Si tu as oublié tous les mots passe y compris celui de root, il y a une solution mais je te préviens, ce n'est pas simple.

Posté : 11 mai 2005, 22:21
par YVES
ripat ou les autres, je suis désolé mais cela merde toujours :oops:
les messages d'erreur ont changé mais semblent toujours etre du meme registre....

Notice: Undefined variable: requete in d:\program files\easyphp1-8\www\medieland\ins.php on line 12

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\medieland\ins.php on line 12

Notice: Undefined variable: db in d:\program files\easyphp1-8\www\medieland\ins.php on line 19

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in d:\program files\easyphp1-8\www\medieland\ins.php on line 19

mon fichier qui valide les inscritions (ins.php)

<?php
include_once("config.php");
$pseudo=($_POST['pseudo']);
$email=($_POST['email']);
$passe=($_POST['passe']);
$predef=($_POST['predef']);
$typeava=($_POST['typeava']);
$metier=($_POST['metier']);
$sexe=($_POST['sexe']);
$age=($_POST['age']);
//connexion à la base de données:
mysql_connect("$host","$pseudo","$passe") or die("Impossible de se connecter à la base de données !");
mysql_select_db("$bdd") or die("Impossible de se connecter à la base");
$num=mysql_num_rows($requete);
if($num!=0)
{
echo"Ce pseudo est déjà pris.<center>onClick='history.back()'>Retour</a></center>";
exit;
}
$requete=mysql_db_query($bdd,"select * from membres where email='$email'",$db) or die(mysql_error());
$num=mysql_num_rows($requete);

if($num!=0)
{
echo"cet email est déjà pris.<a href=\'javascript:history.back()\'>retour</a>";
exit;
}

else
{
$ip = $REMOTE_ADDR;
$date = time();
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$smartid.=substr($lettres,(rand()%(strlen($lettres))),1);
}
$sql = "INSERT INTO membres (id, pseudo, passe, email, avatar, metier, sexe, date_reg, ip) VALUES
('$smartid',
'$pseudo',
'$passe',
'$email',
'$fichier',
'$sexe',
'$metier',
'$age',
'$date',
'',
'$ip')
";
mysql_query ($sql);
$expire = 365*24*3600;
setcookie("pseudo","$pseudo",time()+$expire,"/","");
setcookie("smartid","$smartid",time()+$expire,"/","");
session_start();
session_register('pseudo');
session_register('smartid');
header("Location: bravo.php");
}
?>

et mon fichier "config.php" que voilà:

<?php
session_start();
$host = "localhost";
$pseudo = "root";
$passe = "";
$bdd = "medieland";
mysql_connect($host, $pseudo, $passe);
mysql_select_db($bdd);
?>

je tiens à dire que ces scripts fonctionnaient avec easyphp 7 et le mysql qui allait avec....

Posté : 13 mai 2005, 22:26
par YVES
J'ai peut-etre résolu SEUL le pb :P
dans la base.... login au lieu de "pseudo" ?
je réinstalle tout et vous tient au courant :P

Posté : 15 mai 2005, 01:01
par YVES
ca ne fonctionne toujours pas, toujours les memes messages d'erreur. :evil:

Notice: Undefined variable: requete in c:\program files\easyphp1-8\www\medieland\ins.php on line 12

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\medieland\ins.php on line 12

Notice: Undefined variable: db in c:\program files\easyphp1-8\www\medieland\ins.php on line 19

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\medieland\ins.php on line 19

Le premier mess erreur en vert, me dit que la variable n'est pas reconnue !
pourtant c'est bien référence à ma base de données :roll:

Posté : 15 mai 2005, 01:04
par Epeda
Peux-tu montrer ton code stp ?
Ce message d'erreur indique un probleme de variable, et non de connexion à la base de données. Donc il n'y a, à priori aucun rapport avec ton précédent problème.

Posté : 15 mai 2005, 01:19
par YVES
je sais, je ne comprends rien, j'ai tout virer et tout réinstallé de sfois que :roll:
voici mon fichier de config:
<?php
$host = "localhost";
$pseudo = "root";
$passe = "";
$bdd = "medieland";
mysql_connect("$host","$pseudo","$passe") or die("Impossible de se connecter à la base de données !");
mysql_select_db("$bdd") or die("Impossible de se connecter à la base");
?> 
et ensuite le fichier d'inscrition à la base de données (la ligne 12 est colorée pour vous repérer)
<?php
require_once("config.php");	
$pseudo=($_POST['pseudo']);
$email=($_POST['email']);
$passe=($_POST['passe']);
$predef=($_POST['predef']);
$typeava=($_POST['typeava']);
$metier=($_POST['metier']);
$sexe=($_POST['sexe']);
$age=($_POST['age']);
mysql_connect("$host","$pseudo","$passe") or die("Impossible de se connecter à la base de données !");
mysql_select_db("$bdd") or die("Impossible de se connecter à la base");
$num=mysql_num_rows($requete);
	if($num!=0)
	{
	echo"Ce pseudo est déjà pris.<center>onClick='history.back()'>Retour</a></center>";
	exit;
	}
	
	$requetem=mysql_db_query($bdd,"select * from membres where email='$email'",$db) or die(mysql_error());
	$numm=mysql_num_rows($requetem);

	if($numm!=0)
	{
	echo"cet email est déjà pris.<a href=\'javascript:history.back()\'>retour</a>";
	exit;
	}

	else
	{
	$ip = $REMOTE_ADDR;
	$date = time();	
	$taille = 20;
	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
	srand(time());
	for ($i=0;$i<$taille;$i++)
	{
	$smartid.=substr($lettres,(rand()%(strlen($lettres))),1);
	}
	$sql = "INSERT INTO membres (id, pseudo, passe, email, avatar, metier, sexe, age, date_reg, ip) VALUES 
	('$smartid',
	'$pseudo', 
	'$passe', 
	'$email',
	'$fichier',
	'$sexe',
	'$metier',
	'$age', 
	'$date',
	'',
	'$ip')
	";
	mysql_query ($sql);
	
	
	$expire = 365*24*3600; 
	setcookie("pseudo","$pseudo",time()+$expire,"/","");
	setcookie("smartid","$smartid",time()+$expire,"/","");    
	
	session_start();
	session_register('pseudo');
	session_register('smartid');
	header("Location: bravo.php");
	

}
?>

Posté : 15 mai 2005, 03:57
par Xenon_54
Conflit de variables : $pseudo est défini à deux endroits.
Dans le fichier de config
$pseudo = "root";
Dans le script
$pseudo=($_POST['pseudo']);
mysql_select_db("$bdd") or die("Impossible de se connecter à la base"); 
$num=mysql_num_rows($requete);
if($num!=0)
{
echo"Ce pseudo est déjà pris.<center>onClick='history.back()'>Retour</a></center>";
exit;
} 
À quoi correspond $requête? Où vas-tu chercher ça? On ne peut pas calculer le nombre de résultats retournée sur une requête qui n'a jamais existée...
$requetem=mysql_db_query($bdd,"select * from membres where email='$email'",$db) or die(mysql_error()); 
$db sort d'où? Normalement, c'est la variable contenant la ressource de connexion MySQL. Or, tu ne l'as jamais récupérée.
Tu aurais du faire : $db = mysql_connect(...);


Commentaire final : Révise entièrement ton code car je vais te dire franchement, c'est pas beau à voir.
Enlève les () autour des variables, c'est inutile. :arrow: $passe=($_POST['passe']);
Enlève les " autour des variables, c'est inutile. :arrow: "$passe"

Vraiment, je te conseille de tout réviser et d'essayer de comprendre ce que tu fais. De plus, une lecture des tutoriels disponibles sur phpdebutant ou phpfrance.com ne te ferait pas de tort.