[PHP] - Affichez des infos serveur
Bonjours,

je vais vous proposer aujourd'hui un partage en PHP, qui vous permettra d'afficher l'uptime, le nombre de joueurs connectés et d'autres informations bonus.

Tout d’abord, vous devez créer un fichier de configuration que j'ai nommé configuration.php :

<?php

class MySQL {
                
                var $host = "VOTRE HOST";
                var $Port = "PORT"; //de base 8085
                private $user = "username"; //un nom d'utilisateur de rand 5
                private $password = "password"; //son mots de passe
                private $world = "world";  //par default
                private $auth = "auth";   //par default
                private $characters = "characters";  //par default
                
                public function __construct (){

                        

                }
                
                public function ConnectWorld () {
                                
                        try {
                                $db = new PDO('mysql:host='.$this->host.';dbname='.$this->world.'', $this->user, $this->password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                                $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        
                                return $db;
                        }
                        catch (Exception $e) {
                                
                                return die('Erreur : ' . $e->getMessage());
                                
                        }
                                
                }
                
                public function ConnectAuth () {
                                
                        try {
                                $db = new PDO('mysql:host='.$this->host.';dbname='.$this->auth.'', $this->user, $this->password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                                $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        
                                return $db;
                        }
                        catch (Exception $e) {
                                
                                return die('Erreur : ' . $e->getMessage());
                                
                        }
                                
                }
                
                public function ConnectCharacters () {
                        
                        try {
                                $db = new PDO('mysql:host='.$this->host.';dbname='.$this->characters.'', $this->user, $this->password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                                $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        
                                return $db;
                        }
                        catch (Exception $e) {
                                
                                return die('Erreur : ' . $e->getMessage());
                                
                        }
                        
                                
                }
                
}

?> 

Très bien, notre fichier de configuration est prêt ! Nous allons dès à présent créer un fichier nommé stats.php qui vas récupérer les informations du serveur et les traiter !

<?php
include ('config/configuration.php'); //ce chemin est propre à chacun libre à vous de modifié le chemin du fichier et ou le nom

class Stats extends MySQL {
            
            public function __construct() {
                            

                            
            }
            
            public function Etat () {
                            
                            if (!$this->sock = @fsockopen($this->host, $this->Port, $num, $error, 1)) {  
                                                                                            
                                            return '<img src="themes/img/offline.png"/ class="off">'; //libre à vous de mètrent vôtre propre chemin
                                            
                            }
                            else{
                                            
                                            return '<img src="themes/img/online.png"/ class="on">'; //libre à vous de mètrent vôtre propre chemin
                                            fclose($this->sock);
                                            
                            }
                            
            }
            
            public function MemberOnline () {
                            
                            if (!$this->sock = @fsockopen($this->host, $this->Port, $num, $error, 1)) {  
                                                                                            
                                            return '0';
                                            
                            }
                            else{
                                            
                                    $db = MySQL :: ConnectCharacters();
                                            
                                    $reponse = $db->query("SELECT COUNT(*) FROM `characters` WHERE `online` = '1'");
                                    return $reponse->fetchColumn();
                                            
                                    fclose($this->sock);
                                           
                            }
                            
                            
            }
            
            public function Inscrit () {
                            
                            $db = MySQL :: ConnectAuth();
                            $reponse = $db->query("SELECT COUNT(*) FROM `account`");
                            return $reponse->fetchColumn();
                            
            }
            
            public function RecordCo () {
                            
                            $db = MySQL :: ConnectAuth();
                            $reponse = $db->query('SELECT max(`maxplayers`) FROM uptime');  
                            return $reponse->fetchColumn();
                            
            }
            
            public function Uptime () {
                            
                            $db = MySQL :: ConnectAuth();
                            $reponse = $db->prepare("SELECT * FROM `uptime` WHERE `realmid` = '1' ORDER BY `starttime` DESC LIMIT 1") or die(mysql_error());
                            $reponse->execute();
                            $row_uptime = $reponse->fetch();
                            $this->day = floor($row_uptime['uptime'] / 86400);
        if($this->day > 0)
            $this->days = $this->day;
        else
            $this->days = '';
        $this->hours = floor(($row_uptime['uptime'] - ($this->day * 86400)) / 3600);
        if($this->hours < 10)
            $this->hours = '0'.$this->hours;
        $this->min = floor(($row_uptime['uptime'] - (($this->hours * 3600) + ($this->day * 86400))) / 60);
        if ($this->min < 10)
            $this->min = "0".$this->min;
        $this->sec = $row_uptime['uptime'] - ($this->day * 86400) - ($this->hours * 3600) - ($this->min * 60);
        if ($this->sec < 10)
            $this->sec = "0".$this->sec;
                            return '' . $this->days . ' j, ' . $this->hours . ' h, ' . $this->min . ' m, ' . $this->sec . ' s.';
                            
            }
            
            public function Realmlist () {
                            
                            $db = MySQL :: ConnectAuth();
                            $reponse = $db->prepare('SELECT address FROM realmlist WHERE id = "1"');  
                            $reponse->execute();
                            $this->RealmlistF = $reponse->fetch();
                            return $this->RealmlistF['address'];
                            
            }
            
            public function Guilde () {
                            
                            $db = MySQL :: ConnectCharacters();
                            $reponse = $db->query("SELECT COUNT(*) FROM `guild`");
                            return $reponse->fetchColumn();
                            
            }
            
            public function Arene () {
                            
                            $db = MySQL :: ConnectCharacters();
                            $reponse = $db->query("SELECT COUNT(*) FROM `arena_team`");
                            return $reponse->fetchColumn();
                            
            }
            
}

$Stat = new Stats;
?> 

Voilà, tout y est ! En fait, pas tout à fait, il ne reste plus qu'à afficher le résultat ! Nous allons créer un fichier statu.php. Je tiens à préciser que le fichier statut.php est créé de façon à être intégré dans une page, vous pouvez néanmoins le modifier et l’intégrer directement dans vos pages php sans avoir à utiliser d'include.

<?php
include ('stats.php');
echo $Stat->Etat().'<br />';
echo ('<p class="statutext">Nombre de connecté : '.$Stat->MemberOnline().'<br />');
echo ('Nombre d\'inscrit : '.$Stat->Inscrit().'<br />');
echo ('Record de connecté : '.$Stat->RecordCo().'<br />');
echo ('Uptime : '.$Stat->Uptime().'<br />');
echo ('Set realmlist '.$Stat->Realmlist().'<br />');
echo ('Nombre de guilde : '.$Stat->Guilde().'<br />');
echo ('Nombre d\'arene : '.$Stat->Arene().'<br /></p>');
?>

Enfin je vous fourni les images ON/OFF avec mais vous pouvez créer les vôtres.
   
   

PS : ces images sont simples et faite sur photoshop si elle ne vous plaisent pas bin RAF ! Tongue
Merci beaucoup pour le partage ! Smile ça va servir à plus d'un Wink

Cordialement,
Salut,

Si tu pouvais corriger tes fautes dans un premier temps..
Le script est de toi? sinon tu pourrais citer les sources.
Dans tous les cas, sa peut être bien pour dépanner mais vu la structure du code, je vois mal comment intégrer sa proprement. Pour ma part je trouve qu'il est mal "pensé".

Mais merci du partage, sa peut servir de base pour certaines personnes.
merci .... je l'est fait enfin j'ai récupéré un vieux bout de code (forum clos je l'avais sur mon HDD ext et je l'est MàJ ya pas long) et à l'aide de plusieurs tutoriel j'ai essayé de le mettre à jour et l'optimisé.... enfin personnellement il fonctionne bien et j'en suis assez comptant même si je me doute que je devrait faire quelques retouche encore dessus.

PS : pour les fautes je suis preneur d'un MP merci de me les citées Smile
Oui ton script fonctionne, pas de soucis la dessus.

Cependant il est très mal construit. Si on souhaite le réaliser en objet, il faut le faire correctement (et pas mettre de l'objet pour "mettre de l'objet"). Tu peux le faire en procédural très proprement.

De même, PDO est super mais il faut savoir l'utiliser correctement...

Ok pour les fautes, je vais t'envoyer sa. Même si je suis pas un pro je vais tenter de les corriger (en tout cas les plus fâcheuses ^^)
d'acc je vais continuer de l’amélioré et je mettrais à jour quand ce sera terminé (après moi et la PDO c'est encore récent faut nous pardonnez Tongue).
POO : programmation orienté objet
PDO : PHP data objects

Ne va pas confondre les deux en plus ! xD
d'acc je vais retravaillé et quand je l'aurai amélioré je post Smile
"J'en suis assez comptant" Va falloir travailler a l'école Wolfood Tongue Merci pour le partage


Sent from Tapatalk
content -_- OMG je suis fatigué pardonné moi
Et là c'est le drame... Pardonnez* Troll
gros troll je te déteste ! Tongue
Gro troll Smile


Sent from Tapatalk
Taquiner ?
:Ok je sors:

Retourner en haut WoW-Emu