connexion base impossible !

Eléphant du PHP | 250 Messages

05 mai 2005, 00:36

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:

Mammouth du PHP | 19672 Messages

05 mai 2005, 08:23

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 mai 2005, 13:06

Simple suggestion de sécurité :
N'indique pas sur ce forum (ni ailleurs !) le mot de passe que tu utilises... ;)

Eléphant du PHP | 250 Messages

05 mai 2005, 13:34

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: :?:

Mammouth du PHP | 19672 Messages

05 mai 2005, 13:46

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...?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

06 mai 2005, 00:16

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:

Eléphant du PHP | 250 Messages

06 mai 2005, 00:17

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?

Mammouth du PHP | 19672 Messages

06 mai 2005, 09:16

Théoriquement, tu vas trouver ça dans un fichier my.ini, soit dans le répertoire de MySQL, soit dans C:/WINDOWS
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1380 Messages

06 mai 2005, 10:13

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.
ripat

Eléphant du PHP | 250 Messages

11 mai 2005, 22:21

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....

Eléphant du PHP | 250 Messages

13 mai 2005, 22:26

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

Eléphant du PHP | 250 Messages

15 mai 2005, 01:01

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:

Eléphant du PHP | 102 Messages

15 mai 2005, 01:04

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.

Eléphant du PHP | 250 Messages

15 mai 2005, 01:19

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");
	

}
?>

Mammouth du PHP | 1885 Messages

15 mai 2005, 03:57

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP