Wow78 Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
[TUTO] Script PHP pour votre serveur

 
Répondre au sujet    Wow78 Index du Forum » Comment créer son serveur avec tous les outils » Autres tutoriels Sujet précédent
Sujet suivant
[TUTO] Script PHP pour votre serveur
Auteur Message
mit
Caporal
Caporal

Hors ligne

Inscrit le: 07 Oct 2009
Messages: 49
Masculin
Reputation: 92
Moyenne de points: 1,88

Message [TUTO] Script PHP pour votre serveur Répondre en citant
Voici quelques scripts qui pourraient vous être utile pour la conception de votre site web.


1. Le status serveur.


Code:
      
<?
     $serveur_ip = 'ip.de.votre.serveur'; // Ici l'ip de votre serveur WoW
     $serveur_port = 'port.serveur'; // Ici le port de votre serveur WoW (Généralement 8085 pour le serveur, 3724 pour le realmd)
     $status =   @fsockopen ($serveur_ip, $serveur_port, $errno, $errstr, 1);
     if($status) {
          echo 'Serveur en ligne';
     } else {
          echo 'Serveur Hors ligne';
     }
?>


Ce script testera si une possibilité de connexion vers le port précisé est possible. Cela marche donc pour n'importe quoi.



2. Nombre de joueur en ligne.


Pour faire propre, nous allons utiliser les fonctions.

Editer dans un premier temps, quelques fichiers en php que vous utiliserez en include dans votre index.php pouur la plus part des scripts qui suivent.

config.php
Code:

<?php

// Configuration du site
//
// Hôte pour le serveur sql qui contient les tables.
$mysql_host = '127.0.0.1';

// Login pour la connection vers le serveur SQL
$mysql_user = 'mangos';

// Mot de passe de la connection
$mysql_password = 'mon_mot_de_passe';

// Nom de la base mangos
$mysql_base_mangos = 'mangos';

// Nom de la base realmd
$mysql_base_realmd = 'realmd';

// Nom de la base characters
$mysql_base_characters = 'characters';

// Ip de votre serveur
$serveur_ip = '127.0.0.1';

// Port de votre serveur (Par défaut: 8085)
$serveur_port = '8085';

?>



fonction.php
Code:

function connexionbdd() { // Ceci est une fonction qui permet la connexion vers notre base de données SQL.
        include('config.php'); // On inclut le fichier de config... parce que sans, bah on se connecte pas =)
        mysql_connect($mysql_host, $mysql_user, $mysql_password); // Connexion à la base de données.
}

function status_get_playeronline($base) { // ceci est notre fonction pour connaitre le nom de joueur en ligne.
        connexionbdd(); // on se connecte à la base.
        mysql_select_db($base); // On séléctionne la base de données.
        $reponse = mysql_query('SELECT COUNT(*) AS nbr_joueuro FROM `characters` WHERE `online` =1'); // Requête pour obtenir le nombre de joueur en ligne.
        $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
        $nbr_connecter = $donnees['nbr_joueuro']; // Nombre de joueurs en ligne.
        mysql_close(); // on ferme la connexion.
        return $nbr_connecter; // on retourne le resultat
}



Ensuite, éditer la page qui doit afficher cette info.
A l'endroit où vous voulez que cela apparaisse :

Code:

<?
 $online_player = status_get_playeronline($mysql_base_characters);
 echo 'joueurs en ligne ' . $online_player;
?>









3. Connaitre le nombre de personnage de chaque classe.


C'est possible ! Tout est possible en Php/mysql !

Revenons sur notre fonction.php :

Code:

function status_get_population($base) {
        connexionbdd(); // on se connecte à la base.
   mysql_select_db($base); // On séléctionne la base de données.
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_humain FROM `characters` WHERE `race` =1'); // Requête pour obtenir le nombre d'humain
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_humain = $donnees['nbr_humain']; // On a notre nombre d'humain dans la variable $nbr_humain
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_orc FROM `characters` WHERE `race` =2'); // Requête pour obtenir le nombre d'orc
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_orc = $donnees['nbr_orc']; // On a notre nombre d'orc dans la variable $nbr_orc
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_nain FROM `characters` WHERE `race` =3'); // Requête pour obtenir le nombre de nain
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_nain = $donnees['nbr_nain']; // On a notre nombre de nain dans la variable $nbr_nain
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_elfdelanuit FROM `characters` WHERE `race` =4'); // Requête pour obtenir le nombre d'elf de la nuit
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_elfdelanuit = $donnees['nbr_elfdelanuit']; // On a notre nombre d'elf de la nuit dans la variable $nbr_elfdelanuit
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_mortvivant FROM `characters` WHERE `race` =5'); // Requête pour obtenir le nombre de mort vivant
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_mortvivant = $donnees['nbr_mortvivant']; // On a notre nombre de mort vivant dans la variable $nbr_mortvivant
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_tauren FROM `characters` WHERE `race` =6'); // Requête pour obtenir le nombre de tauren
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_tauren = $donnees['nbr_tauren']; // On a notre nombre de tauren dans la variable $nbr_tauren
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_gnome FROM `characters` WHERE `race` =7'); // Requête pour obtenir le nombre de gnome
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_gnome = $donnees['nbr_gnome']; // On a notre nombre de gnome dans la variable $nbr_gnome
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_troll FROM `characters` WHERE `race` =8'); // Requête pour obtenir le nombre de troll
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_troll = $donnees['nbr_troll']; // On a notre nombre de troll dans la variable $nbr_troll
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_elfdesang FROM `characters` WHERE `race` =10'); // Requête pour obtenir le nombre d'elf de sang
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_elfdesang = $donnees['nbr_elfdesang']; // On a notre nombre d'elf de sang dans la variable $nbr_elfdesang
   $reponse = mysql_query('SELECT COUNT(*) AS nbr_draenei FROM `characters` WHERE `race` =11'); // Requête pour obtenir le nombre de Draenei
   $donnees = mysql_fetch_array($reponse); // On arrange de façon a ce que on puisse comprendre le contenu !
   $nbr_draenei = $donnees['nbr_draenei']; // On a notre nombre de draenei dans la variable $nbr_draenei
   $nbr_horde = $nbr_orc + $nbr_mortvivant + $nbr_tauren + $nbr_troll + $nbr_elfdesang; // Nombre total de personnage Hordeux
   $nbr_alliance = $nbr_humain + $nbr_nain + $nbr_elfdelanuit + $nbr_gnome + $nbr_draenei; // Nombre total de personnage Allianceux
   return array( $nbr_humain, $nbr_orc, $nbr_nain, $nbr_elfdelanuit, $nbr_mortvivant, $nbr_tauren, $nbr_gnome, $nbr_troll, $nbr_elfdesang, $nbr_draenei ,$nbr_horde, $nbr_alliance ); // on retourne le resultat
}


Dans votre page qui doit afficher l'info :

Code:

<?
        $info_player = status_get_population($mysql_base_characters);
        echo 'Nombre d'humain : ' . $info_player[0];
?>


Vous l'aurez compris

Pour afficher les autres variables, il suffit de modifier le petit chiffre de $info_player.

Par exemple :

Code:

$info_player[0] = Humain
$info_player[1] = Orc
$info_player[2] = Nain
$info_player[3] = Elf de la nuit
$info_player[4] = Mort Vivant
$info_player[5] = Tauren
$info_player[6] = Gnome
$info_player[7] = Troll
$info_player[8] = Elf de sang
$info_player[9] = Draenei
$info_player[10] = Nombre total de personnage dans la horde
$info_player[11] = Nombre total de personnage dans l'alliance


4. Création de compte.


Créer donc une page pour l'inscription, par exemple register.php

Code:

        connexionbdd(); // on se connecte à la base.
   $create = $_POST['create'];
   $account = mysql_real_escape_string(htmlspecialchars($_POST['login']));
   $password = mysql_real_escape_string(htmlspecialchars($_POST['password']));
   $password_check = mysql_real_escape_string(htmlspecialchars($_POST['password_check']));
   $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
   $mail_check = mysql_real_escape_string(htmlspecialchars($_POST['mail_check']));
   $compte_ok = '0';
   if(isset($create)){
      if ($account != '') {
         if (strlen($account) > 5 AND strlen($account) < 33) {
            if ($password != '') {
               if (strlen($password) > 5 AND strlen($password) < 41) {
                  if ($password_check != '') {
                     if ($password == $password_check) {
                        if ($mail != '') {
                           if(preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $mail)) {
                              if ($mail_check != '') {
                                 if ($mail == $mail_check) {
                                    mysql_select_db($mysql_base_realmd);
                                    $verif_username = mysql_query("SELECT * FROM account WHERE username = '".$account."'");
                                    if (mysql_num_rows($verif_username) <= 0){ // on vérifie si le compte n'existe pas.
                                       mysql_select_db($mysql_base_realmd);
                                       $verif_mail = mysql_query("SELECT * FROM account WHERE email = '".$mail."'");
                                       if (mysql_num_rows($verif_mail) <= 0){ // on vérifie si l'adresse email n'est pas utilisée.
                                          $ip = $_SERVER['REMOTE_ADRESS'];
                                          mysql_select_db($mysql_base_realmd);
                                          $compte_ok = '1';
                                          mysql_query("INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`last_ip`,`locked`,`expansion`) VALUES ('".$account."',SHA1(CONCAT(UPPER('".$account."'),':',UPPER('".$password."'))),'".$mail."','".$ip."','0','1')");
                                       } else { echo '
<font color="red">Email déjà utilisé. Veuillez entrer une autre adresse.</font>
'; }
                                    } else { echo '
<font color="red">Nom de compte déjà existant. Veuillez en choisir un autre.</font>
'; }
                                 } else { echo '
<font color="red">Les adresses mail ne correspondent pas.</font>
'; }
                              } else { echo '
<font color="red">Le champ Confirmation de Mail est vide.</font>
'; }
                           } else { echo '
<font color="red">L\'adresse email doit être au format user@mail.tld</font>
'; }
                        } else { echo '
<font color="red">Le champ Mail est vide.</font>
'; }
                     } else { echo '
<font color="red">Les mots de passes ne correspondent pas.</font>
'; }
                  } else { echo '
<font color="red">Vous devez confirmer votre mot de passe</font>
'; }
               } else { echo '
<font color="red">Le mot de passe doit faire entre 6 et 40 charactères</font>
'; }
            } else { echo '
<font color="red">Vous devez préciser un mot de passe.</font>
'; }
         } else { echo '
<font color="red">Le nom de compte doit faire entre 6 et 32 charactères</font>
'; }
      } else { echo '
<font color="red">Vous devez préciser un nom de compte.</font>
'; }               
   }
   if ($compte_ok == '1') {
      echo '
Votre compte a bien été créer.
Bon jeu parmis nous !
';
   } else {
   ?>
      <form action="" method="post">
         
Entrer les informations relative a votre compte.


         Pseudo : <input type="text" name="login" size="32" /> <em>(compris entre 6 et 32 caractères)</em>

         Mot de passe : <input type="password" name="password" size="40" /> <em>(compris entre 6 et 40 caractères)</em>

         Mot de passe (vérification) : <input type="password" name="password_check" size="40" />

         Mail : <input type="text" name="mail" size="30" />

         Mail (vérification) : <input type="text" name="mail_check" size="30" />

         

<input type="submit" name="create" value="Suivant" />

      </form>
   <?
        }
        mysql_close();
        ?>


Pourquoi tu met mysql_real_escape_string ?
Pour vous protégeé des injections SQL ! Cette commande enlève toutes possibilités d'y insérer une commande SQL !

Et htmlspecialchars alors ?
Pareil ! Mais pour le HTML !


Noter que dans ce script, j'utilise toujours le common.php !

J'espère que cela vous a beaucoup plus !
Si avez besoin d'autres choses, n'hésitez pas !
Tout est possible en PhP ! (enfin presque
)


Mer 30 Déc - 14:36 (2009)
Publicité






Message Publicité
PublicitéSupprimer les publicités ?

Mer 30 Déc - 14:36 (2009)
Montrer les messages depuis:    
Répondre au sujet    Wow78 Index du Forum » Comment créer son serveur avec tous les outils » Autres tutoriels Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers: 

Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation