Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2008, 10h27   #1
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
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,
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 14h00   #2
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
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.
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 14h14   #3
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
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 :
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 :
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
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 14h56   #4
Membre éprouvé
 
Avatar de mon_nom_est_personne
 
Inscription : mai 2008
Messages : 450
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 450
Points : 451
Points : 451
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.
mon_nom_est_personne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 17h35   #5
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
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?
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 18h07   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 835
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 835
Points : 3 468
Points : 3 468
Citation:
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.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 18h26   #7
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
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
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h09   #8
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
j'ai un petit soucis avec le code PHP

voici mon code, il doit normalement me fair la liste des utilisateurs
Code :
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
Citation:
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
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h18   #9
Membre actif
 
Avatar de savageman86
 
Inscription : octobre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 102
Points : 180
Points : 180
Il te faut un noeud racine.
savageman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h22   #10
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
tu veut dit un niveau superieure dans la hierarchie XML??

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

Code :
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

Citation:
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[
---------------^
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h25   #11
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Oulala!
Heureusement, c'est plus simple avec DELPHP !!

Allé, bon courage pour la suite.
Je te souhaite vraiment d'y arriver, à+
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h32   #12
Membre actif
 
Avatar de savageman86
 
Inscription : octobre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 102
Points : 180
Points : 180
Tu es presque bon, le problème est que ta page continue après
Code :
1
2
3
<?php
echo '</utilisateurs>';
?>
car on y voit du javascript notamment.

savageman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h35   #13
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
......

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.....
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h36   #14
Membre actif
 
Avatar de savageman86
 
Inscription : octobre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 102
Points : 180
Points : 180
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.
savageman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h39   #15
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
j'ai essayer

Code :
1
2
3
4
5
<?php
endwhile;
echo '</utilisateurs>';
exit();
?>
et

Code :
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
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h44   #16
Membre actif
 
Avatar de savageman86
 
Inscription : octobre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 102
Points : 180
Points : 180
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...).
savageman86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 23h46   #17
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
ok merci
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 00h19   #18
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
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.
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 02h22   #19
Membre confirmé
 
Inscription : décembre 2004
Messages : 539
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 539
Points : 214
Points : 214
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è
TheBlackReverand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 06h26   #20
Membre éprouvé
 
Avatar de mon_nom_est_personne
 
Inscription : mai 2008
Messages : 450
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 450
Points : 451
Points : 451
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 :
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)
mon_nom_est_personne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h28.


 
 
 
 
Partenaires

Hébergement Web