Salut, je suis un noob... j'ai tout de meme essayé de sécuriser mon formulaire mais il a un un probleme, aidez moi s'il vous plait !!
Alors je souhaite empecher les utilisateur d'envoyer plein de fois le formulaire, jai donc utiliser SESSION et COOKIE.
Quand le message est envoyé, j'ajoute 1 à la variable "contact" et au bout de 3 fois, le cookie "stop" est créé et s'il existe, il redirige vers la page d'erreur.
Mon problème actuel est que :
au debut tout va bien, ca affiche "3" mais de suite apres, quand je passe à 2 envois restant et bien ca reste à 2 (quand je continue a en envoyer)...
je comprends pas dutout ce qui se passe...
merci bien
Voici mon code :
Modifié par to175 (08 Aug 2013 - 00:44)
Alors je souhaite empecher les utilisateur d'envoyer plein de fois le formulaire, jai donc utiliser SESSION et COOKIE.
Quand le message est envoyé, j'ajoute 1 à la variable "contact" et au bout de 3 fois, le cookie "stop" est créé et s'il existe, il redirige vers la page d'erreur.
Mon problème actuel est que :
au debut tout va bien, ca affiche "3" mais de suite apres, quand je passe à 2 envois restant et bien ca reste à 2 (quand je continue a en envoyer)...
je comprends pas dutout ce qui se passe...
merci bien
Voici mon code :
<?php
session_start();
if(isset($_COOKIE["reste"]))
{
if($_COOKIE["reste"]==0||$_COOKIE["reste"]<0)
{
setcookie("stop", 1, time()+300);
if(isset($_COOKIE["stop"])){
echo 'cookie OK';
exit('Quota atteint!');
}else{
echo 'erreur cookie';
}
setcookie("reste", 3, time()+300);
}
}
else
{
setcookie("reste", 3, time()+300);
}
$ip = $_SERVER["REMOTE_ADDR"];
$name = htmlentities($_POST['name']);
$email = htmlentities($_POST['email']);
$message = htmlentities($_POST['message']);
$to = 'mecraft.site@gmail.com';
$subject = 'MECRAFT';
$human = htmlentities($_POST['human']);
$body = "Pseudo: $name\nEmail: $email\n\nMessage:\n $message\n\nip: $ip";
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="contact.css" />
<script src="/Ress/styles/script.js"></script>
<section>
<?php
if ($_POST['envoyer']) {
sleep(1);
if ($name != '' && $email != '') {
if ($human == 'VERT') {
if (mail ($to, $subject, $body)) {
?>
<p style="color:#00CC00;">
<?php
echo 'Ton message à été envoyé!';
$_COOKIE["reste"] = $_COOKIE["reste"] - 1;
?>
</p>
<?php
} else {
?>
<p style="color:#CC0000;">
<?php
echo 'Y\'a eu un problème! Ajoute le skype : staffto175';
?>
</p>
<?php
}
} else if ($_POST['envoyer'] && $human != 'VERT') {
?>
<p style="color:#CC0000;">
<?php
echo 'Tu as mal répondu à la question anti-spam!';
?>
</p>
<?php
}
} else {
?>
<p style="color:#CC0000;">
<?php
echo 'Tu dois remplir tous les champs!!';
?>
</p>
<?php
}
}
?>
<br>
Ton ip : <? echo $_SERVER["REMOTE_ADDR"]; ?><br>
Il te reste <? echo $_COOKIE["reste"]; ?> envois.<br>
<br>
<form method="post" action="contact.php" style="border-right:1px;">
<label>Pseudo</label>
<input name="name" placeholder="SwiftFallow">
<label>Email</label>
<input name="email" type="email" placeholder="exemple@mail.com">
<label>Message</label>
<textarea name="message" placeholder="Message" maxlength="500"></textarea>
<label>Quelle couleur est issue du jaune mélangé au bleu? (Anti-spam)</label>
<input name="human" placeholder="éCRIVEZ EN MAJ" maxlength="4">
<center><input type="image" name="envoyer" src="/Ress/imgs/boutons/valide.png" value="1" style="height:50;width:50;boder:none;"><center>
</form>
</section>
Modifié par to175 (08 Aug 2013 - 00:44)