Bonjour, j'ai un léger problème enfaite, j'ai créé une requête SQL,
mais qui marche pas sur Chrome, mais je ne comprends pas pourquoi !
J'ai beau cherché ça marche sur Firefox mais pas Chrome
Voici ma requête:
$req = $pdo->prepare('INSERT INTO tgd_ann SET
user_id = :user_id,
name = :user_name,
title = :title,
content = :content,
prix = :prix,
location = :location,
creation = :creation');
$req->execute([
'user_id' => $_SESSION['auth']->id,
'user_name' => $_SESSION['auth']->nom,
'title' => $_POST['title'],
'content' => $_POST['content'],
'prix' => $_POST['prix'],
'location' => htmlspecialchars($_POST['location']),
'creation' => time()]
On est 3 sur cette requête à chercher une solution, mais aucun ne trouve !!!!!
Cdt, Alex.
AhahaH;.... Qui suis-je stupide ? J'ai mis comme fin de
<button> -> <submit>
Donc... Sur chrome ça bloque forcement... Il y avait une erreur.
Merci à tous de l'aide fournie.
Bonjour,
Tu as un message d'erreur lors de l'execution via Chrome ? Est ce que tu as bien recreer ta session sous chrome ?
Cordialement
Salut,
non & oui.
Enfaite le truc comem tu le demande, je n'ai aucun message d'erreur, et ça passe simplement à la suite quoi...
Cordialement.
Il va nous falloir plus de code car la requete n'a pas l'air de poser probleme, as tu une condition superieur à cette requete ?
Voici le code entier qui entoure la requête!
if(!empty($_POST)) {
if(!empty($_POST['title']) && preg_match('/^[\p{L}A-Za-z0-9\'\s@._]+$/ui', $_POST['title']) && strlen($_POST['title']) <= 50) {
if(!empty($_POST['prix'] && preg_match('/^[0-9_]/', $_POST['prix']))) {
if(!empty($_POST['location'] && preg_match('/^[A-Za-z0-9\s]/', $_POST['location']))) {
if(!empty($_POST['content'])) {
require_once 'inc/sql.php';
$req = $pdo->prepare('INSERT INTO tgd_ann SET
user_id = :user_id,
name = :user_name,
title = :title,
content = :content,
prix = :prix,
location = :location,
creation = :creation');
$req->execute([
'user_id' => $_SESSION['auth']->id,
'user_name' => $_SESSION['auth']->nom,
'title' => $_POST['title'],
'content' => $_POST['content'],
'prix' => $_POST['prix'],
'location' => htmlspecialchars($_POST['location']),
'creation' => time()]
);
}
else {
$_SESSION['flash']['title'] = 'La description entrée est invalide!';
$_SESSION['content']['title'] = $_POST['title'];
$_SESSION['content']['prix'] = $_POST['prix'];
$_SESSION['content']['location'] = $_POST['location'];
$_SESSION['content']['content'] = $_POST['content'];
header('location: addannonce');
}
}
else {
$_SESSION['flash']['title'] = 'Vous devez entrer une localisation valide.';
$_SESSION['content']['title'] = $_POST['title'];
$_SESSION['content']['prix'] = $_POST['prix'];
$_SESSION['content']['location'] = $_POST['location'];
header('location: addannonce');
}
}
else {
$_SESSION['flash']['title'] = 'Vous devez entrer un prix valide. (Uniquement numérique)';
$_SESSION['content']['title'] = $_POST['title'];
$_SESSION['content']['prix'] = $_POST['prix'];
header('location: addannonce');
}
} else {
$_SESSION['flash']['title'] = 'Vous devez entrer un titre valide. (50 Caractères maximums)';
$_SESSION['content']['title'] = $_POST['title'];
header('location: addannonce');
}
} ?>
Bonjour Alex,
je remarque que tu as mis le preg_match à l'intérieur du empty pour prix et location, c'est normal ?
aussi le preg_match du prix ne prend pas en compte la virgule ou le point décimal.
Alors non c'est pas normal et du coup c'est rectifié.
Et je savais pas merci.
Et d'ailleurs merci pour m'avoir fait rectifié mon erreur. Mais le problème persiste.
Bonjour,
code complexe à debuger, il faudrait essayer de debuguer ligne par ligne :
Si tu peux nous faire un retour la dessus :)
Bon courage à toi.
Alors le problème ne vient pas des variables, mais de la première condition qui est tout simplement:
if(isset($_POST)) ... Voilà d'où vient le problème, le formulaire n'est pas envoyé et donc rien n'est effectué !
Mais là du coup je comprends tojujours pas, je m'explique:
<form action="addannonce2" method="POST">
<div class="right">
<a href="addannonce2"><button type="submit"> SUIVANT <i class="fa fa-arrow-right fa-3"></i></submit></a>
</div>
</div>
<div class="body">
<div class="addann">
<div class="formulaire">
<div class="header">
<img src="./img/ajouterannonce.png">
</div>
<div class="content">
<?php if(isset($_SESSION['flash']['title'])) { echo '<div class="alert alert-erreur"'.$_SESSION['flash']['title']."</div>"; } ?>
<input type="text" name="title" <?php if(isset($_SESSION['content']['title'])) { ?> value="<?php echo $_SESSION['content']['title']; ?>" <?php } ?> placeholder="Titre de votre annonce">
<div class="input_two">
<input type="text" name="prix" <?php if(isset($_SESSION['content']['prix'])) { ?> value="<?php echo $_SESSION['content']['prix']; ?>" <?php } ?> placeholder="Prix">
<input type="text" <?php if(isset($_SESSION['content']['location'])) { ?> value="<?php echo $_SESSION['content']['location']; ?>" <?php } ?> name="location" placeholder="Localisation">
</div>
<textarea name="content" placeholder="Insérez ici, une description précise de votre produit. Par exemple, l'état du produit, ou le nombre mise en vente..."><?php if(isset($_SESSION['content']['content'])) { echo $_SESSION['content']['content']; } ?></textarea>
<?php unset($_SESSION['content']); ?>
</form>
Donc là, je ne comprends pas pourquoi le formulaire n'est pas envoyé...