Page 1 sur 1

page blanche (TR) php mysqli pdo

Posté : 07 juil. 2016, 15:36
par m3PUdn
Bonjour, à tout(e)s
voila donc sur un autres forum on ma aidez, ah traduire du msqli en pdo, mes le probléme sais que maintenant le codes m'affiche une page blanche et rien n'y fait j'ai beau m'etre des exit() ou die() aprés les header rien ne va, si quelqu'un pourrait me donnée un coups de pouce ça serait super simpas :)

Code : Tout sélectionner

<?php $achat = $_GET['achat']; if($achat = "ndd") { if($_GET['point'] >= 1) { $verif_query = $odb->query("SELECT `points` FROM `users` WHERE `username` = ".$_SESSION['username'].""); $verif = $verif_query->fetch(); if($verif < 10) { exit ('Vous n\'avez pas assez de points pour acheter des plans'); } 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 ('".$_SESSION['username']."','$name_domain')"); header('Location: commande.ok.php?pack=pack%201&prix=100&temps=1'); } else { header('Location: domaine.php'); } } if(isset($_GET['achat'])) { $achat = $_GET['achat']; if($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> '; } elseif(empty($achat)) { header('Location:./index.php'); } ?>

Re: page blanche (TR) php mysqli pdo

Posté : 07 juil. 2016, 16:01
par moogli
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).

@+