Forum pour réunir les administrateurs de serveur L2
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  

Partagez | 
 

 [Résolu] Quel est l'état du serveur ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: [Résolu] Quel est l'état du serveur ?   Sam 19 Fév 2011, 15:56

Bonjour,

J'ai un petit problème au niveau DB / interaction avec le forum phpBB que je possède, je m'explique :

Depuis peu, mon équipe et moi-même avons lancer un nouveau forum pour notre serveur Lineage II. Comme chacun le sait lors de notre inscription à RPG Paradize, le site met à notre disposition un outil permettant aux joueurs de voir l'état du serveur. Jusque là tout allait bien avec l'ancien forum.
Seul souci à présent, c'est que les logos ne collent plus du tout avec l'esprit et le design du nouveau forum. Ils font vraiment taches...

J'en arrive donc à ma question. Connaissez un moyen de "montrer" l'état du serveur ("Online" ou "Offline"), mais avec des images modulables ou même un simple texte ?

En vous remerciant de vos réponses,

Cordialement.

PS : Rappel des logos fournis par RPG Paradize : ONLINE ; OFFLINE.


Dernière édition par Nef le Mer 23 Fév 2011, 01:33, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skatershi



Nombre de messages : 1305
Age : 28
Date d'inscription : 09/11/2006

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Sam 19 Fév 2011, 17:24

Utilise la fonction "fsockopen" dans un script php.

Exemple :
Code:

   $stLogin = @fsockopen ("IP_DU_SERVEUR", "PORT_DU_LOGIN", $errno, $errstr, 1);
   $result = ($stLogin ? "Online" : "Offline");
   
   echo $result;
A la place de "Online"/"Offline" tu peux mettre ce que tu veux comme du code HTML avec tes propres boutons, etc.
Si tu es perdu, la documentation PHP sur le net est là pour ça.

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Sam 19 Fév 2011, 17:43

Merci de ta réponse.

Il semblerait que mon hébergeur ait désactivé la fonction "fsockopen". Je vais regarder ça de plus près mais cette solution ne semble pas pouvoir fonctionner.

Une autre idée ? Rolling Eyes

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Sam 19 Fév 2011, 20:02

C'est bon, je me suis arrangé avec mon hébergeur.
Tous les sites sont fouillis et n'expliquent pas clairement les choses sur ça.
As-tu connaissance d'un site sur lequel sont écrites des vraies explications à ce sujet ?

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skatershi



Nombre de messages : 1305
Age : 28
Date d'inscription : 09/11/2006

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Dim 20 Fév 2011, 03:18

Sur la méthode ?

Et bien c'est relativement simple: ça ouvre une connexion par socket sur la cible et retourne "True" si cela a été possible.
Si ça n'a pas marché, l'identifiant de l'erreur se situe dans la variable $errno et son 'stacktrace' se trouve dans la variable $errstr.
Code:

// target = L'adresse de l'host. Cela peut être une adresse web (www), une IP (x.x.x.x), une connexion SSL (ssl://), une connexion TLS (tls://)...
// port = Le port. Dans le cas de Lineage II, ce sera 2106 pour le Login et 7777 pour le GameServer.
// errno = La variable qui contiendra l'identifiant de l'erreur si celle-ci est générée.
// errstr = La variable qui contiendra la raison de l'erreur si celle-ci est générée.
// timeout = La durée maximale de l'ouverture de la connexion socket permis. En règle générale, 1-20 suffit.
fsockopen(string target, int port, int errno, string errstr, float timeout)

Donc, je te remets un exemple concret:

Code:

 // Test du login
 // On stock le retour de l'ouverture de la connexion socket dans la variable 'stLogin'
 // Le "@" est ajouté devant la fonction pour éviter de nous retourner des rapports d'erreurs.
 // L'objectif étant d'afficher "Online" ou "Offline" uniquement.
 $stLogin = @fsockopen("0.0.0.0", "2106", $errno, $errstr, 1);
 
 // Si la fonction retourne "True", la connexion à pu être établie
 // et on affiche le résultat immédiatement
 if ($stLogin)
  echo "Login: Online";
 // La connexion à échouée.
 else
  echo "Login: Offline";

Si tu as de nouveau du mal à comprendre, je ne peux pas grand chose, renseigne toi sur le PHP, ce n'est pas ce qui manque sur la toile.

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Dim 20 Fév 2011, 15:35

Merci, je comprends mieux à présent. Je vais tester ça.

Mais j'aimerais un simple avis. Est-ce qu'une méthode dans ce genre pourrait fonctionner ? J'explique.

Coté DB : on crée un fichier nommé serveur.php (par exemple)
Ensuite on affiche avec un echo soit on soit off
Code:
    <?php

    mysql_connect ("serveur_mysql", "identifiant", "mot_de_passe") or die (mysql_error ());
    mysql_select_db ("nom_de_la_base") or die (mysql_error ());

 
    $sql = "SELECT nom_du_champ FROM nom_de_la_table";
    $req = mysql_query($sql);
    $data = mysql_fetch_array($req);

    echo $data['nom_du_champ'];

    mysql_close();

    ?>

Et après, côté forum on va chercher le fichier serveur.php et on stocke le contenu du fichier dans une variable avec un code qui ressemblerait à ça :


Code:
    <?php

    $file = fopen ("chemin_de_la_DB/serveur.php", "r");

    if (!$file)
    {
        echo "Erreur: Impossible de lire le fichier.";
    }
    else
    {
        $serveur = fgets ($file, 1024);
        if ($serveur == 'off')
        {
            echo "Le serveur est éteint !";
        }
        elseif ($serveur == 'on')
        {
            echo "Le serveur est allumé !";
        }
        else
        {
            echo "Erreur: Impossible de récupérer l'information.";
        }
    }

    fclose($file);

    ?>

Qu'est-ce que ça pourrait donner à votre avis ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skatershi



Nombre de messages : 1305
Age : 28
Date d'inscription : 09/11/2006

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Dim 20 Fév 2011, 16:06

Pour l'exemple MySQL : good.
Pour le deuxième: pas good.

On ouvre jamais un fichier PHP comme on le ferait avec un fichier standard (texte), de toute façon, ça ne fonctionnera pas.

Le forum est-il sur la même machine que la base de données ?

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Dim 20 Fév 2011, 16:22

Ah d'accord, j'aurais essayé Rolling Eyes
Non, le forum et la BDD sont sur deux machines différentes.

Cordialement,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skatershi



Nombre de messages : 1305
Age : 28
Date d'inscription : 09/11/2006

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Dim 20 Fév 2011, 16:55

J'imagine que l'accès à la base de données est fait pour afficher le nombre de joueurs connectés ? (entre autres)

Pour avoir accès à ta base de données MySQL depuis un serveur distant, il te faut respecter le schéma suivant:

Code:

- Dans phpMyAdmin (ou directement dans un terminal Linux), tu dois créer un nouvel utilisateur qui portera le nom de "NefWeb" (exemple).
- "NefWeb" doit avoir uniquement accès à la/les table(s) où tu fais tes requêtes et avoir exclusivement le privilège "SELECT" (en cas de hack de ce compte, tu ne risques donc pas grand-chose).
- "NefWeb" doit avoir comme serveur "%" (passe partout) et non pas "localhost" comme d'habitude. Le "%" permet de se connecter de n'importe où avec cet utilisateur (c'est ce qui nous intéresse ici).
- Il se peut que ta configuration de MySQL refuse le "%" pour cause d'insécurité, à toi de te documenter pour savoir comment débrider cette fonctionnalité.

Ensuite, c'est très simple, tu peux te faire un petit script en local qui se connecte à ta base de données pour vérifier que tout fonctionne correctement.

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nef



Nombre de messages : 49
Date d'inscription : 25/07/2010

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Mar 22 Fév 2011, 21:22

Bonsoir,

Effectivement, ça fonctionne Smile
Merci pour ces explications Skatershi.

Cordialement,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Skatershi



Nombre de messages : 1305
Age : 28
Date d'inscription : 09/11/2006

MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Mer 23 Fév 2011, 01:30

De rien, mais n'oublie pas le tag [Résolu] devant le titre de ton sujet, merci.

Cordialement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [Résolu] Quel est l'état du serveur ?   Aujourd'hui à 17:33

Revenir en haut Aller en bas
 
[Résolu] Quel est l'état du serveur ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] quel choix ?
» [résolu] Quel Programme pour le Format .jsf?
» [résolu] Quel programme pour vacciner mes clés USB ?
» [Résolu] Le moteur physique...
» [Résolu] Mot de passe smtp

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
L2J-FR :: Général :: Aides et Conseils-
Sauter vers: