Français Solved Besoin d'aide pour modifier le panel admin 'Jason' afin d'utiliser MasterPay pour les remboursements

  • Auteur de la discussion Auteur de la discussion _NEYPHIS_
  • Date de début Date de début

_NEYPHIS_

User
29/12/19
297
7
20
1 100
mail-rp.com
Bonjour,

Je créer donc le premier post de cette section pour effectuer une modification du panel de Jason au niveau des remboursements pour que cela fonctionne directement avec Masterpay.

Le lien du GitHub du panel : https://github.com/Jason2605/AdminPanel

Le fichier concernant les remboursements : https://github.com/Jason2605/AdminPanel/blob/master/reimbursement.php


En revanche le panel n'est pas tout jeune et commence a dater mais fonctionne toujours, cependant lorsque l'on effectuer un soit disant remboursement qui a l'heure ne créer juste des logs si on refresh en boucle la page cela duplique le remboursement.

J'aurais aimé le faire seul mais je n'y connais rien en sql et très peu en php. J'arrive a bricoler mais la je galère de fou avec sa :)

Dans l'attente, merci au âmes charitable ;)
 
Solution
Hello! Bienvenu dans cette nouvelle catégorie 😁

Les modifications sont bien à faire dans le reimbursement.php, en dessous de cette ligne :
Code:
$UpdateQ = "INSERT INTO reimbursement_log (playerid,comp,reason,staff_name) VALUES ('$uid','$amount','$reason','$user');";
mysqli_query($dbcon, $UpdateQ);
il faudra ajouter tout ça en dessous, j'ai commenté le code pour que tu comprennes :
Code:
// Permet de générer le numéro de la transaction (ça sert à rien en soit, mais c'est affiché sur Masterpay)
function random($car) {
    $string = "";
    $chaine = "ABCDEFGHIJKLMNOPQRSTUVWXCYZ";
    srand((double)microtime()*1000000);
    for($i=0; $i<$car; $i++) {
        $string .= $chaine[rand()%strlen($chaine)];
    }
    return $string;
}...
Hello! Bienvenu dans cette nouvelle catégorie 😁

Les modifications sont bien à faire dans le reimbursement.php, en dessous de cette ligne :
Code:
$UpdateQ = "INSERT INTO reimbursement_log (playerid,comp,reason,staff_name) VALUES ('$uid','$amount','$reason','$user');";
mysqli_query($dbcon, $UpdateQ);
il faudra ajouter tout ça en dessous, j'ai commenté le code pour que tu comprennes :
Code:
// Permet de générer le numéro de la transaction (ça sert à rien en soit, mais c'est affiché sur Masterpay)
function random($car) {
    $string = "";
    $chaine = "ABCDEFGHIJKLMNOPQRSTUVWXCYZ";
    srand((double)microtime()*1000000);
    for($i=0; $i<$car; $i++) {
        $string .= $chaine[rand()%strlen($chaine)];
    }
    return $string;
}
$chaine = random(16);

// Savoir le compte en banque actuel du joueur
$sqlGetBank = "SELECT bankacc FROM players WHERE pid='$uid'";
$sqldata = mysqli_query($dbcon, $sqlGetBank);
$player = $sqldata->fetch_object();

$bankactu = $player->bankacc;

// Ajouter l'argent au joueur dans la DB
$banknew = $bankactu + $amount;

$sqlUpdateBank = "UPDATE players SET bankacc='$banknew' WHERE pid='$uid'";
mysqli_query($dbcon, $sqlUpdateBank);

// Récupérer le PID de l'admin qui à fait le remboursement
$sqlGetAdminID = "SELECT uid FROM players WHERE name='$user'";
$sqldata = mysqli_query($dbcon, $sqlGetAdminID);
$admin = $sqldata->fetch_object();
$adminPID = playerID($admin);

// Ajouter la transaction dans Masterpay + envoyer l'argent au joueur s'il est connecté
$sqlMasterpayInsert = "INSERT INTO masterpay (amount, destinataire, envoyeur, numero, description, displayed_name_destinataire, displayed_name_envoyeur) VALUES ('$amount', '$uid', '$adminPID', '$chaine', '$reason', '', 'Administration')";
mysqli_query($dbcon, $sqlMasterpayInsert);

Pour que ça fonctionne correctement, il faut que le nom de l'admin dans la colonne "username" de la table "users" soit le même que son compte en jeu (colonne "name" de "players").
Je n'ai pas pu tester par manque de temps, j'espère que ça ira ;)
 
Solution
Hello! Bienvenu dans cette nouvelle catégorie 😁

Les modifications sont bien à faire dans le reimbursement.php, en dessous de cette ligne :
Code:
$UpdateQ = "INSERT INTO reimbursement_log (playerid,comp,reason,staff_name) VALUES ('$uid','$amount','$reason','$user');";
mysqli_query($dbcon, $UpdateQ);
il faudra ajouter tout ça en dessous, j'ai commenté le code pour que tu comprennes :
Code:
// Permet de générer le numéro de la transaction (ça sert à rien en soit, mais c'est affiché sur Masterpay)
function random($car) {
    $string = "";
    $chaine = "ABCDEFGHIJKLMNOPQRSTUVWXCYZ";
    srand((double)microtime()*1000000);
    for($i=0; $i<$car; $i++) {
        $string .= $chaine[rand()%strlen($chaine)];
    }
    return $string;
}
$chaine = random(16);

// Savoir le compte en banque actuel du joueur
$sqlGetBank = "SELECT bankacc FROM players WHERE pid='$uid'";
$sqldata = mysqli_query($dbcon, $sqlGetBank);
$player = $sqldata->fetch_object();

$bankactu = $player->bankacc;

// Ajouter l'argent au joueur dans la DB
$banknew = $bankactu + $amount;

$sqlUpdateBank = "UPDATE players SET bankacc='$banknew' WHERE pid='$uid'";
mysqli_query($dbcon, $sqlUpdateBank);

// Récupérer le PID de l'admin qui à fait le remboursement
$sqlGetAdminID = "SELECT uid FROM players WHERE name='$user'";
$sqldata = mysqli_query($dbcon, $sqlGetAdminID);
$admin = $sqldata->fetch_object();
$adminPID = playerID($admin);

// Ajouter la transaction dans Masterpay + envoyer l'argent au joueur s'il est connecté
$sqlMasterpayInsert = "INSERT INTO masterpay (amount, destinataire, envoyeur, numero, description, displayed_name_destinataire, displayed_name_envoyeur) VALUES ('$amount', '$uid', '$adminPID', '$chaine', '$reason', '', 'Administration')";
mysqli_query($dbcon, $sqlMasterpayInsert);

Pour que ça fonctionne correctement, il faut que le nom de l'admin dans la colonne "username" de la table "users" soit le même que son compte en jeu (colonne "name" de "players").
Je n'ai pas pu tester par manque de temps, j'espère que ça ira ;)
Hey Maxence je viens de tester a l'instant et cela fonctionne nickel même si la personnes est déconnecter, cependant est ce possible de faire en sorte qu'une fois le remboursement fait cela nous ramène a l'accueil pour éviter les duppli car si on fait F5 ca le duplique.

Le fichier de l'accueil est "home.php"