Bonjour,
je me permets de poster car je rencontre un probleme suite à la soumission de mon formulaire.
firefox me met le message suivant:
Pour afficher cette page, les informations précédemment transmises par Firefox doivent être renvoyées. Ceci répétera toute action (telle qu’une recherche ou un ordre d’achat) entreprise précédemment.
Pour plus de clarté voici mon code :
if(isset($_POST['envoyer'])){
// Variables
$titre = htmlspecialchars($_POST['tit']);
$description = htmlspecialchars($_POST['description']);
$categorie = intval($_POST['categorie']);
$prix = intval($_POST['prix-article']);
$quantite = intval($_POST['quantite-article']);
$quantite_max = intval($_POST['quantite-max-article']);
$poids = intval($_POST['poids']);
$longueur = intval($_POST['longueur']);
$largeur = intval($_POST['largeur']);
$hauteur = intval($_POST['hauteur']);
$adherent = intval($_POST['adherent']);
$email = intval($_POST['email']);
if($adherent != 1) $adherent = 0;
if($email != 1) $email = 0;
//--- enregistrement de l'article ---
$ri_art = $conn->prepare('INSERT INTO article
(
titre,
`description`,
quantite,
quantite_par_commande,
poids,
longueur,
largeur,
hauteur,
adherent,
prix_unitaire,
idx_cat_article,
idx_foyer
)
VALUES
(
:titre,
:descr,
:quantite,
:quantite_max,
:poids,
:longueur,
:largeur,
:hauteur,
:adherent,
:prix,
:cat,
:foyer
)
');
if($ri_art->execute([
'titre'=>$titre,
'descr'=>$description,
'quantite'=>$quantite,
'quantite_max'=>$quantite_max,
'poids'=>$poids,
'longueur'=>$longueur,
'largeur'=>$largeur,
'hauteur'=>$hauteur,
'adherent'=>$adherent,
'prix'=>$prix,
'cat'=>$categorie,
'foyer'=>$_SESSION['foyer']
])){
$id_article = $conn->lastInsertId();
$ok_art = true;
// --- ajout des medias ---
require_once 'php/image.php';
// --- envoie d'email ---
if($email == 1){
// - Liste de diffusion
$liste_diff = [];
$rs_list = $conn->prepare('SELECT DISTINCT c.mail FROM compte c
INNER JOIN tl_compte_foyer cf ON cf.idx_compte = c.id_compte
INNER JOIN utilisateur u ON c.id_compte = u.idx_compte
INNER JOIN tl_utilisateur_foyer uf ON uf.idx_utilisateur = u.id_utilisateur
WHERE cf.idx_foyer = ? AND uf.mailing = 1');
$rs_list->execute([$_SESSION['foyer']]);
foreach( $rs_list as $list){
array_push($liste_diff,$list[0]);
}
// chargement des données pour connexion avec compte admin
$rs_mail = $conn->prepare('SELECT
mail,
smtp,
port_mail port,
aes_decrypt(password_mail,:crypt) pass
from foyer
WHERE id_foyer = :foyer');
$rs_mail->bindParam('foyer', $_SESSION['foyer']);
$rs_mail->bindParam('crypt', $crypt);
$rs_mail->execute();
$dmail = $rs_mail->fetch();
foreach($liste_diff as $diff){
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 0; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = $dmail['smtp']; //Set the SMTP server to send through
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->Username = $dmail['mail']; //SMTP username
$mail->Password = $dmail['pass']; //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption
$mail->Port = $dmail['port']; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
$mail->CharSet = "UTF-8";
//Recipients
$mail->setFrom($dmail['mail']);
$mail->addAddress($diff); //Add a recipient
//$mail->addAddress('ellen@example.com'); //Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
// $mail->addBCC($diff);
//Attachments
//$mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = $titre;
$mail->Body = $_POST['description'];
// $mail->AltBody = $_POST['description'];
if($mail->send()){
$ok_mail = true;
}
} catch (Exception $e) {
error_log(PHP_EOL . "[".date('Y-m-d h:i:s')."] Message non envoyé, cause : {$mail->ErrorInfo}",3,PATH_LOG);
$mail_nok = true;
}
}
}
}
}
require_once '../inc/header-html.php';
?>
<script>window.location.replace(creer-article.php)</script>
<main>
<div class="container-xxl">
<?php if ($ok_art) : ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>Article</strong>
<hr>
<p>Votre article a été créé avec succès !</p>
</div>
<!-- <script>
var alertList = document.querySelectorAll('.alert');
alertList.forEach(function (alert) {
new bootstrap.Alert(alert)
})
</script> -->
<?php endif ?>
<?php if($ok_mail) : ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>Mail</strong>
<hr>
<p>Envoie d'email envoyé avec succès !</p>
</div>
<!-- <script>
var alertList = document.querySelectorAll('.alert');
alertList.forEach(function (alert) {
new bootstrap.Alert(alert)
})
</script> -->
<?php endif ?>
<form method="POST" action="creer-article.php" enctype="multipart/form-data">
<div class="form-floating mb-3">
<input type="text" class="form-control" name="tit" id="tit" required>
<label for="tit">Titre</label>
</div>
<label for="description">Description</label>
<textarea name="description" id="content" required></textarea>
<div class="mt-3">
<label for="categorie">Sélectionnez une catégorie.</label>
<select name="categorie" id="categorie2" class="form-select" required>
<option class="categorie" value=""></option>
<?php
$rs_cat = $conn->prepare('SELECT id_cat_article, nom FROM cat_article WHERE active = 1 AND idx_foyer = ?');
$rs_cat->execute([$_SESSION['foyer']]);
foreach($rs_cat as $cat):
?>
<option class="categorie" value="<?= $cat[0] ?>"><?= $cat[1] ?></option>
<?php endforeach ?>
</select>
<div class="">
<button class="btn btn-warning mt-1" id="addcatbtn">Ajouter une catégorie</button>
</div>
<div id="addcat" class="mt-2 mb-4 ml-5">
<div class="form-floating mb-3">
<input type="text" class="form-control" name="ajoutcat" id="cat" required disabled>
<label for="ajoutcat">Ajouter une catégorie</label>
<button class="btn btn-success mt-2" id="ajoutcat2">Ajouter</button>
<button class="btn btn-warning mt-2" id="masquer">Masquer</button>
</div>
</div>
</div>
<div class="card p-2 mt-3">
<div class="form-floating mb-3">
<input type="number" class="form-control" name="prix-article" id="prix-article" required>
<label for="prix-article">Prix</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" name="quantite-article" id="quantite-article" required>
<label for="quantite-article">Quantité</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" name="quantite-max-article" id="quantite-max-article" required>
<label for="quantite-max-article">Quantité maximale d'article par commande</label>
</div>
</div>
<div class="card p-2 mt-3">
<div class="form-floating mb-3">
<input type="number" class="form-control" name="poids" id="poids" placeholder="">
<label for="poids">Poids (kg)</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" name="longueur" id="longueur" placeholder="">
<label for="longueur">Longueur (cm)</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" name="largeur" id="largeur" placeholder="">
<label for="largeur">Largeur (cm)</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" name="hauteur" id="hauteur" placeholder="">
<label for="hauteur">Hauteur (cm)</label>
</div>
</div>
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" name="adherent" value="1" id="adherent">
<label class="form-check-label" for="adherent">Vente uniquement aux adhérents.</label>
</div>
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" name="email" value="1" id="email">
<label class="form-check-label" for="email">envoyer par email à la liste de diffusion.</label>
</div>
<div class="card p-2">
<label for="media">Ajouter des photos</label>
<input type="file" class="form-control mb-2" name="media1" id="image1">
<input type="file" class="form-control mb-2" name="media2" id="image2">
<input type="file" class="form-control mb-2" name="media3" id="image3">
<input type="file" class="form-control mb-2" name="media4" id="image4">
<input type="file" class="form-control mb-2" name="media5" id="image5">
<input type="file" class="form-control mb-2" name="media6" id="image6">
<input type="file" class="form-control mb-2" name="media7" id="image7">
<input type="file" class="form-control mb-2" name="media8" id="image8">
</div>
<button type="submit" name="envoyer" class="btn btn-success mb-5">Enregistrer l'article</button>
</form>
</div>
</main>
<script src="js/article.js"></script>
<script src="js/photo.js"></script>
<?php
require_once '../inc/footer.php';
?>
Merci pour votre aide.