Modifications pour que la régénération soit directement sur la page + mise en forme du formulaire
Ajout de la class css "spam" pour l'affichage des messages d'erreurs
This commit is contained in:
parent
8e785c5047
commit
65151ab1a6
2 changed files with 71 additions and 44 deletions
32
form.php
32
form.php
|
@ -47,22 +47,26 @@ if (isset($_POST['new_question'])) {
|
|||
$_SESSION['current_question'] = null;
|
||||
$_SESSION['correct_answers'] = null;
|
||||
// Rediriger pour éviter la soumission de formulaire inutile
|
||||
header("Location: form.php");
|
||||
header("Location: #answer");
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($try == 'send') {
|
||||
// Vérifier le token CSRF
|
||||
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['csrf_error'];
|
||||
include 'form_struct.php';
|
||||
echo "</span>";
|
||||
return ;
|
||||
exit();
|
||||
}
|
||||
|
||||
// Ici Le visiteur soumet le formulaire
|
||||
if (($nobotc != md5($nobotv)) || ($nobotv == '') || ($nobots != '')) {
|
||||
echo $txt['antispam_error'];
|
||||
include 'form_struct.php';
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['antispam_error'];
|
||||
echo "</span>";
|
||||
return ;
|
||||
} else {
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$name = strip_tags(trim($_POST["name"]));
|
||||
|
@ -73,13 +77,17 @@ if ($try == 'send') {
|
|||
|
||||
// Validation des données
|
||||
if (empty($name) || empty($email) || empty($subject) || empty($message) || empty($user_answer)) {
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['required_fields'];
|
||||
include 'form_struct.php'; // Réaffiche le formulaire en cas d'erreur
|
||||
echo "</span>";
|
||||
return ; // Réaffiche le formulaire en cas d'erreur
|
||||
} else {
|
||||
// Vérifier la présence de liens : si oui, fin du script
|
||||
if (preg_match('/http(s?):\/\//ism', $message)) {
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['link_error'];
|
||||
include 'form_struct.php'; // Réaffiche le formulaire en cas d'erreur
|
||||
echo "</span>";
|
||||
return ; // Réaffiche le formulaire en cas d'erreur
|
||||
exit(); // Arrêter l'exécution si un lien est trouvé
|
||||
}
|
||||
|
||||
|
@ -87,8 +95,10 @@ if ($try == 'send') {
|
|||
$bad_words = $config['bad_words'];
|
||||
foreach ($bad_words as $bad) {
|
||||
if (stripos($message, $bad) !== false) {
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['bad_word_error'];
|
||||
include 'form_struct.php'; // Réaffiche le formulaire en cas d'erreur
|
||||
echo "</span>";
|
||||
return ; // Réaffiche le formulaire en cas d'erreur
|
||||
exit(); // Arrêter l'exécution si un mot interdit est trouvé
|
||||
}
|
||||
}
|
||||
|
@ -110,16 +120,14 @@ if ($try == 'send') {
|
|||
echo $txt['email_error'];
|
||||
}
|
||||
} else {
|
||||
echo "<span class=\"spam\">";
|
||||
echo $txt['bad_answer'];
|
||||
include 'form_struct.php'; // Réaffiche le formulaire en cas d'erreur
|
||||
echo "</span>";
|
||||
return ; // Réaffiche le formulaire en cas d'erreur
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Ici on affiche le formulaire, c'est l'affichage par défaut
|
||||
include 'form_struct.php';
|
||||
}
|
||||
?>
|
||||
<div><a href="index.php">Retour au site</a></div>
|
||||
|
|
|
@ -1,41 +1,60 @@
|
|||
<h2>Contact</h2>
|
||||
<p>Vous voulez me spammer ? Heu, me contacter ? Laissez-moi un gentil mot :)</p>
|
||||
|
||||
<form action="form.php" method="POST">
|
||||
|
||||
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
|
||||
<div>
|
||||
<!-- Token CSRF -->
|
||||
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>">
|
||||
|
||||
<!-- pour les bots -->
|
||||
<input type="hidden" name="try" value="send">
|
||||
<input type="hidden" name="nobotv" value="<?php echo $nobot; ?>">
|
||||
<!-- Si j'ajoute "required", ça foire pour demander à changer de question... donc on va faire sans, de toute façon c'est ensuite testé par php. -->
|
||||
<div>
|
||||
<label for="name"><?php echo $txt['name']; ?></label>
|
||||
<input type="text" id="name" name="name" placeholder="Nom">
|
||||
</div>
|
||||
<div>
|
||||
<label for="email"><?php echo $txt['mail']; ?></label>
|
||||
<input type="email" id="email" name="email" placeholder="Courriel">
|
||||
</div>
|
||||
<div>
|
||||
<label for="subject"><?php echo $txt['subject']; ?></label>
|
||||
<input type="text" id="subject" name="subject" placeholder="Titre du message">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="message"><?php echo $txt['message']; ?></label>
|
||||
<textarea id="message" name="message" rows="6" cols="50" placeholder="Entrer votre message"></textarea>
|
||||
</div>
|
||||
<!-- Antibot -->
|
||||
<div>
|
||||
<input id="nobotc" type="checkbox" name="nobotc" value="<?php echo md5($nobot); ?>" />
|
||||
|
||||
<!-- Si j'ajoute "required", ça foire pour demander à changer de question... donc on va faire sans, de toute façon c'est ensuite testé par php. -->
|
||||
<label for="name"><?php echo $txt['name']; ?></label>
|
||||
<input type="text" id="name" name="name"><br><br>
|
||||
<label for="email"><?php echo $txt['mail']; ?></label>
|
||||
<input type="email" id="email" name="email" ><br><br>
|
||||
<label for="subject"><?php echo $txt['subject']; ?></label>
|
||||
<input type="text" id="subject" name="subject" ><br><br>
|
||||
<label for="message"><?php echo $txt['message']; ?></label><br>
|
||||
<textarea id="message" name="message" rows="4" cols="50" ></textarea><br><br>
|
||||
<h3>Mesure anti spambot</h3>
|
||||
<p>Parce que je n'aime pas le spam, je n'aime pas les messages douteux, et j'aime pas trop qu'on me cause en fait. Attention à vos réponses, je vous bannis de mes serveurs si vous êtes méchants. </p>
|
||||
<!-- Questions -->
|
||||
<p><label for="answer"><?php echo htmlspecialchars($current_question); ?></label>
|
||||
<input type="text" id="answer" name="answer"><input type="submit" name="new_question" value="Demander une autre question">
|
||||
</p>
|
||||
|
||||
<!-- Antibot -->
|
||||
<input id="nobotc" type="checkbox" name="nobotc" value="<?php echo md5($nobot); ?>" />
|
||||
<label for="nobotc"><?php echo $txt['human']; ?></label>
|
||||
<p style="position: absolute; visibility: hidden; left: -5000; top: -5000">
|
||||
<br><input id="nobots" type="checkbox" name="nobots" value="<?php echo time(); ?>" />
|
||||
<label for="nobots"><?php echo $txt['bot']; ?></label>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
<input type="submit" name="submit_form" value="<?php echo $txt['submit_button']; ?>">
|
||||
|
||||
<label for="nobotc"><?php echo $txt['human']; ?></label>
|
||||
<p style="position: absolute; visibility: hidden; left: -5000; top: -5000">
|
||||
<input id="nobots" type="checkbox" name="nobots" value="<?php echo time(); ?>" />
|
||||
<label for="nobots"><?php echo $txt['bot']; ?></label>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Questions -->
|
||||
<div>
|
||||
<div>
|
||||
<label for="answer"><?php echo htmlspecialchars($current_question); ?></label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="text" id="answer" name="answer">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Envoyer -->
|
||||
<div>
|
||||
<ul class="actions">
|
||||
<li><input type="submit" name="new_question" value="Demander une autre question"></li>
|
||||
<li><input type="submit" name="submit_form" class="primary" value="<?php echo $txt['submit_button']; ?>"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue