Besoin d'aide hlstats Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
MrGarfield
Messages : 8
Inscription : 09 déc. 2019, 19:10
Status : Hors-ligne

bonjour à tous

voilà je suis pas un grand connaisseur de Debian mais je me débrouille depuis quelques années avec les tutos et des aides. j'ai demander un petit coup de main sur une installation pour hlstatsx:CE qui fonctionne mais il me manque le GeoLiteCity.

j'ai taper déjà a plusieurs porte mais rien a faire je comprend pas

avant de faire des bêtises je voudrais votre avis car je suis pas un fou d'anglais :sorry:
1. - A phpMyAdmin - select database -> Operations -> Collation -> utf8mb4_unicode_ci -> Change all tables collations and Change all tables columns collations -> Go.
donc la il faut dans le phpmyadmin, onglet "base de données" mettre un nom de base et dans le menu déroulant chercher "utf8mb4_unicode_ci" et créer. je pense que c'est ca ?

et pour la 2eme chose alors la j'ai jamais fait si vous pouviez m'expliquer les étapes ca serait super
1. - B PHP script - change DB credentials in setConfig() function and run it


et je doit mettre ce code

Code : Tout sélectionner

 <?php

class Convert {

    private $config;
    private $dbConn;
    private $localWordsList;

    public function __construct()
    {
        $this->setConfig();
        
        if (!$this->getConnection()) {
            print "Failed to connect to DB!";
            exit();
        }

        $this->doConvert();

    }

    private function setConfig()
    {
        // Change it ...
        $this->config['dbUser'] = 'my_stats';
        $this->config['dbPass'] = 'P@ssword';
        $this->config['dbHost'] = 'localhost';
        $this->config['dbName'] = 'my_stats';
    }

    private function getConnection()
    {

        $dbConn = new mysqli($this->config['dbHost'], $this->config['dbUser'], $this->config['dbPass'], $this->config['dbName']);

        if ($dbConn->connect_errno) {
            return false;
        }

        $this->dbConn = $dbConn;
        return true;
    }

    private function doQuery($query) {

        $result = $this->dbConn->query($query);
        return $result ?: false;
    }

    private function getDBTables()
    {

        $query = "SHOW TABLES";
        $result = $this->doQuery($query);
        if ($result) {

            $finalResult = array();

            while($tables = mysqli_fetch_array($result)) {
                
                $finalResult[] = $tables[0];
            }

            return $finalResult;
        }
        return false;
    }

    private function getDBColumns($dbTable)
    {

        $query = "SHOW COLUMNS FROM $dbTable";
        $result = $this->doQuery($query);
        if ($result) {

            $finalResult = array();

            while($columns = mysqli_fetch_array($result)) {
                
                $finalResult[] = $columns[0];
            }

            return $finalResult;
        }
        return false;
    }
    
    public function doConvert()
    {
        $tables = $this->getDBTables();

        foreach ($tables as $key => $value) {

            $query = "ALTER TABLE $value CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;";

            if ($this->doQuery($query)) {
                echo "[OK] Table " . $value . " converted<br>";

                $columns = $this->getDBColumns($value);

                echo '------------------------------<br>';
                
                foreach ($columns as $columnKey => $column) {
                    echo '| '.$column.' |<br>';
                }
                
                echo '------------------------------<br>';

            } else {
                echo "[ERR] ".$value." error<br>";
            }
        }
    }
}

new Convert(); 
il y a quelques années javais réussies à en crée un http://149.91.88.127/hlstats/hlstats.php?game=cstrikequi fonctionne bien mais je voudrais changer de fournisseurs donc retours à zéro et après quelques recherches il faut tout passer en utf8 mb4_unicode_ci voilà merci de votre aide a l'avance
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Bonjour, pour le 1er point, tu sélectionnes la base de donnée qui a du étre créé par ailleurs, et tu appliques la collation UTF8 sur toutes les bases et toutes les colonnes., bref, partaout. La collation sert à indiquer comment doit se faire le tri (rn tenant compte ou pas des accents par exemple)

Pour la 2eme question, c'est cette partie que tu dois personaliser:

Code : Tout sélectionner

 // Change it ...
        $this->config['dbUser'] = 'my_stats';
        $this->config['dbPass'] = 'P@ssword';
        $this->config['dbHost'] = 'localhost';
        $this->config['dbName'] = 'my_stats';
il te faut mettre:
nom de l'utilisateur de la DB
mot de passe
localhost, à priori, tu ne changes pas (sauf si tu as mis la DB sur une autre machine)
le nom de la base, mais si tu as gardé le nom par défaut, tu laisses celui indiqué
Avatar de l’utilisateur
MrGarfield
Messages : 8
Inscription : 09 déc. 2019, 19:10
Status : Hors-ligne

salut piratebab

merci pour ta réponse, pour mon phpmyadmin ok j'ai tout changer, j'ai aussi changer les informations effectivement mon hlstats et sur une autre machine.
je suis désoler mais je sais pas quoi faire de ce script ? je crée un fichiers ? je le met ou ?

merci encore et désoler
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Si la base est sur une autre machine, il te faut changer localhost par l'adresse de ta machine (ou son nom)
Ensuite tu rends le script exécutable, et tu le lance avec un ;/nom-du-script

Mais j'ai l'impression qu'il ne fait rien de plus que ce que tu as fait à la main avec phpmyadmin. Vérifie la doc, ça doit étre un ou l'autre.
Avatar de l’utilisateur
MrGarfield
Messages : 8
Inscription : 09 déc. 2019, 19:10
Status : Hors-ligne

super merci beaucoup ca fonctionne :good: bien évidement je m'attendais a avoir le même esthétique que l'ancien en plus le GeoLiteCity2 fonctionne pas :shok:
est il possible que je face une sauvegarde de mon ancien hlstats ( web + phpmyadmin ) et le mettre sur une autre machine ?
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

oui, cesont 2 sauvegardes séparées.
Pour la base de données, tu peux utiliser phpmyadmin pour faire le transfert complet. Tu exportes l'ancienne base dans un fichier de sauvegarde, puis, tu la restaure sur la nouvelle machine
Pour le web, il suffit de copier les fichiers d'une machine à l'autre
Avatar de l’utilisateur
MrGarfield
Messages : 8
Inscription : 09 déc. 2019, 19:10
Status : Hors-ligne

salut piratebab

merci encore pour ta réponse, en fouillant un petit peu sur le net j'ai réussi à trouver un script qui permet d'activer GeoLiteCity.dat sur l'ancienne version https://forums.alliedmods.net/showthread.php?t=276492 ca pourrait être utile a d'autre personne et le GeoLiteCity.dat https://drive.google.com/file/d/1s1x34z ... qDldB/view pour moi ça fonctionne pas mal.

ceci dit il me reste un dernière détail que j'arrive pas a trouvé cette fois, si on regarde http://51.178.28.193/hlstats/hlstats.php il détecte bien mon serveur et les joueurs sur la carte google ( serveur OVH )
et si on regarde http://137.74.152.160/hlstats/hlstats.php chez un autre fournisseur ( il détecter rien sur la carte google ) je précise que la clé API et correct c'est la même sur les deux serveurs.

se pourrat-il qui est un blocage au niveau des serveurs ou alors une manipe ?

pourquoi je pose cette question c'est que chez l'autre fournisseur ( petit prix avec 50 go d'espace et pas besoin d'une grosse machine pour faire tourner " hlstatsx,amxbans,site web et ts3 ) que ovh prix raisonnable aussi un tout petit peu plus cher mais 20 go d'espace :shok:

merci
Avatar de l’utilisateur
MrGarfield
Messages : 8
Inscription : 09 déc. 2019, 19:10
Status : Hors-ligne

problème résolut merci
Répondre