Envoyer Variable VB sur Site Php

figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011 - 13 sept. 2010 à 17:57
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 16 sept. 2010 à 19:40
Bonjour à tous,

je m'en remet une nouvelle fois à vous.

Est-ce qu'un sait comment envoyer des variables VB sur un site php sans utiliser la barre d'adresse pour les indiquer.

C'est à dire que je développe un mmorpg en visual basic et sur mon site internet je souhaiterais mettre en ligne le nombre de joueur connecté sur mon jeu. Par conséquent, transférer la variable nb_joueur vers mon site php.
Bien sûre le nombre de joueur sur le site ne s'actualisera uniquement lorsque la page sera rafraichie.

A noter, que je n'utilise pas de système de base de donnée. Donc le nombre de joueur connecté s'accumule avec un + 1 à la variable en question.

Merci beaucoup de votre aide.

Figo566

24 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
13 sept. 2010 à 19:39
En cherchant un peu, on trouve ça.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
13 sept. 2010 à 21:27
Désolé mais je n'ai pas compris.

Auriez-vous d'autres exemples ?? car j'arrive pas à trouver ni sur vbfrance ni sur internet

Figo566
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
13 sept. 2010 à 23:06
Apparemment pas accessible tel-quel, mais via le cache Google ça marche. J'ai posté le codesur Pastebin, ça devrait faire ce que tu veux.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
13 sept. 2010 à 23:21
Peux tu me faire un exemple de code de ce que je souhaite car la liste des fonctions que tu présentes ne m'aident pas beaucoup dans le sens où je ne sais pas ce qu'elle retourne exactement.

Je te remercie beaucoup

Figo566
0

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

Posez votre question
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
14 sept. 2010 à 12:39
Bonjour,

personnellement, ce que je ferais :
Ecrire simplement ce nombre dans un fichier txt puis transférer ce dernier par FTP sur le serveur (à la fréquence souhaitée ou dès que la variable change).
Ensuite, côté php, il suffit de lire ce fichier txt pour connaitre la valeur de la variable.

voilà, bonne journée.

Tidjool
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 17:04
J'adore ton idée, mais comment faire en sorte que le fichier soit envoyé par ftp automatiquement dès qu'il est mis à jour ??

Ce que je peux faire c'est créer un fichier batch qui indique l'envoie du fichier par ftp mais comment faire pour indiquer l'intervalle ?

Figo566
0
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
14 sept. 2010 à 17:35
Re,

En fait, dans ton appli où est la fameuse variable, comment se met-elle à jour?
Elle scrute le nombre de connectés?

Pour le batch, sinon un truc genre :
maj.bat qui contiendrait :
ftp -i -v -s:"leScriptFtp.txt"

et dans leScriptFtp.txt :
open tonserveur
tonuser
tonpassword
put lavariable.txt ---> fichier qui contient juste la valeur de la variable
disconnect
quit
********************
Et pourquoi pas une tâche planifiée sous windows toutes les minutes?

Sinon, dans ton programme, il faut intercepter le changement de la variable (genre boucle while) et dès qu'elle change, exécute le batch depuis ton appli ;-)

voili voilou, il y a "plus qu'à" comme on dit ;-)
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 17:50
je vais tester ta manipulation et je te tiendrais informé


Figo566
0
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
14 sept. 2010 à 17:53
ok, bonne fin de journée et bon courage
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 17:58
Je viens de voir et le gestionnaire de tâche ne prend pas en compte toutes les minutes.

N'y aurait-il pas un autre moyen de lancer le batch (je préfèrerais toutes les secondes)

Figo566
0
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
14 sept. 2010 à 18:19
alors il faut lancer ton batch depuis ton appli (thread qui lance le batch toutes les secondes par exemple). Mais cela serait dommage d'envoyer le fichier toutes les secondes si la variable n'a pas changé...

Donc, il faut tester et passer par une condition :

If variable(n)<>variable(n+1)
then lancer batch
end if

tout ça dans la function appelée par le thread (je connais pas trop en vb6 la notion de threading...)

@+
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 sept. 2010 à 18:45
FTP, méthode inefficace (quid dans le cas d'un accès simultané) et dangereuse (infos de login avec droits en écriture stockées dans l'exécutable).

MsgBox PostInfo("www.tonsite.com (sans http://)", "/tapage.php", "champ1=xxx&champ2=yyy")


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 19:46
Que me conseilles-tu alors ?

Figo566
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 sept. 2010 à 19:54
Poster quelque chose sur un script PHP qui modifiera un compteur dans une table ... Seul problème (idem via FTP) : si le programme est stoppé "à la sauvage", le compteur ne sera pas modifié. Le code que je t'ai donné va avec la fonction que j'ai postée sur Pastebin

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 20:02
Mais ton code j'arrive pas à l'utiliser sans des exemples concret.

Ma varible est de type integer qui fait soit +1 ou bien -1.

Pourrais tu me donner un exemple d'utilisation relatif à mon problème ?
Figo566
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 sept. 2010 à 22:10
C'est du côté PHP que tu dois mettre à jour la table ... Le programme VB ne fait que passer l'action à effectuer (ajoute ou retire) :
<?php
//Fonctionne avec une table "Compteurs" avec comme champ "Connexions" de type int.
if (isset($_POST['Action']))
{
    switch ($_POST['Action'])
    {
        case 'ajoute': $cmd = '+1';
        case 'retire': $cmd = '-1';
        default: die('Invalid parameter !');
    }
    if (!mysql_connect('serveur','login','pass') || !mysql_select_db('db'))
        die('Can\'t connect to db');
    mysql_query("UPDATE Compteurs SET Connexions=Connexions$cmd;");
    mysql_close();
}
?>

L'appel de la fonction VB :
PostInfo "www.tonsite.com", "/tapage.php", "Action=ajoute"
PostInfo "www.tonsite.com", "/tapage.php", "Action=retire"

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
14 sept. 2010 à 22:26
Je suis tout à fait d'accord avec ce qui est dit juste au dessus. En revanche, si tu n'as pas de BdD...cela me semble vraiment difficile. La solution Ftp que je t'ai proposée, je l'admet, n'est pas top niveau sécurité à cause de l'envoi en clair des login et password. En revanche, cela répond à ta problématique.
Sinon, sur ton site, il doit bien y avoir un bouton "jouer"?
Si en php tu incrémentes le nbre de joueurs quand on clique sur ce bouton, ça pourrait pas le faire?
Je cherche encore à une autre solution tordue là ;-)
Et quand ils quittent la partie ou la page : tu décrémentes ;-)
L'idéal serait une Base de Données avec une table users et un champ online.
bon courage, en espérant ne pas te mettre sur une mauvaise piste...
0
figo566 Messages postés 59 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 1 mai 2011
14 sept. 2010 à 23:10
Non désolé il n'y a pas de bouton jouer.

La variable nombre de joueur est une simple variable qui est incrémenter classiquement.

Pour le moment la solution adéquate est de l'écrire dans un fichier texte.

A moins qu'une autre solution apparaisse ?!
Figo566
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
15 sept. 2010 à 19:12
Sympa de tester mon code, quand même

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
tidjool Messages postés 102 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 16 août 2012
15 sept. 2010 à 21:00
Salut ghuysmans99,

En fait, je crois qu'il n'a pas de Base de Données. C'est pour ça qu'il ne peut tester ton code ;-)

De plus, la question d'origine c'est comment envoyer une variable VB vers son site en php.
Du coup, je suis vraiment d'accord avec toi sur les inconvénients FTP mais perso, je ne vois pas d'autres solutions.
et même avec une BdD, si le serveur n'accepte pas les connexion à la base autre que localhost, ça parait vraiment dur sur ce coup là.

J'ai hâte de voir la suite, si il existe LA solution ;-)

Bonne soirée!!
0
Rejoignez-nous