Aide fonction Post et varriable!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aide fonction Post et varriable!

Re: Aide fonction Post et varriable!

par xTG » 25 mars 2012, 20:21

Tu as tous les éléments pour te dépatouiller avec mon dernier message.
Voir le code ne fait que confirmer ce que je t'expliquais. ;)

Re: Aide fonction Post et varriable!

par leo45vl » 25 mars 2012, 20:02

Merci mais vais reformuler ma question car je suit limité dans le code:
La page a modifier( je croix )

Code : Tout sélectionner

class Minequery { /** * Queries a Minequery server. * * @static * @param string $address The address to the Minequery server. * @param int $port The port of the Minequery server. * @param int $timeout The time given before the connection attempt gives up. * @return array|bool An array on success, FALSE on failure. */ public static function query($address, $port = 25566, $timeout = 30) { $query = array(); $beginning_time = microtime(true); $socket = @fsockopen($address, $port, $errno, $errstr, $timeout); if (!$socket) { // Could not establish a connection to the server. return false; } $end_time = microtime(true); fwrite($socket, "QUERY\n"); $response = ""; while(!feof($socket)) { $response .= fgets($socket, 1024); } $response = explode("\n", $response); // Server port $query['serverPort'] = explode(" ", $response[0], 2); $query['serverPort'] = $query['serverPort'][1]; //Server Version $query['SVER'] = explode(" ", $response[1], 2); $query['SVER'] = $query['SVER'][1]; //Client Version $query['CVER'] = explode(" ", $response[2], 2); $query['CVER'] = $query['CVER'][1]; // Player count $query['playerCount'] = explode(" ", $response[3], 2); $query['playerCount'] = $query['playerCount'][1]; // Max players $query['maxPlayers'] = explode(" ", $response[4], 2); $query['maxPlayers'] = $query['maxPlayers'][1]; // Player list $query['PLAYERWORLDLIST'] = explode(" ", $response[6], 2); $query['PLAYERWORLDLIST'] = explode(", ", trim($query['PLAYERWORLDLIST'][1], "[]")); // Player list $query['playerList'] = explode(" ", $response[5], 2); $query['playerList'] = explode(", ", trim($query['playerList'][1], "[]")); // Plugin list $query['PLUGINNAMELIST'] = explode(" ", $response[7], 2); $query['PLUGINNAMELIST'] = explode(", ", trim($query['PLUGINNAMELIST'][1], "[]")); // Plugin version list $query['PLUGINVERSIONLIST'] = explode(" ", $response[8], 2); $query['PLUGINVERSIONLIST'] = explode(", ", trim($query['PLUGINVERSIONLIST'][1], "[]")); $query['latency'] = ($end_time - $beginning_time) * 1000; return $query; } /** * Queries a Minequery server using JSON. * * @static * @param string $address The address to the Minequery server. * @param int $port The port of the Minequery server. * @param int $timeout The time given before the connection attempt gives up. * @return object|bool A stdClass object on success, FALSE on failure. */ public static function query_json($address, $port = 25566, $timeout = 30) { $beginning_time = microtime(true); $socket = @fsockopen($address, $port, $errno, $errstr, $timeout); if (!$socket) { // Could not establish a connection to the server. return false; } $end_time = microtime(true); fwrite($socket, "QUERY_JSON\n"); $response = ""; while(!feof($socket)) { $response .= fgets($socket, 1024); } $query = json_decode($response); $query->latency = ($end_time - $beginning_time) * 1000; return $query; } }
Au début on voit

public static function query($address, $port = 25566, $timeout = 30) {
La seul affaire que je veux modifier est $port = 25566 je voudrais mettre 2 port a véfirier.
Est-ce possible?

Merci beaucoup,
Leo

Re: Aide fonction Post et varriable!

par xTG » 25 mars 2012, 17:50

Il faut modifier la fonction (son code) pour faire ces tests, changer son prototype ne ferra rien.
Si la fonction renvoie un booléen ou un message d'erreur tu peux aussi gérer cela à son appel.

Du genre :
$retour = monObjet::query($address, $port1);
if( $retour === false )
  $retour = monObjet::query($address, $port2);
Bref à toi de voir ce qui te convient le mieux, mais surtout en fonction de comment a été codée la fonction.

Re: Aide fonction Post et varriable!

par leo45vl » 25 mars 2012, 16:53

Bonjour je cherche un moyen de faire ceci:
J'ai une fonction

Code : Tout sélectionner

public static function query($address, $port = 25566 , $timeout = 30) {
Comme on voit le port est 25566 je voudrais faire une fonction * si 25566 marche pas je prend 25565*
Mais j'ai aucune idéé comment j'ai tester avec une autre virgule mais sa marche pas!


Merci beaucoup!,
Leo

Re: Aide fonction Post et varriable!

par leo45vl » 24 mars 2012, 16:35

Merci beaucoup!
Maintenant j'essai une variable port!

Encore merci!

Re: Aide fonction Post et varriable!

par xTG » 24 mars 2012, 10:40

$ip = isset ($_POST['ip']) ? $_POST['ip']: "46.18.94.79"; // la seconde est une adresse par défaut
require ('minequery.class.php');
$data = Minequery::query_json ($ip);

Re: Aide fonction Post et varriable!

par sirakawa » 24 mars 2012, 08:58

<?php
   $ip = isset ($_POST['ip']) ? $_POST['ip']: une_adresse_choisie_par_toi;
   require ('minequery.class.php');
   $data = Minequery::query_json ("46.18.94.79");
et c'est valable pour toutes les variables passées par post....
Il existe aussi extract;
....

Aide fonction Post et varriable!

par leo45vl » 24 mars 2012, 05:28

Bonjour,
Je souhaite créé un site qui permet de faire un ping sur un serveur minecraft mais j'ai un petit probleme:
Sur ma page d'accueil j'ai mit

Code : Tout sélectionner

<FORM Method="POST" Action="2.php"> Ip : <INPUT type=text size=20 name=ip><BR> <INPUT type=submit value=Envoyer> <INPUT type=hidden name=afficher value=ok> </FORM> Et sur ma page de traitement( 2.php ) [code]<?php require ('minequery.class.php'); $data = Minequery::query_json ("46.18.94.79"); ?> <!DOCTYPE html> <html> <head> <title>Nowcraft</title> <meta charset="utf-2"> </head> <?php if ($data) { ?> <p></font><font color=#006633>ONLINE </font><BR></b> <p>Joueur connecter: <?php echo $data->playerCount, '/', $data->maxPlayers; ?></p> <ul> <?php foreach ( $data->playerList as $player ) { echo '<li>', $player, '</li>'; } ?> </ul> <?php } else echo '<p>OFFLINE: <span class="offline">Aller sur le forum pour plus d information</span></p>'; ?>








[/code]
A noter que cela est vraiment pas fini ;)
Mais la ligne que je veux modifier est:
$data = Minequery::query_json ("46.18.94.79");
J'ai tester avec
$data = Minequery::query_json ("$ip");
Mais cela ne marche pas!
Comment on doit mettre cette "fonction"??

Merci,
Leo