Pb de cookie
le 28/04/2005 à 18:44
Dimi
Voila j'ai fais une shoutbox vite fait et je voudrai eviter le flood !
Quand le message est saisi on verifi que le cookie n'existe pas et on en crée un cookie ( durant 1min ) sinon si le cookie existe le message n'est pas posté ! voi le mon code :
if (isset($_POST['ok']) && $_POST['ok']=='[ Shout ]') {
if (!isset($_COOKIE['test'])){
$expire = 60;
setcookie('test','antiflood',(time()+$expire));
include("admin/connection.php");
mysql_query('INSERT INTO xxx VALUES("", "'.$_POST[1].'","'.$_POST[2].'")');
}
}
Je comprend pas pourquoi ca ne marche pas... surement que je n'ai pas tro compris comment fonctionne "isset" ou alors l'utilisation des cookies je sais pas.
Si quelqu'un sait d'ou viens l'erreur :)
merci d'avance ++
Salut Dimichkaille,
Je pense que tu devrais voir si le cookie a bien été creer (va voir dans le dossier de windows chepakoi), sinon ton utilisation du isset a l'air correcte ,
a part la :
if(isset($_POST['ok']) && $_POST['ok']=='[ Shout ]')
je pense que tu peux le remplacer simplement par :
if($_POST['ok']=='[ Shout ]') {
Ciao,
I am singing in the rain , I am happy again !!
Salut,
ton code a l'aire bon mais est ce que le cookie est accepté ?
ton système peut etre utile mais trop simple a passer ( refus des cookie provenant de ton site )
tu devrait afficher tes variable afin d'etre sur qu'ellle existe !
Il en faut peu pour être heureux !!!!!
lefounard ton if donne un message d'erreur si le champ n'existe pas !!!!
@+
Il en faut peu pour être heureux !!!!!
pourquoi ?
I am singing in the rain , I am happy again !!
si la variable n'existe pas, le test if ne se fera pas et il passera a la suite ?! non, je vois pas l'erreur qui pourrait etre afficher ?
I am singing in the rain , I am happy again !!
le 28/04/2005 à 19:48
Dimi
le cookie est bien crée mais meme au premier message quand il existe pas ca ne rentre pas le message ds la bdd :/
Si tu dis que le cookie a été creer, ca veut dire que les conditions if sont vérifier et que l'execution du script parcour bien le bloc d'instruction qui est dans le if, donc le probleme vient du bloc d'instruction : ton insertion SQL doit etre mauvaise !
Sinon si les conditions if ne sont pas verifier et normalement le cookie ne devrait pas exister , vu que c le premier message ! ou je pense qu'il y ait des chance que le cookie soit encore présent sur ton pc, ou soit encore contenu en mémoire par ton navigateur web.
Sur ce je te propose d'effectuer un débuggage en mettant des echo dans tes ifs et dans tes else !
Ciao,
I am singing in the rain , I am happy again !!
Au fait j'ai fait un truc similaire avec un goldenbook pour l'antiflodage , je rajoutais l'ip avec le message dans la bdd et comme ca je limitais le nombre de message. En plus des cookies ca renforce l'anti-floodage mais bon c'est toujours pareil si le gars change d'ip ou supprime ses cookies, ton truc n'est plsu valable.
Le mieu reste les sessions !
Ciao,
I am singing in the rain , I am happy again !!
le 28/04/2005 à 21:23
Dimi
si je vire cette ligne :
if (!isset($_COOKIE['test'])){
tout marche nikel lol ca insere bien ds la bdd c'est pour ca que je pige rien...
y crée bien le cookie mais il n'insere aucun message ds la bdd...