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

InterBase Discussion :

Se connecter à une interbase distante depuis PHP


Sujet :

InterBase

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

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut Se connecter à une interbase distante depuis PHP
    Bonjour,

    Je voudrais me connecter depuis un serveur (A) à un autre serveur (B) qui héberge une interbase sous Firebird 1.5.

    Sur mon serveur A est installé wamp, la dernière version. J'ai activé l'extension php_interbase.dll et j'ai copié dans le system32 du serveur A:
    - gds32.dll (je suis allé chercher fbclient.dll sur le serveur B et je l'ai renommé)
    - php_interbase.dll (depuis le répertoire wamp\php\ext\ du serveur A)
    - libeay32.dll et ssleay32.dll (depuis le répertoire wamp\php\ du serveur A)

    Voici ensuite ce que je fais dans l'ordre pour me connecter:

    1/
    Depuis mon poste client (C), je me connecter d'abord à mon serveur A à l'aide d'une page PHP. - Jusque là tout fonctionne

    2/ Arrivé sur mon serveur A, je clique sur un lien qui est censé me connecter à l'interbase sur le serveur B. - Bien sûr, ça ne marche plus.

    Voici le code qui me sert à me connecter à l'interbase:



    Code:
    <?php//J'ai modifié ces paramètres que je ne peux pas diffuser sur le net
    $hote = '00.00.00.00:X:\\TOTO\MABASE\MABASE.gdb' ;

    //J'ai modifié ce paramètres que je ne peux pas diffuser sur le net
    $user = '*****' ;
    $pass = '*****' ;

    $connexion = ibase_connect($hote,$user,$pass) or die('Connexion impossible à la base : ' . ibase_errmsg());?>
    A chaque fois que je lance la connexion, ça m'affiche Connexion impossible à la base et les erreurs suivantes:

    Unable to complete network request to host "00.00.00.00".
    Failed to locate host machine. Undefined service gds_db/tcp.
    Les serveurs A et B sont sur un domaine d'entreprise et je les ping sans pb depuis n'importe quel poste de l'entreprise.

    Quelqu'un pourrait-il m'aider?

    Merci d'avance!

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    il faut faire les test d'usage depuis A vers B
    ping de B depuis A
    vérifier que Firebird est bien lancé sur B
    telnet sur le port 3050 de B depuis A
    pour voir si tout le réseau fonctionne et que le port 3050 n'est pas bloqué quelque part
    éventuellement rajouter dans etc\services la ligne
    gds_db 3050/tcp
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par makowski
    il faut faire les test d'usage depuis A vers B
    ping de B depuis A
    vérifier que Firebird est bien lancé sur B
    telnet sur le port 3050 de B depuis A
    pour voir si tout le réseau fonctionne et que le port 3050 n'est pas bloqué quelque part
    éventuellement rajouter dans etc\services la ligne
    gds_db 3050/tcp
    Ok, merci de ta réponse. J'ai fait quelques tests et j'aurais encore quelques questions:

    - Ping B -> A: Ca fonctionne sans pb
    - Firebird sur le poste client: J'ai installé sur B la version client de Firebird, puisque le serveur Firebird est sur A. Ca doit suffir, non? Par contre du coup je sais pas comment vérifier qu'il est bien lancé!
    - telnet sur le port 3050 B->A: c'est bien la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telnet 00.00.00.00:3050
    ? Ca marche pas! Du coup j'ai rajouté gds_db 3050/tcp dans les etc\services des 2 machines. Je suppose que je dois les rebooter maintenant?

    Voilà, si tu peux m'aider encore un peu...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par makowski
    il faut faire les test d'usage depuis A vers B
    ping de B depuis A
    vérifier que Firebird est bien lancé sur B
    telnet sur le port 3050 de B depuis A
    pour voir si tout le réseau fonctionne et que le port 3050 n'est pas bloqué quelque part
    éventuellement rajouter dans etc\services la ligne
    gds_db 3050/tcp
    Bon ben je te remercie, j'ai ajouté gds_db dans services et ça marche maintenant!

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je suis confornté au problème cité dans ce post, j'ai tenté de rajouter la ligne gds_db 3050/tcp dans le fichier service de systeme32/drivers/etc, mais cela ne fonctionne toujours pas.

    Je suis un novice, est ce que j'ai oublié une étape ?

    Ma config est la suivante (j'utilise firebird en localhost) :

    1/ j'ai installé firebird 1.5 en tant que serveur sous window xp
    2/ j'utilise ibexpert comme interface
    3/ j'ai installé wamp dernière version
    4/ j'ai activé les extensions php_interbase.dll ,php_pdo.dll et php_pdo_firebird.dll.
    5/ j'ai bien la bibliothèque GDS32.DLL dans le systeme32
    6/j'ai rajouté la ligne gds_db 3050/tcp dans le fichier service de systeme32/drivers/etc

    rm : étant en localhost, faut il que je copie les 3 bliothèques suivantes dans système32 ?
    - php_interbase.dll
    -libeay32.dll et ssleay32.dll

    J'ai tenté de me connecter en php avec la syntaxe suivante :

    mon code "connexion.php" est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $path='localhost:C:\\data\SUIVITEMPS_24102006.FDB';
    		$user='SYSDBA';
    		$pass='masterkey';
    		$connexion = ibase_connect($path,$user,$pass) or die('Connexion impossible à la base : ' . ibase_errmsg());
    ?>
    le message d'erreur suivant m'est retourné :
    Connexion impossible à la base : Unable to complete network request to host "localhost". Failed to locate host machine. Undefined service gds_db/tcp.

    Par contre j’arrive à me connecter en passant par la ISQL.exe avec la syntaxe suivante :

    connect localhost :c:\data\SUIVITEMPS_24102006.FDB user sysdba password masterkey ;

  6. #6
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    si isql passe, alors c'est un pb PHP, vérifie ta syntaxe et si les modules sont bien chargé (avec phpinfo)
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Voici un extrait de mon phpInfo(), se peut il que le problème vienne de là. En fait, j'ai installé firebird 1.5 alors que le phpInfo() mentionne firebird 1.0.

    interbase
    Firebird/InterBase Support dynamic
    Compile-time Client Library Version Interbase 6
    Run-time Client Library Version Firebird 1.0/Interbase 6

    Sinon la syntaxe te parait bonne ?

    mon objectif à terme est de me connecter à firebird via le PDO, quelqu'un sait si cela marche bien, j'ai testé avec Mysql et Postgresql mais je n'y arrive pas avec firebird ?

  8. #8
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    va voir sur la liste PHP Firebird (firebird-php@yahoogroups.com)
    http://tech.groups.yahoo.com/group/firebird-php/
    PHP n'est vraiment pas mon truc
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci pour l'info, je vais allé voir de ce coté.

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Dernières nouvelles :

    1/ sous Window en localhost, il n'est pas nécessaire de renseigner le nom du serveur dans le path de la base.

    $path="localhost:C:\data\SUIVITEMPS_24102006.FDB";
    devient
    $path="C:\data\SUIVITEMPS_24102006.FDB";
    2/ avec cette syntaxe cela fonctionne sous easyphp 1.8, par contre cela ne marche toujours pas avec WAMP5 1.6.3 (mon client utilise Wamp), j'ai un nouveau message d'erreur :
    "Warning: ibase_connect() [function.ibase-connect]: unavailable database"
    cette fois il n'arrive pas à lire la base!!!!

    du coup, le problème doit venir du php.ini de Wamp, on m'a conseillé de modifier la ligne :
    "magic_quotes_sybase = Off" par "magic_quotes_sybase = On", mais cela ne marche toujours pas

    y aurait il un autre paramètre du php.ini qu'il faudrait modifier ?

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

Discussions similaires

  1. Connection à un ordinateur distant depuis une page web
    Par lenaingurdil dans le forum Mon site
    Réponses: 0
    Dernier message: 28/11/2012, 17h07
  2. [ODBC] connexion à une base access distant depuis PHP sous LINUX
    Par victoires dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 15/05/2012, 15h51
  3. [MySQL] script php de connection à une base distante
    Par edemtakouni dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/07/2010, 19h34
  4. Réponses: 12
    Dernier message: 28/04/2009, 10h20
  5. [ODBC] Se connecter à une interbase distante depuis PHP
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/09/2006, 18h36

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