Connection à distance

fredoann Messages postés 33 Date d'inscription vendredi 22 août 2008 Statut Membre Dernière intervention 17 septembre 2010 - 15 sept. 2010 à 20:46
fredoann Messages postés 33 Date d'inscription vendredi 22 août 2008 Statut Membre Dernière intervention 17 septembre 2010 - 17 sept. 2010 à 08:35
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');
?>

7 réponses

WiinK Messages postés 23 Date d'inscription mercredi 15 septembre 2010 Statut Membre Dernière intervention 23 septembre 2010
15 sept. 2010 à 22:58
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.


De quels menus déroulants parles tu ?


Quand tu parles d'un pc distant, c'est sur ton reseau local ? Ou tu l'as déployé sur un serveur distant ?
Si tu l'as déployé sur les serveurs de 1&1 par exemple (cf ton autre post), cette page va surement t'aider :

http://faq.1and1.fr/scripts/mysql/6.html
et http://faq.1and1.fr/scripts/mysql/5.html
0
fredoann Messages postés 33 Date d'inscription vendredi 22 août 2008 Statut Membre Dernière intervention 17 septembre 2010
15 sept. 2010 à 23:06
Je pense que c'est un serveur distant, je suis dans une administration ou les pc sont reliés en réseau et ou l'on peut partager des fichiers .Excuses ma réponse mais je débute sur la mise en ligne de site en intranet.Je commence seulement à maitriser comment en faire un en html et en php sur mon pc avec dreamweaver.
merci wiinnk je vais regarder tes liens
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
16 sept. 2010 à 16:35
Bonjour,

Ta variable $host doit avoir l'adresse du serveur et non pas localhost.

Si tu veut utiliser localhost, il faut que tu lie l'adresse de ton serveur à ce nom dans tes services dns ( la par contre je sais pas comment faire ) ... sachant que si tu as plusieurs serveur, et que tous s'appellent localhost, tu va vite être "embété"...
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
16 sept. 2010 à 18:37
Salut,

On évitera de confondre la machine serveur et le logiciel serveur (appelés services). La machine étant sur un (ou plusieurs) réseaux, elle a une (ou plusieurs) adresses IP. Il existe une adresse IP spéciale 127.0.0.1 qui, pour une machine, la désigne elle même.
Sur ta machine, tu as installé plusieurs services, au minimum un serveur web (httpd) et un serveur de bases de données (ici, mysqld). Attention, phpmyadmin n'a strictement rien à voir avec mysql, phpmyadmin est une application qui lui est totalement externe (en gros c'est juste un site web qui permet d'administrer mysql).
Dans le cas présent, vu que ton site web est sur la même machine que mysql, il doit se connecter à cette même machine, donc en utilisant l'adresse IP 127.0.0.1 comme dit plus haut. Dans le cas où mysql aurait été sur une machine différente du réseau, il t'aurais fallu indiquer l'adresse IP de la machine concernée.

Pour éviter de jongler avec les adresses IP toute la vie, on s'est mis à associer un nom de domaine à une adresse IP, c'est quand même plus pratique. Bref, quand tu inscrit "phpcs.com" dans ton navigateur internet, par derrière ta machine vas rechercher l'IP qui correspond à ce nom de domaine. Pour rechercher cette IP, la machine regarde toujours en priorité son fichier hosts pour voir si à un nom on a associé une IP. C'est dans ce fichier hosts que l'on a défini localhost comme étant 127.0.0.1, c'est pour ça que localhost pointe sur la machine elle meme. Attention ! Modifier la valeur de localhost peut entraîner des conséquences dramatiques pour le fonctionnement de la machine car beaucoup de programmes l'utilisent ! Ne faites jamais pointer localhost sur autre chose que 127.0.0.1. Si l'adresse IP associée au nom de domaine ne se trouve pas dans le fichier hosts, la machine peut faire une demande à un serveur DNS (on ne reviendra pas sur la manière d'indiquer à la machine quel serveur DNS interroger, il y a beaucoup de choses à dire à ce sujet).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fredoann Messages postés 33 Date d'inscription vendredi 22 août 2008 Statut Membre Dernière intervention 17 septembre 2010
16 sept. 2010 à 23:11
merci pour vos réponses et explications,qui me permettent de comprendre un peu mieux.
Je reprécise ce que j'ai fait: j'ai développé mon site sur mon pc (appelons le 1) avec dreamweawer, j'ai créé une base de données en utilisant easyphp sur mon pc également.Quand je teste mon site sur mon pc,tout fonctionne,l'acces aux bases etc...
Ensuite, dans mon administration ,nos pc sont reliés en reseau, donc j'ai utilisé un pc toujours en fonctionnement dans un bureau , j'ai installé le repertoire contenant mon site sur www du repertoire easyphp dans program files , puisque easyphp est installé sur ce pc (2) .J'ai installé mon repertoire contenant mes bd dans le répertoire data, comme cela est fait sur mon propre pc.
Depuis un pc (3) quelconque de mon administration, j'arrive à lancer mon site.Mais dans mes pages contenant des menus déroulant rien, pas d'acces à la bd, pas de message d'erreur...
Faut-il donc simplement que je remplace 'localhost' par '127.0.0.1'dans
connect('localhost','root','','perfenac'); ?
Merci encore pour vos commentaires et suggestions
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
16 sept. 2010 à 23:56
J'ai installé mon repertoire contenant mes bd dans le répertoire data, comme cela est fait sur mon propre pc.

J'ai du mal à réaliser la manière dont tu as transféré ta base de donnée. Copier directement les fichiers avec lesquels mysql travaille me semble risqué.

Bref, vérifie donc d'abord que les donnés ont bien été transférées (par exemple en utilisant phpmyadmin pour explorer ta base et tes tables). Si elle ne l'ont pas été, un moyen de le faire est d'exporter ta base de donnée au format SQL (depuis ta machine 1, phpmyadmin dispose d'une option pour ceci) ; puis d'importer le fichier généré (import fait depuis ta machine 2, phpmyadmin dispose également d'une option pour ça).

Faut-il donc simplement que je remplace 'localhost' par '127.0.0.1'dans
connect('localhost','root','','perfenac'); ?

Non, laisse localhost vu que le service est installé en local. Au passage, pourquoi avoir mis 'perfenac' en 4ème paramètre ? Si c'est ton mot de passe c'est en 3ème paramètre qu'il faut le mettre, le 4ème (qui est optionnel) doit être un booléen qui indique si l'on doit avoir une connexion persistante ou non.
0
fredoann Messages postés 33 Date d'inscription vendredi 22 août 2008 Statut Membre Dernière intervention 17 septembre 2010
17 sept. 2010 à 08:35
bonjour ,merci pour ta réponse,les données ont bien été transféré puisque le site et la base fonctionne sur pc (2) dont je parle dans mon précédent message.
perfenac est le nom de la base de donnée,je pensais que cela devait être indiqué dans connect()
0
Rejoignez-nous