Ce code est destiné à un site Web de vente d'alts et vise à vérifier si la personne dispose de suffisamment de monnaie virtuelle (minecoins). Si elles en ont, elles sont redirigées vers une autre page pour envoyer le mail avec leur commande. Je n'ai aucun message d'erreur, mais la page ne fonctionne pas.
Quelqu'un peut m'aider ?
Voici la page order.php :
<?php
error_reporting(0);
ob_start();
// Afficher les erreurs à l'écran
ini_set('display_errors', 1);
// Enregistrer les erreurs dans un fichier de log
ini_set('log_errors', 1);
// Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
// Afficher les erreurs et les avertissements
error_reporting(e_all);
include"../../includes/init.php";
include"../../includes/db.php";
$quantity = $_POST['quantity'];
$email = $_POST['email'];
$alt = $_POST['alt'];
$garantie = $_POST['garantie'];
$stmt = $db->prepare("SELECT stock, min, price FROM categories WHERE name=?");
$stmt->bind_param("s", $alt);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($stock, $min, $price);
$stmt->fetch();
$stmt->close();
function getPath()
{
$temp = "https://minealts-shop.com";
return ($temp);
}
$item_name = ''.$_POST['alt']." - ".$_POST['quantity'].'';
if($quantity >= $min && $quantity <= $stock){
if(isset($_POST['code']) AND $_POST['code'] == ""){
$code = $_POST['code'];
$hostname = "localhost";
$database = "db";
$username = "user";
$password = "pass";
$connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db($database, $connection);
mysql_query("SET NAMES 'utf8'");
$codePromo = mysql_real_escape_string($code);
$requete = "SELECT * FROM reduc WHERE code = '".$codePromo."'";
$req_exec = mysql_query($requete) or die(mysql_error());
$resultat = mysql_fetch_assoc($req_exec);
if (isset($resultat['code']))
{
$reduction = $resultat['reduction'];
$percentToGet = $reduction;
$percentInDecimal = $percentToGet / 100;
if(isset($garantie)){
$price = $percentInDecimal* ($quantity * $price)+3;
}else{
$price = $percentInDecimal* ($quantity * $price);
}
}else{
if(isset($garantie)){
$price = $quantity * $price+3;
}else{
$price = $quantity * $price;
}
}
}else{
if(isset($garantie)){
$price = $quantity * $price+3;
}else{
$price = $quantity * $price;
}
}
}else{
exit;
}
$minecoinss = $odb->prepare('SELECT minecoins FROM users WHERE username = "?"');
$minecoinss->execute(array($_SESSION['username']));
while ($minecoins = $minecoinss->fetch()){
if($minecoins < $price){
header("Location: https://minealts-shop.com/client/v2/purchase.php?minecoinss=1");
}else{
$updateSQL = $odb->prepare("UPDATE `users` SET `minecoins` = ".$minecoins."-".$price." WHERE `username` = '".$_SESSION["username"]."'");
$updateSQL->execute();
$message = '
<center>
<img src="../assets/img/logo.png" width="479" height="160" class="CToWUd a6T" tabindex="0">
<br>
<div class="gmail_default" style="font-family:"comic sans ms",sans-serif;display:inline"><font size="6" color="#444444">Confirmation dachat</font></div>
<td align="center" valign="top" class="m_5612285595555524395gmail-m_5807200631128545810subTitle" style="margin:0px;padding-bottom:30px;padding-left:20px;padding-right:20px">
<h4 class="m_5612285595555524395gmail-m_5807200631128545810text" style="line-height:24px;text-align:center;padding:0px;margin:0px">
<div class="gmail_default" style="color:rgb(11,83,148);font-family:"comic sans ms",sans-serif;font-size:large;font-style:normal;font-weight:500;letter-spacing:normal;text-transform:none;display:inline"></div>
<div class="gmail_default" style="color:rgb(11,83,148);font-family:"comic sans ms",sans-serif;font-size:large;font-style:normal;font-weight:500;letter-spacing:normal;text-transform:none;display:inline"></div>
<font color="#0b5394" face="comic sans ms, sans-serif" size="4">
<span style="font-weight:500">Votre commande a été entièrement traitée.</span></font></h4>
<h4 class="m_5612285595555524395gmail-m_5807200631128545810text" style="line-height:24px;padding:0px;margin:0px">
<font color="#0b5394" face="comic sans ms, sans-serif" size="4">
<span style="font-weight:500">Vous pouvez trouver une copie de votre commande <div class="gmail_default" style="font-family:"comic sans ms",sans-serif;font-size:large;color:rgb(11,83,148);display:inline">ci-joint.</div></span></font></h4>
<h4 class="m_5612285595555524395gmail-m_5807200631128545810text" style="line-height:24px;padding:0px;margin:0px">
<font color="#0b5394" face="comic sans ms, sans-serif" size="4">
<span style="font-weight:500"><br></span></font></h4>
<div><font color="#0b5394" face="comic sans ms, sans-serif" size="4"><span style="font-weight:500">
<div class="gmail_default" style="font-family:"comic sans ms",sans-serif;font-size:large;color:rgb(11,83,148);display:inline">Votre commande :<br>';
$db1 = new mysqli("localhost","user","pass","db");
$stmt = $db1->prepare("SELECT login FROM stock WHERE category=? LIMIT ".mysqli_real_escape_string($db, $quantity));
$stmt->bind_param("s", $alt);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($login);
while($stmt->fetch()){
$message .= $login."\r\n";
}
$stmt->close();
$message .= '</div></span></font></div>
<div><font color="#0b5394" face="comic sans ms, sans-serif" size="4">
<span style="font-weight:500">
<div><br></div><h4 class="m_5612285595555524395gmail-m_5807200631128545810text" style="line-height:24px;padding:0px;margin:0px">
<font color="#0b5394" face="comic sans ms, sans-serif" size="4">
<span style="font-weight:500">Si vous avez des problèmes avec votre commande, sil vous plaît contactez<div class="gmail_default" style="font-family:"comic sans ms",sans-serif;font-size:large;color:rgb(11,83,148);display:inline">z</div>
<div class="gmail_default" style="font-family:"comic sans ms",sans-serif;font-size:large;color:rgb(11,83,148);display:inline">nous sur Discord</div>.</span></font></h4></td>
</center>
';
$stmt = $db1->prepare("UPDATE categories SET stock=stock-".mysqli_real_escape_string($db, $quantity)." WHERE name=?");
$stmt->bind_param("s", $alt);
$stmt->execute();
$stmt->close();
mail($email,"Minealts Order", $message);
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <order@minealts-shop.com>' . "\r\n";
mail($email,"Minealts Order",$message,$headers);
header('Location : https://minealts-shop.com/end/');}}
?>
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
(titre originel : Problème avec mon code, pourquoi ça ne marche pas?)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Tu sais ce que error_reporting(0) signifie (mais bon tu fais un 2ème appel après) ? e_all n'existe pas. Pourquoi ob_start() ? 2 appels de mail() ?
Et puis documente toi sur les requêtes préparées.
PS: Ton code n'est pas bien présenté. Tu n'as pas un environnement de dev style wamp, uwamp etc... ? Parce que vouloir afficher les erreurs en prod n'est pas une bonne idée.
Tu sais ce que error_reporting(0) signifie (mais bon tu fais un 2ème appel après) ? e_all n'existe pas. Pourquoi ob_start() ? 2 appels de mail() ?
Et puis documente toi sur les requêtes préparées.
PS: Ton code n'est pas bien présenté. Tu n'as pas un environnement de dev style wamp, uwamp etc... ? Parce que vouloir afficher les erreurs en prod n'est pas une bonne idée.
Merci de ta réponse, j'ai modifié le code un peu, mais toujours aucune erreur qui s'affiche et page blanche...
Il faut avoir un environnement de dev parce qu'on est d'accord tu codes un peu à l'aveugle. C'est quoi ton nouveau code ? Une raison pour ne pas utiliser header('Location: ') pour toutes tes redirections ?
POO différent de PDO (Ymox l'a déjà signifié) , et tu utilises PDO dans ton dernier code mais de la bonne manière. Toujours le même problème ? C'est quoi ton code actualisé
POO différent de PDO (Ymox l'a déjà signifié) , et tu utilises PDO dans ton dernier code mais de la bonne manière. Toujours le même problème ? C'est quoi ton code actualisé
j'ai arreté d'essayer de trouver le problème, donc c'est toujours le même code.
[MYSQL][ERROR]Page vide sans erreur, aidez moi svp
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)