Bonjour,
j'ai fais un systeme de commande et quand je clique sur "Envoyer", rien ne s'affiche alors que j'ai tout essayer sans rien trouver :/
Mon code :
<?php
session_start();
require('configuration/config.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<script language="javascript" type='text/javascript'>
function session(){
window.location="deconnexion.php"; //page de déconnexion
}
setTimeout("session()",300000);
</script>
<script type="text/javascript" src="../../js/tinymce/tinymce.min.js"></script>
<script>
tinymce.init({
selector: "textarea#elm1",
theme: "modern",
height: 300,
menubar : false,
plugins: [
"advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker",
"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template paste textcolor"
],
toolbar: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | l ink image | media fullpage | forecolor backcolor",
});
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title><?php echo $nom_site; ?> - Confrimation de la commande</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/prettyPhoto.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="images/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="images/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="images/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="images/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="images/ico/apple-touch-icon-57-precomposed.png">
</head><!--/head-->
<body>
<?php require('incl/header.php'); ?>
<section id="title" class="emerald">
<div class="container">
<div class="row">
<div class="col-sm-6">
<h1>Confirmation de la commande</h1>
<p></p>
</div>
<div class="col-sm-6">
<ul class="breadcrumb pull-right">
<li><a href="index.html">Accueil</a></li>
<li class="active">Confirmation de la commande</li>
</ul>
</div>
</div>
</div>
</section><!--/#title-->
<center><section id="contact-page" class="container">
<div class="row">
<div class="col-sm-8">
<h4>Information de la commande</h4>
<div class="status alert alert-success" style="display: none"></div>
<?php
if($_GET[action]==enregistrer) {
$a = addslashes($_POST["auteur"]);
$b = addslashes($_POST["avatar"]);
$c = addslashes($_POST["prenom"]);
$d = addslashes($_POST["nom"]);
$e = addslashes($_POST["typecommande"]);
$f = addslashes($_POST["lienndd"]);
$g = addslashes($_POST["liensd"]);
if(!empty($a) AND !empty($b) AND !empty($c) AND !empty($d) AND !empty($e) AND !empty($f) AND !empty($g)) {
$req = $bdd->prepare('INSERT INTO `commandes` (auteur, avatar, prenom, nom, typecommande, liendd, liensd, date) VALUES ("'.$a.'", "'.$b.'", "'.$c.'", "'.$d.'", "'.$e.'", "'.$f.'", "'.$g.'", CURDATE())');
$req->closeCursor();
$req->execute();
header("Location: ?m=1");
} else {
header("Location: ?m=2");
} } if($_GET[m]=="1") {
echo('<center><div class="alert alert-success" style="width:750px;"><center>La commande a été envoyée, tout les infos concernant les id de connexion au cPanel vous sera envoyer par email !</center></div></center>');
} if($_GET[m]=="2") {
echo('<center><div class="alert alert-error" style="width:750px;"><center><b>ATTENTION !</b> Veuillez remplir tous les champs !</center></div></center>');
}
?>
<form action="?action=enregistrer" class="contact-form" method="POST" >
<div class="row">
<div class="col-sm-5">Ton Profil
<div class="form-group">
<input type="text" name="auteur" class="form-control" value="<?php echo $pseudo;?>">
</div>
<div class="form-group">
<input type="text" name="avatar" class="form-control" value="<?php echo $avatar;?>">
</div>
<div class="form-group">
<input type="text" name="prenom" class="form-control" value="<?php echo $prenom;?>">
</div>
<div class="form-group">
<input type="text" name="nom" class="form-control" value="<?php echo $nom;?>">
</div>
</div>
<div class="col-sm-6">Ta commande
<div class="form-group">
<select name="typecommande" class="form-control">
<option value="Aucun" selected="selected">Choisis ton pack</option>
<option value="Basic, 0€">Basic, (0€)</option>
<option value="Basic, 0€">Starter, (0.75€)</option>
<option value="Basic, 0€">Premium, (1.10€)</option>
<option value="Basic, 0€">Unlimited, (5€)</option>
</select>
</div>
<div class="form-group">
<input type="text" name="lienndd" class="form-control" value="monsite.gq">.gq
</div>
<div class="form-group">
<input type="text" name="liensd" class="form-control" value="monsite.hosting.gq">.hosting.gq
</div>
</div>
<div class="col-sm-7">
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">Envoyer</button>
</div>
</div>
</div>
</form>
</div><!--/.col-sm-8-->
<div class="col-sm-4">
</div><!--/.col-sm-4-->
</div>
</section><!--/#contact-page--></center>
<section id="bottom" class="wet-asphalt">
<div class="container">
<div class="row">
<div class="col-md-3 col-sm-6">
<h4>About Us</h4>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante.</p>
<p>Pellentesque habitant morbi tristique senectus.</p>
</div><!--/.col-md-3-->
<div class="col-md-3 col-sm-6">
<h4>Company</h4>
<div>
<ul class="arrow">
<li><a href="#">The Company</a></li>
<li><a href="#">Our Team</a></li>
<li><a href="#">Our Partners</a></li>
<li><a href="#">Our Services</a></li>
<li><a href="#">Faq</a></li>
<li><a href="#">Conatct Us</a></li>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Terms of Use</a></li>
<li><a href="#">Copyright</a></li>
</ul>
</div>
</div><!--/.col-md-3-->
<div class="col-md-3 col-sm-6">
<h4>Latest Blog</h4>
<div>
<div class="media">
<div class="pull-left">
<img src="images/blog/thumb1.jpg" alt="">
</div>
<div class="media-body">
<span class="media-heading"><a href="#">Pellentesque habitant morbi tristique senectus</a></span>
<small class="muted">Posted 17 Aug 2013</small>
</div>
</div>
<div class="media">
<div class="pull-left">
<img src="images/blog/thumb2.jpg" alt="">
</div>
<div class="media-body">
<span class="media-heading"><a href="#">Pellentesque habitant morbi tristique senectus</a></span>
<small class="muted">Posted 13 Sep 2013</small>
</div>
</div>
<div class="media">
<div class="pull-left">
<img src="images/blog/thumb3.jpg" alt="">
</div>
<div class="media-body">
<span class="media-heading"><a href="#">Pellentesque habitant morbi tristique senectus</a></span>
<small class="muted">Posted 11 Jul 2013</small>
</div>
</div>
</div>
</div><!--/.col-md-3-->
<div class="col-md-3 col-sm-6">
<h4>Address</h4>
<address>
<strong>Twitter, Inc.</strong><br>
795 Folsom Ave, Suite 600<br>
San Francisco, CA 94107<br>
<abbr title="Phone">P:</abbr> (123) 456-7890
</address>
<h4>Newsletter</h4>
<form role="form">
<div class="input-group">
<input type="text" class="form-control" autocomplete="off" placeholder="Enter your email">
<span class="input-group-btn">
<button class="btn btn-danger" type="button">Go!</button>
</span>
</div>
</form>
</div> <!--/.col-md-3-->
</div>
</div>
</section><!--/#bottom-->
<footer id="footer" class="midnight-blue">
<div class="container">
<div class="row">
<div class="col-sm-6">
© 2013 <a target="_blank" href="http://shapebootstrap.net/" title="Free Twitter Bootstrap WordPress Themes and HTML templates">ShapeBootstrap</a>. All Rights Reserved.
</div>
<div class="col-sm-6">
<ul class="pull-right">
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Faq</a></li>
<li><a href="#">Contact Us</a></li>
<li><a id="gototop" class="gototop" href="#"><i class="icon-chevron-up"></i></a></li><!--#gototop-->
</ul>
</div>
</div>
</div>
</footer><!--/#footer-->
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.prettyPhoto.js"></script>
<script src="js/main.js"></script>
</body>
</html>
Tu n'as pas d'erreur dans ton log php ?
Car $_GET[m] me semble bizarre, ca ne devrait pas être $_GET['m'] ?
Deuxième remarque, évite de noter tes variables a, b, c, d... ca rend difficile les relectures
Troisième remarque, pour les requetes avec sql, si tu utilises une requete préparée, pourquoi n'utilises-tu pas les bindParam ou les variables dans le execute comme http://php.net/manual/fr/pdostatement.execute.php (regarde les exemples 1 et 2 (personnellement je préfère la 2))
Ca permet d'éviter certaines erreurs ;)
Enfaite, genre quand je clique ya rien qui ce passe, genre sa me redigere meme pas vers une autre page
Slt,
Tout d'abord ta condition ```
if($_GET[action]==enregistrer) {
Ne va pas soumettre ton formulaire, il faut une variable de type post puisque la methode de tn formulaire est post
Donc ton champ submit doit avoit un attibut name comme ceci
```name="soumettre"
donc pour soumettre ton formulaire, il faut un test du type:
if(isset($_POST['soumettre']))
{
//Mettre le traitement du formulaire ici
}
Comme l'a dit AlexJM, quand tu fais une requête preparé n'oublie pas de specifier les variable dans la methode execute. :
if(!empty($a) AND !empty($b) AND !empty($c) AND !empty($d) AND !empty($e) AND !empty($f) AND !empty($g)) {
$req = $bdd->prepare('INSERT INTO `commandes` (auteur, avatar, prenom, nom, typecommande, liendd, liensd, date) VALUES(':auteur', ':avatar', ':prenom', ':nom', ':typecommande', ':liendd', '': liensd', ':date')');
$req->execute('auteur'=>$a, 'avatar'=>$b, 'prenom'=>$c, 'nom'=>$d, 'typecommande'=>$e, 'liendd'=>$f, ''liensd'=>$g, 'date'=> CURDATE())');
}
Par ailleur ta condition : ```
(!empty($a) AND !empty($b) AND !empty($c) AND !empty($d) AND !empty($e) AND !empty($f) AND !empty($g
Doit être vérifiée.
Et pour l'amour du ciel, évites d'appeler tes variables a, b, c, etc. on s'y perd facilement !
Déjà ce que j'ai pu remarqué, PHP basique.
if($_GET[action]==enregistrer) {
// à remplacer par :
if($_GET['action'] == 'enregistrer') {
Pareil pour :
if($_GET[m]=="1") {
echo('<center><div class="alert alert-success" style="width:750px;"><center>La commande a été envoyée, tout les infos concernant les id de connexion au cPanel vous sera envoyer par email !</center></div></center>');
} if($_GET[m]=="2") {
// A remplacer par :
if($_GET['m'] == 1) { // Entoure bien de '..' le paramètre de $_GET, et les chiffres sont de type int, pas string (chiffre, et non pas chaîne de caractères)
...
if($_GET['m'] == 2) // Donc si c'est un nombre, pas de ' ', si c'est des caractères, on met les ' '
Corrige déjà ça, et voit ce que ça donne
Toujours la même erreur meme avec requete preparer
<?php
session_start();
require('configuration/config.php');
// on teste si le visiteur a soumis le formulaire
if($_GET[action]=="send") {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['auteur']) && !empty($_POST['auteur'])) && (isset($_POST['avatar']) && !empty($_POST['avatar'])) && (isset($_POST['prenom']) && !empty($_POST['prenom'])) && (isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['typecommande']) && !empty($_POST['typecommande'])) && (isset($_POST['lienndd']) && !empty($_POST['lienndd'])) && (isset($_POST['liensd']) && !empty($_POST['liensd']))) {
if ($sql->fetch() == 0) {
if ($sqlmail->fetch() == 0) {
try {
$sql = $bdd->prepare("INSERT INTO commandes VALUES ('', :auteur, :avatar, :prenom, :nom, :typecommande, :lienndd, :liensd, CURDATE())");
$sql->bindValue(':auteur', $_POST['auteur'], PDO::PARAM_STR);
$sql->bindValue(':avatar', $_POST['avatar'], PDO::PARAM_STR);
$sql->bindValue(':prenom', $_POST['prenom'], PDO::PARAM_STR);
$sql->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
$sql->bindValue(':typecommande', $_POST['typecommande'], PDO::PARAM_STR);
$sql->bindValue(':lienndd', $_POST['lienndd'], PDO::PARAM_STR);
$sql->bindValue(':liensd', $_POST['liensd'], PDO::PARAM_STR);
$sql->execute();
} catch (PDOException $e) {
}
}
}
}
}
?>
Il me semble qu'empty returne false si la variable n'existe pas ;)
Il y aurait moyen que tu actives les erreurs en php ou que tu nous donne le log si ca ne fonctionne toujours pas ?
Les variable GET ne servent pas à tester l'envoi de formulaire.
Si tu as un code de formulaire comme ça
<form action="traitement.php" method="POST">
<input type="text" name="nom">
<input type="text" name="prenom">
<input type="submit" name="envoyer" value="ok">
Et bien pour traiter ton formulaire, tu dois le faire dans la condition:
if(isset($_POST['envoyer']))
{
//Mettre le traitement du formulaire ici
}
Tu peux mettre ça tout en haut de ton script ?
<?php
error_reporting(-1);
?>
Et nous dire si maintenant ça retourne un message d'erreur
Je vais essayer de faire un test de mon coter pour voir si il n'a pas d'erreur quelque. mais je vais le faire sans tes fichier que tu inclus comme configuration/config.php donc ça peut ne pas resoudre ton problème
Je suis assis sur une terrase réculée et pas très bien de la maison. j'espère que la video ne sera pas sombre. La villa est grande et le point d'accès se trouve à l'autre bout, à l'opposé de ma chambre. Et la connexion très haut débit n'est pas d'actualité à Abidjan(Nous sommes à la 3G )
Vu que le traitement de ton formulaire est effectué directement dans ton fichier commande.php, tu peux retirer l'attribut action de ta balise form
et garder cette forme:
<form class="contact-form" method="POST" >
n'oublis surtout pas d'ajouter un attribut name à ton champ de type submit, c'est lui qui est utilisé pour soumettre le formulaire:
<input type="submit" name="envoyer" / >
ton test
if($_GET[action]==enregistrer)
{
}
ne sert plus à rien, tu peux le retirer. ET puis de toute façon, on ne teste pas l'envoi d'un formulaire avec des variables GET, si la methode du formulaire est POST, ce qui est toujours le cas .
puis definis ces variables hors du bloc if pour y avoir accès à tout moment
$pseudo = '';
$avatar = '';
$prenom = '';
$nom ='';
Et concernant la variable GET['m'], tu dois tester son existence avant son utilisation comme ça:
if(isset($_GET['m']) && $_GET['m']==1)
Pour finir, ton code doit ressembler à quelque chose comme ça:
<?php
$pseudo = '';
$avatar = '';
$prenom = '';
$nom ='';
if(isset($_POST['envoyer'])) {
$a = addslashes($_POST["auteur"]);
$b = addslashes($_POST["avatar"]);
$c = addslashes($_POST["prenom"]);
$d = addslashes($_POST["nom"]);
$e = addslashes($_POST["typecommande"]);
$f = addslashes($_POST["lienndd"]);
$g = addslashes($_POST["liensd"]);
if(!empty($a) AND !empty($b) AND !empty($c) AND !empty($d) AND !empty($e) AND !empty($f) AND !empty($g)) {
$req = $bdd->prepare('INSERT INTO `commandes` (auteur, avatar, prenom, nom, typecommande, liendd, liensd, date) VALUES(':auteur', ':avatar', ':prenom', ':nom', ':typecommande', ':liendd', ': liensd', ':date')');
$req->execute('auteur'=>$a, 'avatar'=>$b, 'prenom'=>$c, 'nom'=>$d, 'typecommande'=>$e, 'liendd'=>$f, 'liensd'=>$g, 'date'=> CURDATE())');
$req->closeCursor();
header("Location: ?m=1");
} else {
header("Location: ?m=2");
} } if(isset($_GET['m']) && $_GET['m']==1) {
echo('<center><div class="alert alert-success" style="width:750px;"><center>La commande a été envoyée, tout les infos concernant les id de connexion au cPanel vous sera envoyer par email !</center></div></center>');
} if(isset($_GET['m']) && $_GET['m']==2) {
// echo('<center><div class="alert alert-error" style="width:750px;"><center><b>ATTENTION !</b> Veuillez remplir tous les champs !</center></div></center>');
}
?>