Anti-flood

administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006 - 3 avril 2006 à 11:54
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 4 avril 2006 à 18:35
Bonjour,

J'aimerais mètre un anti-flood sur un formulaire, voici le code

<form name="demande" method="POST" action="../formulaire/verifdemande.php">
<table id="formulaire" border="0">

----, Non:

</td>*,

----

Pr&#233;nom:, *,

----

Tel/GSM, ,

----

E-mail:, *,

----

Annonce:

<textarea name="message" cols=60 rows=4 onKeyDown="limiteur();" onKeyUp="limiteur();"></textarea>,

----

<?php
$rep_images = '../images/';
$nbrchars = 5;
session_start();
if(isset($_POST['verification'])){
if($_SESSION['code'] != $_POST['verification']){
echo 'code incorrect';
}else{
echo 'code correct';
}
}
$dossier = @opendir($rep_images);
while ($fichier = @readdir($dossier)) {
if( !is_dir($fichier) ){
$num[] = $fichier;
}
}
@closedir($dossier);
for($i=0; $i<$nbrchars; $i++){
$rand = rand(0,$nbrimg);
$code .= $rand;
$codeimg[] = $rand;
}
foreach($codeimg as $cle=>$valeur) {
$imagecode .= '';
}
$_SESSION['code'] = $code;
echo $imagecode.'';
?>

</form>
* Champs Obligatoires

</td>
</tr>
</tbody>

Avec la ligne 'session_start();', j'ai une erreur sur cette ligne la, si je la commente, que je tape ou pas le code de vérification, sa passe.

Une idée du problème ?

43 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 10:13
"quoi quoi quoi ?!?!?!? le code de vérification du picto !!!! j'ai juste 2 fichiers, un index et un image..."
=>
Tu traites bien ton formulaire, non ?
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 10:16
a oui, oupsss

<?
$point = strpos($email,".");
$aroba = strpos($email,"@");
if(empty($nom) || empty($prenom) || empty($email) || empty($point) || empty($aroba))
{
echo("Tous les champs ne son pas correctement rempli ou l'adresse mail est incorrecte, merci de v&#233;rifier");
echo("Veuillez recommencer");
return;
}
?>
<!--<meta http-equiv="refresh" content="3; URL=index.php">-->

J'avais éssayer de déplacer sa de dans,

if($_POST['code']===$_SESSION['code'])
{
echo 'Identification rИussie

';
}
else
{
echo 'Identification ИchouИe

';
}

Mais sa me dit toujours code erreur...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 10:18
Quelle erreur?
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 10:21
ben que le code est pas bon, et malgré qu'il étais bien tapé ou pas, en plus les données partais quand mème dans la base mysql.....

Je devient fous, je capte plus rien....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 10:27
TU fais un session_start () dans la page traitant le formulaire...?
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 10:29
non
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 10:50
Ben mets le...lol. Comment tu veux utiliser le code que tu as enregistré dans la session si tu ne démarre pas les sessions...?
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 11:01
J'ai fai un test, j'ai ma page de base avec mon formulaire.php, j'ai créer un fichier security.php dans le quelle j'ai copier le contenu du code qui ce trouve dans le fichier index.php de l'archive zip, j'ai juste modifier le formulaire comme suite

<form method="post" action="verifdemande.php">
<label for="code">Code :</label>





</form>

et bien si je clique sur Envoyer sans mètre le code de vérification, miracte sa passe, alors la je capte plus rien, sa passe outre du code....
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 11:32
Il faut TRAITER ton formulaire! Et dans ce traitement, démarrer la session, puis vérifier que le code saisi est le même que celui présent dans la session! ET ne pas faire passer si ce n'est pas le cas.
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 11:38
Seraise trop demander un exemple ??? car pour moi je début dans le domaine....

Si dieu existe qu'il agise maintenant...
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 11:51
voila, j'ai une solution, merci de me dire si c'est corrècte comme idée....

<?php
ob_start();
session_start();
header('content-type:text/html;charset=iso-8859-1');
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">';
if(isset($_POST['code']) AND isset($_SESSION['code']))
{
if($_POST['code']===$_SESSION['code'])
{
echo 'Identification rИussie

';
header("Location: verifdemande.php\n\n");
}
else
{
echo 'Identification ИchouИe

';
echo("Veuillez recommencer

");
}
unset($_SESSION['code']);
}
$passe='';
$caracteres = 'abcdefghijklmnspqrstuvwxyz123456789'; //le 0 et o ne sont pas prИsents Ю cause des confusions frИquentes
$cnt=strlen($caracteres)-1;
for($i = 0; $i < 7; $i++)
{
$passe.=$caracteres{mt_rand(0,$cnt)};
}
$_SESSION['code']=$passe;
ob_flush();
?>
<form method="post" action="?">
<label for="code">Code :</label>





</form>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 12:16
Par exemple
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 12:22
seul problème, c'est que les données du formulaire arrive vide....

J'en ai mard que personne sais m'aider...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 12:27
T'as 1 donnée dans le formulaire que tu viens de montrer là...le code. Il n'arrive sûrement pas vide.
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 13:45
Je l'aise tombé sur ce forum sa fais 4 jours que je tourne en rond avec des réponces qui tourne autour du pot.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 14:48
Lol...ok, comme tu veux.
Tu ne fais pas ce qu'on te demande, tu ne cherches pas par toi-même en fonction des indications que l'on te donne...Et de plus, tu es insultant.
Bon courage aux autres forums...
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 15:13
Je veux bien éssayé tous ce que on veux , mais avec est infos précise....

c'est comme si tu me demandais comment on install un serveur linux et que je répond mes le cd dans le lecteur....

C'est exactement la mème chause, a par que je suis pas du genre a faire de la rétention d'information pur...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 avril 2006 à 15:25
Tu as un code complet qui fonctionne!
Je t'ai en outre dit qu'il fallait mettre session_start () dans ta page traitant le formulaire! Ton picto fait partir du formulaire, donc le picto doit être traité dans la page traitant fon formulaire.
Tu veux quoi en plus...?? Un code tout prêt? Tu l'as! T'appelles ça de la rétention d'informations toi...? Jre ne vois pas comment on peut te fournir plus qu'un code complet et opérationnel faisan t ce que tu veux faire!
Maintenant, tu veux aller voir ailleurs si on te donne plus? Vas-y, et bon courage aux autres. Moi, j'abandonne, tu as toutes les cartes en main, et même largement plus que la plupart des gens venant poser une question ici.
0
administrateurlinux Messages postés 34 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 4 avril 2006
4 avril 2006 à 16:13
je croie que y a quelque chause qui est pas bien passé, le session_start() y est

regarde le poste de cette heur la... 3 ème ligne....
Re : Anti-flood Posté par : administrateurlinux le 04/04/2006 09:50:13
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 avril 2006 à 18:28
"

Je l'aise tombé sur ce forum sa fais 4 jours que je tourne en rond avec des réponces qui tourne autour du pot."

Bah qu'est-ce que t'attends ? tu dis que tu laisses tomber puis finalement tu continues à poster... assume au lieu de parler ...

PS : ne viens pas sur mon forum, tu te feras bouler pareil...

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous