Résolu [PHP] Enregistrer un code Dédipass dans une BDD

Ʀagnar

Goodbye my friend
Premium
Inscription
29 Août 2014
Messages
513
Réactions
147
Points
4 046
RGCoins
25
Bonsoir, je viens faire appel à vous car je n'arrive pas a enregistrer les code mis par dédipass dans une base de donné afin de pouvoir vérifier en cas de problème, j'aimerai par exemple que sa marque le pseudo de la personne vus qu'elle doit être connecté, la date, le nombre de points acheter et le code mis, et pourquoi pas le mode de paiement mais je pense que c'est pas possible, si quelqu'un peux me mettre sur la piste sa m'aiderai énormément merci :)

Voici le code qui permet de créditer le compte :

PHP:
<?php
$code = isset($_POST['code']) ? preg_replace('/[^a-zA-Z0-9]+/', '', $_POST['code']) : '';
if( empty($code) ) {
  echo '<p class="erreur"><img src="template/img/erreur.png">Vous devez saisir un code</p></br>';
}
else {
  $dedipass = file_get_contents('http://api.dedipass.com/v1/pay/?public_key=xxxxxxxxxxxx&private_key=xxxxxxxxxxx&code=' . $code);
  $dedipass = json_decode($dedipass);
  if($dedipass->status == 'success') {
    // Le transaction est validée et payée.
    // Vous pouvez utiliser la variable $virtual_currency
    // pour créditer le nombre de Points.
    $virtual_currency = $dedipass->virtual_currency;
    $request = $db->prepare('SELECT * FROM accounts WHERE guid = ?');
    $request->execute(array($_SESSION['id']));
    $row = $request->fetch();
    $pt = $row['points'];
    $request = $db->prepare('UPDATE accounts SET points = ? WHERE guid = ?');
    $request->execute(array($pt + $virtual_currency,$_SESSION['id']));
    $_SESSION['pts'] = $pt + $virtual_currency;
    echo '<p class="ok"><img src="template/img/ok.png">Le code est valide, et votre compte à était crédité de ' . $virtual_currency . ' points boutique.</p></br>';
  }
  else {
    // Le code est invalide
    echo '<p class="erreur"><img src="template/img/erreur.png">Le code '.$code.' est invalide</p></br>';
  }
}
?>

La table s'appel code voici ses propriété et comment je voudrais qu'elle sois remplis :
5be09fbf894da87359cfedbc169f5e34.png


21ab1ed16324451d0058e76990125dbc.png
 
Dernière édition:
On pourrait avoir ton code php actuel ainsi que le nom de la table (et ses propiétés... si possible un screen quoi) dans laquelle tu voudrais enregistrer le code dedipass s'il te plaît ? :p
 
Bonsoir Lucifer Morningstar ,

D'un part tu devrais retirer ta clé privée du topic, d'une autre part quel est le soucis précisément ? as-tu une erreur ? :)

Bonne soirée,
Rivals
 
Un truc comme ça en gros ? :p
PHP:
$time = date();
$req = $db->pepare('INSERT INTO accounts (guid, code, date) VALUES ('.$_SESSION['id'].', '.$dedipass.', '.$time.')');
$req->execute();
 
On pourrait avoir ton code php actuel ainsi que le nom de la table (et ses propiétés... si possible un screen quoi) dans laquelle tu voudrais enregistrer le code dedipass s'il te plaît ? :p
C'est bon j'ai éditer
Bonsoir Lucifer Morningstar ,

D'un part tu devrais retirer ta clé privée du topic, d'une autre part quel est le soucis précisément ? as-tu une erreur ? :)

Bonne soirée,
Rivals
Non je n'ai pas d'erreur ou autre les joueurs reçoivent bien leurs points mais le problème c'est que je ne vois pas les historique d'achat vus que je n'ai pas de colone pour sa et c'est sa que je voudrais faire justement
 
C'est bon j'ai éditer

Non je n'ai pas d'erreur ou autre les joueurs reçoivent bien leurs points mais le problème c'est que je ne vois pas les historique d'achat vus que je n'ai pas de colone pour sa et c'est sa que je voudrais faire justement
Il faut que tu en crées une, et ensuite tu réalises une requête préparée ? :p
 
C'est bon j'ai éditer

Non je n'ai pas d'erreur ou autre les joueurs reçoivent bien leurs points mais le problème c'est que je ne vois pas les historique d'achat vus que je n'ai pas de colone pour sa et c'est sa que je voudrais faire justement
Edit: prends celui-là :espion:
PHP:
$time = date();
$db->execute('INSERT INTO accounts (guid, code, date) VALUES ('.$_SESSION['id'].', '.$dedipass.', '.$time.')');
 
Cette réponse a aidé l'auteur de cette discussion !
Edit: prends celui-là :espion:
PHP:
$time = date();
$db->execute('INSERT INTO accounts (guid, code, date) VALUES ('.$_SESSION['id'].', '.$dedipass.', '.$time.')');
Oui un trucs comme sa mais avec ce code je n'y arrive pas mais c'est un trucs comme sa a rentrer dans mon bout de code en haut
 
Niveau injection SQL on est bon :troll:
J'aurais pu faire une requête préparée pour éviter ça, c'est ça ? :mmh:
Pour ma défense j'ai pas touché à PHP depuis un moment vu que mon patron veut que j'utilise Wordpress :fight:
 
Retour
Haut