par
moogli » 07 juil. 2016, 16:01
salut,
est ce que tu sais dans qu'elle condition tu passes ?
ajoute un var_dump($_GET) en première ligne histoire de t'aider sur le sujet.
Est ce que tu affiches les erreurs php ?
Il faut que le paramètre display_error soit à on
le paramètre error_reporting doit être à E_ALL
ce code
<?php
$achat = $_GET['achat'];
if($achat = "ndd") {
a de grande chance d'afficher une erreur si achat n'est pas dans l'url (alors que tu fais bien le isset plus bas, d'ailleurs un seul if me semble pindiqué)
Je ferais ton code dans ce style
<?php
if (!empty($_GET['achat'])) {
if ($_GET['achat'] = 'ndd') {
if (!empty($_GET['point']) && $_GET['point'] >= 1) {
$verif_query = $odb->query('SELECT points FROM users WHERE username = '.$_SESSION['username'].'');// BOOM : si le username n'est pas un entier
// c'est mieux comme ça si username est une chaine de charactères
// $verif_query = $odb->query('SELECT points FROM users WHERE username = '.$odb->quote($_SESSION['username']));
$verif = $verif_query->fetch();
$verif_query->close(); // important
if ($verif < 10) {
exit('Vous n\'avez pas assez de points pour acheter des plans'); // Non c'est moche il faut pas casser l'affichage du site pour cela
} else {
$new_point = $verif - 10;
$new_point_query = $odb->execute('UPDATE users SET points = '.$new_point);
}
$odb->execute('UPDATE users SET points=points - 100 WHERE id='.$_SESSION['ID']);
$odb->execute('INSERT INTO Prod-ndd (username,ndd) VALUES ('.$obd->quote($_SESSION['username']).','.$obd->quote($name_domain).')');
header('Location: commande.ok.php?pack=pack%201&prix=100&temps=1');
} else {
// TODO : un p'tit message d'explication de la redirection ?
header('Location: domaine.php');
}
} elseif ($achat == 'ok') {
$message = '
<div class=\"alert alert-dismissible alert-success\">
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>
<strong><center>Bravo! votre service viens d\'être livré.</center></strong>
</div>';
} elseif ($achat == 'non') {
$message = '
<div class=\"alert alert-dismissible alert-danger\">
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>
<strong><center>Vous n\'avez pas assez de points. <a href="recharge">clic ici</a> pour en acheter</center></strong>
</div>
';
} else {
// TODO : prévoir un message d'erreur
header('Location:./index.php');
}
} else {
// TODO : prévoir un message d'erreur
header('Location:./index.php');
}
PS : les back quote ( ` ) ne servent à rien dans les requêtes SQL. (en fait seulement si tu as la mauvaise idées d'utiliser un mot réservé pour les noms de table / colonne / etc).
@+