problème connection à distance à la Base de données

Petit nouveau ! | 3 Messages

15 sept. 2010, 21:22

Bonjour ,j'ai réalisé un site que j'ai installé sur un PC qui fait office de serveur.La base de donnée perfenac du site est administrée dans easyphp sur le même pc.Sur ce pc tout fonctionne.
D'un pc distant ,j'arrive à accéder à mon site, mais visiblement pas à la base de donnée car les champs des menus déroulant sont vides.
Que dois je modifier dans mon code PHP?Doisje remplacer localhost par l'adresse ip du serveur, par l'adresse du site?Y a t il un autre Problème?
D'avance merci...
Voici le script de connection
<?php
function connect($host,$user,$password,$database) {
	mysql_connect($host,$user,$password) or die("pas de connexion");
	mysql_select_db($database) or die("pas de connexion");
	mysql_query("SET NAMES 'utf8'");
	}
	
function db_select($sql){$resultat="";
	$req=mysql_query($sql) or die("erreur sql: $sql");
	$i=0;
	while ($data=mysql_fetch_array($req)){
		$resultat[$i]=$data;
		$i++;
	}
	return $resultat;
}
function db_select2($sql){
	$req=mysql_query($sql) or die("erreur dans votre requete sql: $sql");};
	
	
connect('localhost','root','','perfenac');
?>

ViPHP
ViPHP | 5462 Messages

15 sept. 2010, 21:27

est ce que ton serveur mysql autorise les connexions a distance ?

Petit nouveau ! | 3 Messages

16 sept. 2010, 09:36

merci steal, comment puis voir cela, faut il que j'aille voir dans admnistrateur dans easyphp?

Mammouth du PHP | 19672 Messages

17 sept. 2010, 22:32

Si tu utilises EasyPHP, j'ai des raisons de penser que tu es sous Windows, donc la directive skip_networking dans le my.ini ne servirait à rien.

Par contre dans phpMyAdmin, tu peux voir les privilèges : là, tu dois pouvoir identifier les utilisateurs autorisés et noter un détail dans la colonne « Serveur » Pour certains utilisateurs, tu vois « localhost » et pour d'autres tu vois « % » : ces derniers peuvent accéder depuis n'importe où, incluant l'extérieur, les premiers étant limités à un accès depuis la machine elle-même.

Le problème vient donc de la manière dont est créé l'utilisateur au départ.
Création d'un utilisateur local exclusivement :
GRANT ALL PRIVILEGES ON {$nomschema}.* TO 'loginutilisateur'@'localhost'".
                           " IDENTIFIED BY 'monsupermotdepasse';
Le même depuis n'importe où :
GRANT ALL PRIVILEGES ON {$nomschema}.* TO 'loginutilisateur'@'%'".
                           " IDENTIFIED BY 'monsupermotdepasse';
Vérifie donc ça et reviens nous voir avec ce que tu auras trouvé ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 sept. 2010, 22:50

super j'essaye cela lundi!
merci