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

Langage PHP Discussion :

utiliser PHP comme intermediaire entre MySQL est application Windows [Fait]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut utiliser PHP comme intermediaire entre MySQL est application Windows
    Bonjour,

    je previens que j'ai fait un peu de PHP mais pas enormement!!

    j'ai depuis longtemps l'envie de realiser un jeu multijoueur sous la forme d'une application Windows(en C#)

    un problème venan du fait que tout les hebergeur verrouille l'accès au base depuis l'exterieure on ma conseiller d'heberger mon propre serveur.

    j'ai essayer et le resultat n'estp as très....
    de plus je n'est pas envie que ma connexion soit utiliser entierement par l'hebergement de celui-ci (je n'ai que 1.2Mbs)

    donc je me suis demander, est-il possible, avec PHP4/5 de mettre en place des fichiers de code sur le PC de l'hebergeur(donc eu aurons accès a MySQL) puis depuis mon interface Windows utiliser ces fichier PHP pour recevoir les donnèes voulus


    se serais toujours possible me dirais vous, le fichier PHP genere un tableau qui contiendras le resultat de la requete. depuis mon interface windows je lit hebergeur/pagePHP_liste_utilisateurs et ensuite je traite son contenu pour obtenir les infos.....

    c'est faisable mais j'aimerais savoir si il n'y a pas une methode plus "intelligente" et securisè.


    de plus comment puis-je depuis mon interface windows dir a un fichier PHP distant "execute cette requete SQL sur MySQL" pour par exemple les UPDATE et INSERT


    merci pour tout,

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je l'ai fait avec Delphi -> DELPHP
    Note : Je te conseille plutôt la lecture de l'article au format HTML.
    Dans ton cas, je crois que c'est surtout la 3ème partie de l'article (administration MySQL) qui pourrait t'intérresser...

    Pour info, j'ai aussi converti ce projet en DLL pour un membre du forum VB... En théorie, cette DLL devrait donc fonctionner avec tous les langages de programmation windows. Si ça te tente de l'essayer, demande moi.

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 266
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 266
    Points : 8 564
    Points
    8 564
    Billets dans le blog
    17
    Par défaut
    Ce que tu veux faire s'appelle un service. XML est très pratique pour cela.

    Exemple 1 : tu as besoin de connaître la liste des joueurs.
    1. Ton client appelle la page gameserver.net/getPlayers.php
    2. Cette dernière retourne un flux XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
        header('Content-Type: text/xml') ;
        ...
        $rs = mysql_query('SELECT ALL player_id, player_name FROM ...') ;
    ?>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <players>
        <?php while ( $tuple = mysql_fetch_object($rs) ) : ?>
            <player>
                <id><?php echo $tuple->player_id ?></id>
                <name><?php echo htmlentities($tuple->player_name) ?></name>
            </player>
        <?php endwhile ?>
    </players>
    ... que ton client n'aura plus qu'à traiter.

    Exemple 2 : tu as besoin d'infos à propos du joueur n° 123
    1. Ton client appelle la page gameserver.net/getPlayer.php?id=123
    2. Cette dernière retourne un flux XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
        header('Content-Type: text/xml') ;
        ...
        $rs = mysql_query('SELECT ALL player_id, player_name FROM players WHERE player_id = ' . $_GET['id']) ;
        $tuple = mysql_fetch_object($rs) ;
    ?>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <player>
        <id><?php echo $tuple->player_id ?></id>
        <name><?php echo htmlentities($tuple->player_name) ?></name>
    </player>
    Il existe des APIs permettant de gérer cela efficacement :
    SOAP : http://www.php.net/soap
    XML-RPC : http://www.php.net/xml-rpc

  4. #4
    mon_nom_est_personne
    Invité(e)
    Par défaut
    ou alors tu peux envoyer tes variables en POST pour un peu plus de sécurité. XML c'est bien mais tu peux aussi recupérer du JSON ça marche pas mal. C'est a ton choix.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    ok merci

    qu'est ce qui est mieu?

    1) MySQL + fichiers PHP + Application Windows C# utilisant un WebBrowser pour lir les fichiers PHP


    2) MySQL + WebService + Application qui utilise les fonctions du WebService



    si quelqu'un connais a deja mis en place des WebService sur un hebergeur distant pourrais t-il m'expliquer la marche a suivre?

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 266
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 266
    Points : 8 564
    Points
    8 564
    Billets dans le blog
    17
    Par défaut
    si quelqu'un connais a deja mis en place des WebService sur un hebergeur distant pourrais t-il m'expliquer la marche a suivre?
    C'est ce que j'ai fait + les liens vers les APIs qui vont bien !!

    A propos du choix de la solution, ben je ne vois pas pourquoi tu aurais besoin d'un webbrowser dans le 1., faut juste que l'appli puisse contacter un serveur distant.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    oui par WebBrowser j'entend un control ou un fonction me permettant de recuperer se qu'afficherais le fichier PHP distant(a savoir su text repondant aux norme XML)


    ok alors peut m'expliquer comment mettre en ligne un WebService? je trouve beaucoup de tuto pour sa realisation(.NET C#) mais après pour ce qui est de l'hebergeur(specification) et de la mise en service....

    merci pour tout

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    j'ai un petit soucis avec le code PHP

    voici mon code, il doit normalement me fair la liste des utilisateurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
     
    header('Content-type: text/xml');
     
    $link = mysql_connect('localhost', 'theblack', 'zvmd93g');
    if (!$link) { die('Connexion impossible : ' . mysql_error()); }
     
    $db_selected = mysql_select_db('theblack', $link);
    if (!$db_selected) { die ('Impossible de sélectionner la base de données : ' . mysql_error()); }
     
    $query = "SELECT * FROM `utilisateurs`";
    $result = mysql_query($query);
     
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
     
    while ($row= mysql_fetch_object($result)) : 
    ?>
    	<player>
    		<id><?php echo $row->id_utilisateur ?></id>
    		<loggin><?php echo htmlentities($row->loggin) ?></loggin>
    		<name><?php echo htmlentities($row->password) ?></name>
    	</player>
    <?php endwhile ?>
    lorsque je l'execute j'obtient
    Erreur d'analyse XML : données incompréhensibles après l'élément de document
    Emplacement : http://ns6.freeheberg.com/~theblack/...tilisateur.php
    Numéro de ligne 6, Colonne 2 : <player>
    --------^
    mon compte est sur http://freeheberg.com/

    merci pour votre aide

  9. #9
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Il te faut un noeud racine.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    tu veut dit un niveau superieure dans la hierarchie XML??

    j'entourd donc tout les noeud "player" par un noeud principal "utilisateur"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
     
    header('Content-type: text/xml');
     
    $link = mysql_connect('localhost', 'theblack', 'zvmd93g');
    if (!$link) { die('Connexion impossible : ' . mysql_error()); }
     
    $db_selected = mysql_select_db('theblack', $link);
    if (!$db_selected) { die ('Impossible de sélectionner la base de données : ' . mysql_error()); }
     
    $query = "SELECT * FROM `utilisateurs`";
    $result = mysql_query($query);
     
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
    echo '<utilisateurs>';
     
    while ($row= mysql_fetch_object($result)) : 
    ?>
     
    	<player>
    		<id><?php echo $row->id_utilisateur ?></id>
    		<loggin><?php echo htmlentities($row->loggin) ?></loggin>
    		<name><?php echo htmlentities($row->password) ?></name>
    	</player>
    <?php
    endwhile;
    echo '</utilisateurs>';
    ?>

    marche pas

    Erreur d'analyse XML : données incompréhensibles après l'élément de document
    Emplacement : http://ns6.freeheberg.com/~theblack/...tilisateur.php
    Numéro de ligne 13, Colonne 16 :</utilisateurs><script type='text/javascript'><!--//<![CDATA[
    ---------------^

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Oulala!
    Heureusement, c'est plus simple avec DELPHP !!

    Allé, bon courage pour la suite.
    Je te souhaite vraiment d'y arriver, à+

  12. #12
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Tu es presque bon, le problème est que ta page continue après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo '</utilisateurs>';
    ?>
    car on y voit du javascript notamment.


  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    ......

    snif c'est pas a moi ce java....

    surment un rajout automatique de mon hebergeur....

    comment je peut fair?

    car après ce fichier PHP(contenant du XML) devras etre lu par une application qui génère des donnèes structurès a partir du XML

    j'en ai besoin de ce schema XML.....

  14. #14
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Bah, tu peux toujours mettre un exit() après ton dernier echo

    [edit] Mais le mieux serait quand même de trouver pourquoi des trucs s'affichent après et corriger la source du problème.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    j'ai essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    endwhile;
    echo '</utilisateurs>';
    exit();
    ?>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    endwhile;
    echo '</utilisateurs>';
    exit()
    ?>
    mais rien n'y change....le java est toujours coller a la fin de ma page


    EDIT: je sais pas du tout de ou sa peut venir mis a part de mon hebergeur(pub ou autre) car quand ma page fonctionne j'ai le droit a une pub pour canal+ qui sort de la gauche

  16. #16
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    Alors je crains ne pas avoir de solution (a part changer dhébergeur...). Ce truc de pub est ajouté automatiquement par ton hébergeur d'un façon inconnue (auto-append-file ne survit pas à exit() normalement...).
    Je ne peux plus t'aider, désolé (ceci dit, c'est le seul truc qui ne va pas si ça peut te rassurer...).

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    ok merci

  18. #18
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par savageman86 Voir le message
    [edit] Mais le mieux serait quand même de trouver pourquoi des trucs s'affichent après et corriger la source du problème.
    C'est une bar de pub, non ?
    Sur un hébergeur gratuit je paris...

    Car moi aussi , il fallu que j'ajoute une fonction à DELPHP pour contourner ce genre de problème... La solution est d'intégrer des délimiteurs pour supprimer les données étrangères.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    oui c'est une animation qui apparrais quelque seconde sur la gauche de l'ecran


    j'ai etudier legerement le PHP(les bases pour pouvoir comprendre)

    peut tu m'aiguiller sur ta methode? un nom ou autre

    ou l'expliquer.... a toi de voir suivant sa complexitè

  20. #20
    mon_nom_est_personne
    Invité(e)
    Par défaut
    essaie de sortir tes donnees en JSON. Tu imprime un objet JSON et dans ton appli window tu resors le tout avec une expression reguliere.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php header( "Content-Type: application/json; Charset=ISO-8859-1"); ?>
    [
    <?php
        ...
        $rs = mysql_query('SELECT ALL player_id, player_name FROM players WHERE player_id = ' . $_GET['id']) ;
        $tuple = mysql_fetch_object($rs) ;
    ?>
     
    [player : [
        [id : <?php echo $tuple->player_id ?>],
        [nom : <?php echo htmlentities($tuple->player_name) ?>]
    ]
    <?php
    endwhile;
    ?>
    ]
    apres en fonction du langage tu recup ce qui a ete produit et parse par un expression reguliere de type \[[[\[[a-zA-z0-9]+\:[a-zA-z0-9]+]\],*]+\]]+\]
    (elle a pas ete tester donc pas se plaindre si elle marche pas)

Discussions similaires

  1. Utiliser node comme proxy vers d'autres applications
    Par Black Templar dans le forum NodeJS
    Réponses: 2
    Dernier message: 07/03/2013, 20h09
  2. comment utiliser php comme calculatrice?
    Par Georges974 dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2011, 16h59
  3. Réponses: 0
    Dernier message: 07/05/2011, 23h30
  4. Utiliser PHP comme moteur de template
    Par Amnesiak dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2007, 15h22

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