IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de connexion SQL depuis 1 script distant chez Free [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Problème de connexion SQL depuis 1 script distant chez Free
    Bonjour tout le monde,
    Voila je vous expose mon pb : j'ai crée deux comptes ftp chez free et ai activé leurs bases de données respectives. Sur le compte ftp n°2 j'ai un script php qui fait une requete sql sur la base de donnée du compte n°1, sachant que les deux compte sont chez free, ca devrait fonctionner, mais il n'en est rien!
    En fait le script ne fonctionne que lorsqu'il se trouve sur le compte ftp associé a la base de donnée, lorsque je le met sur l'autre compte j'obtiens cette erreur :
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr....
    voila la partie du code concernée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //ici les parametres pour la connexion
       $host="sql.free.fr";    $base="nom_de_la base";    $passe="password";
     
    //on effectue la connexion
     @mysql_connect("$host","$base","$passe");
    // ----- extraction de données de la base
     
      $data =mysql_db_query("nom_de_la_base","select serie from image");
      $nbr_result = mysql_num_rows($data);
    Le but est d'obtenir la valeur de la variable $nbr_result correspondant au nombre total de "tuples" dans la table "image"
    C'est au niveau de la derniere ligne que se produit l'erreur, Quelqu'un au rait -il une solution a mon probleme, est-il impossible de se connecter a une base de donnée free depuis un compte free different de celui associé a cette base?
    J'ai deja fait pas mal de recherches mais je n'ai rien toruvé...
    Je vous remercie d'avance pour votre aide...
    Amicalement,
    Metalfire77.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    alors déjà les "$var" ça sert à rien, $var est amplement suffisant

    ensuite, ajoute des "or die(mysql_error());" pour vérifier que tout marche bien et retire les @, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //ici les parametres pour la connexion
       $host="sql.free.fr";    $base="nom_de_la base";    $passe="password";
     
    //on effectue la connexion
     mysql_connect($host,$base,$passe) or die('pas de connexion');
    // ----- extraction de données de la base
     
      $data =mysql_db_query($base,"select serie from image") or die(mysql_error());
      $nbr_result = mysql_num_rows($data);
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Essaie ça:
    <?php
    $host
    ="ton_host_de_ta_base";
    $user="ton_nom_utilisateur";
    $pass="ton_mot_de_passe";
    $base="ta_base_de_donnée";

    mysql_connect($host,$user,$pass) or die('Erreur: Impossible de se connecter au serveur Mysql sur '.$base);
    mysql_select_db($base) or die('Erreur: Impossible se se connecter à la base de donnée');

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Free, comme la majorité des hébergeurs, a très certainement demandé à MySQL à n'accepter que des connexions du réseau local. Si tel est effectivement le cas, tu ne pourras pas te connecter à distance comme tu le souhaites.

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par Yogui
    Free, comme la majorité des hébergeurs, a très certainement demandé à MySQL à n'accepter que des connexions du réseau local. Si tel est effectivement le cas, tu ne pourras pas te connecter à distance comme tu le souhaites.
    Arf !! +1

    c'est vrai, FREE interdit l'accès à leur BDD depuis l'extérieur...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Oui je peux concevoir qu'ils interdisent l'acces depuis l'exterieur, mais dans le cas présent je ne suis pas vraiment a l'exterieur, les deuc compte sont herbergé chez free, les scripts et la base de données se trouvent donc tous les deux sur le serveur free, n'y aurait-il pas une astuce ki permetrait de contourner cette restriction d'acces?
    Je ne peux vraiment pas mettre le script sur le compte de la base de données car il a pour fonction d'ecrire des images "jpeg" sur le 2eme compte afin de na pas utiliser toute la place du compte principal(je lui reserve un autre usage), les images sont des wallapaer ajoutés par les internautes, et comme il me reste peu de place sur le compte principal je suis obligé de les mettre sur un autre compte, et la fonction imagejpeg() ne peut ecrire des images qu'en local (dans le ftp ou se trouve le script).

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai essayer les 2 codes proposés mais ca ne fonctionne pas, j'obtiens l'erreur suivante : Erreur: Impossible de se connecter au serveur Mysql sur animecentral comme je m'y attendais.

    Ca m'embete vraiment la je suis bloqué, Bon ben si qq un a une solution alternative a me propser je reste a l'ecoute.

    Merci encore pour votre aide.

    Metalfire77

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Le problème c'est que Free a certainement plusieurs serveur Web et plusieurs serveurs de Base de Données, et pour éviter que des sites puissent attaquer des sites hébergé à côté, ils ont du restreindre les accès au maximum

    dsl
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah, là ça devient un problème de réseau

    Il faut que tu donnes soit le nom netbios de la machine soit l'IP locale sur le réseau. Chez OVH, je ne peux pas accéder à mes BDD en mettant l'IP Internet, par contre je le peux en mettant le nom de la machine hôte.
    Pourquoi ? Simplement que, en mettant le nom de domaine comme tu le fais, c'est compris comme une requête venant d'Internet. Si tu mettais le nom de machine, ce errait compris comme une demande depuis le réseau local et cela aurait davantage de chances de fonctionner.

    Exemple bidon
    Admettons que Free ait 3 serveurs de BDD : sql1, sql2 et sql3. Mettons que ces noms soit attribués aux machines et qu'il y ait aussi des domaines sql1.free.fr, sql2.free.fr et sql3.free.fr.
    Il y aurait deux manières d'accéder à ces serveurs :
    ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $host = 'sql1.free.fr';
    La première méthode résulterait en un accès local (demande netbios à la machine nommée "sql1" = idéalement, ça correspond à une IP de classe C ou du genre 10.x.x.x), tandis que l'autre ferait une requête sur le sous domaine "sql1" du domaine "free.fr" (donc généralement une IP de classe A ou B, pour faire simple).

  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    le problème est qu'il doit y avoir un système de filtrage interne, et que le serveur indiqué est toujours sql.free.fr, donc en apparence il n'y en a aucun...

    tu penses qu'il faudrait spécifier sql ?

    parce que quand on veut accéder au serveur sql pour le compte sur lequel on est (comme on devrait le faire normalement quoi...) il faut utiliser sql.free.fr ...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je viens de faire le test : j'essaie de me connecter deux de mes BDDs à partir du même compte --> l'un fonctionne (user FTP === user SQL), l'autre nom (users différents).
    Il semble qu'il n'y ait en effet qu'un seul hôte pour tous les comptes (du moins en apparence, comme tu le dis si bien) : sql.free.fr ou 127.0.0.1 ou encore localhost. Free ne semble pas (seulement) brider au niveau du serveur mais du nom d'utilisateur : ils comparent le nom de l'utilisateur du compte (celui du FTP, le sous domaine de free.fr) avec le nom d'utilisateur demandé pour la connexion. La connexion n'est pas autorisée si les 2 noms diffèrent.
    Cela signifie qu'il est impossible d'accéder à sa BDD Free depuis l'extérieur de son propre compte.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ok, ben je vous remercie qd meme de tous vos effort, au moins maintenant on est fixés lol.
    en fait mon site est entierement en flash (dynamique) et fait appel a des scripts php, donc je vais essayer de proceder en deux etapes en faisant 2 scripts, celui ui fait les requetes sera sur le compte de la bdd et celui ki ecrit les image ssera sur l'autre compte, donc flash fera d'abord une requete sur le compte numero1 et quand il aura recu le resultat il fera appel au script sur le compte numero2 en lui envoyant le variables reçues de la premiere requete, esperons que ça fonctionnera...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de connexion à SQL SERVER 2005 via un script
    Par ben_harper dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/06/2009, 19h09
  2. Connexion à SQL Server sur poste distant
    Par devine.ki.c dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/09/2005, 15h55
  3. [MySQL] Problème de requêtes SQL dans un script
    Par Nefret dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 08/09/2005, 15h08
  4. [VB.NET] Problème de connexion à SQL Server
    Par Nesmontou dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/07/2005, 10h12
  5. [MFC] Problème Socket + Connexion SQL
    Par BananaUltra3C dans le forum MFC
    Réponses: 6
    Dernier message: 20/05/2005, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo