Page 1 sur 1

script qui ne marche pas

Posté : 26 mars 2014, 15:45
par michel71
Bonjour,

Quelqu'un à une idée pourquoi ce script ne marche pas, ça me renvoie toujours en local
l'IP est bien celle du serveur

Code : Tout sélectionner

if($_SERVER['REMOTE_ADDR']==trim('94.247.etc)) { //connection au serveur distant $cnx=mysql_connect("localhost","tim","xxxx") or die("Impossible de se connecter : " . mysql_error()); $db=mysql_select_db('base') } else { //connexion en local }

Re: script qui ne marche pas

Posté : 26 mars 2014, 17:05
par moogli
salut,

as tu vérifié ce que retourne $_SERVER['REMOTE_ADDR'] ?

le trim est inutile si tu indique la valeur ;)

pourquoi te baser sur l'ip du visiteur et pas simplement sur le nom du l'host du serveur ? ($_SERVER['SERVER_NAME'])
c'est une info plus fiable (même si faut modifier quand tu change de machine s'il ne s'appel pas localhost ;) ) que l'adresse ip ;)


@+

Re: script qui ne marche pas

Posté : 26 mars 2014, 20:39
par michel71
avec $_SERVER['SERVER_NAME'] ça ne marche pas non plu ??
if($_SERVER['SERVER_NAME']=='timbres.com' )
{
	//connection au serveur distant
$cnx=mysql_connect("localhost","timb","xxx") or die("Impossible de se connecter : " . mysql_error());
$db=mysql_select_db('base');
}
else
{
  //connection au serveur local
}

Re: script qui ne marche pas

Posté : 26 mars 2014, 21:18
par sirakawa
Une idée simple de débogage:
remplacer
if($_SERVER['SERVER_NAME']=='timbres.com' )
par
$serveur = $_SERVER['SERVER_NAME'];
print "<br > $serveur <br ./>";
if ($serveur === "timbres.com")

En règle générale, il faut faire afficher les variables quand le comportement n'est pas celui qu'on attend. Elles n'ont pas toujours la valeur qu'on croyait.

Re: script qui ne marche pas

Posté : 27 mars 2014, 11:31
par michel71
bonjour et merci de vous préoccuper de mon problème

j'ai modifié comme suggéré et ça ne marche toujours pas
La réponse de l'echo est bien : france-timbre.fr
$cnx="";$db="";
$serveur=$_SERVER['SERVER_NAME'];
echo $serveur;
if($serveur=='france-timbre.fr')
{
	//connection au serveur distant
$cnx=mysql_connect("localhost","timb","xxxx") or die("Impossible de se connecter : " . mysql_error());
$db=mysql_select_db('base');
	//l'adresse de connexion
$_SESSION['adresse_site']="http://www.france-timbre.fr/";
}
else
{  
  //connection au serveur local
}

Re: script qui ne marche pas

Posté : 27 mars 2014, 12:10
par petitux
Si j'ai bien compris ton script, tu cherches à interroger une BDD locale ou distante en fonction de l origine de la requete.
Ton probleme vient, selon moi de ta méthode de connexion à la BDD.
//connection au serveur distant
    $cnx=mysql_connect("localhost","tim","xxxx") or die("Impossible de se connecter : " . mysql_error());
Même si ta condition est vérifiée, tu ne pourras te connecter à une base de données distante avec "localhost" ;)
Si ta requete pour te connecter à ta BDD locale est la même c'est à dire :
//connection au serveur local
    $cnx=mysql_connect("localhost","xx","xxxx") or die("Impossible de se connecter : " . mysql_error());
Et bien tu te connecteras à la même BDD. Il te faut donc remplacer localhost par l'ip du serveur BDD distant et vérifier si ton serveur de bdd distant accepte les connexions ..... distantes ( dsl pas trouvé d autre mot :p ).

Si j'ai mal compris ton script/demande, ignore ma réponse, elle doit être erronée.

Re: script qui ne marche pas

Posté : 27 mars 2014, 12:48
par michel71
Re-bonjour,

J'ai résolu mon problème voici la solution

en fait sur certaines pages $_SERVER['SERVER_NAME'] répond 'france-timbre.fr'
et sur d'autres pages $_SERVER['SERVER_NAME'] répond 'www.france-timbre.fr'

Je ne comprend pas pourquoi mais je le constate

Voila, merci à tous