question de cookie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : question de cookie

Re: question de cookie

par CMBP_Xavier » 30 déc. 2010, 13:25

Avec plaisir.

Ceci dit, la remarque de Telnes est correcte sur le fond : de façon générale il faut éviter d'envoyer des données à l'affichage (echo etc.) avant de faire un setcookie (ce sera idem pour les sessions et les redirections, qui manipulent également les entêtes de réponse http).

Dans ce cas précis, cela ne produisait pas d'erreur (qui aurait été du genre "cannot modify header information..."), car le serveur est probablement règlé en output_buffering = on (en gros, la page est envoyée d'un coup, après exécution du script), ce qui évite ce problème.

On peut aussi utiliser ob_start pour le même résultat (et rester indépendant du règlage serveur).

Bien cordialement,

Xavier

Re: question de cookie

par tintin » 30 déc. 2010, 13:04

Quand je disais que j'étais débutant ... quelle erreur!
Merci Xavier, ça marche effectivement mieux ainsi ;-)
Tintin

Re: question de cookie

par telnes » 30 déc. 2010, 12:48

hello

ne met pas de echo/print ... avant l'utilisation de cookie.
<?php

if (!isset($_COOKIE["TOTO"])) //cmbp
        {
        setcookie("TOTO","OK",time()+600); // Cookie inexistant donc création
        $fp = fopen("compteur.txt","r+");
        $visiteurs=fgets($fp,10);
        $visiteurs++;
        fseek($fp,0);
        fputs($fp,$visiteurs);
        fclose($fp);
        
        }
else
        {echo '.....';
        }
echo 'Le cookie vaut '.$_COOKIE['TOTO'];
?>
ca donne quoi ?

++

Re: question de cookie

par CMBP_Xavier » 30 déc. 2010, 12:44

Bonjour,

le test est fait sur le cookie " TOTO" (espaceTOTO), qui n'existe pas (et n'existera jamais).

je pense que c'est l'origine du problème.

Bien cordialement,

Xavier

question de cookie

par tintin » 30 déc. 2010, 12:41

Bonjour à tous (et à toutes ...)

Débutant en php, je veux incrémenter le compteur de visites compteur.txt si le cookie TOTO n'existe pas.
Mon code php est le suivant :
<?php
echo 'Le cookie vaut '.$_COOKIE['TOTO'];
if (!isset($_COOKIE[" TOTO"]))
	{
	echo '..';
	setcookie("TOTO","OK",time()+600); // Cookie inexistant donc création
	$fp = fopen("compteur.txt","r+");
	$visiteurs=fgets($fp,10);
	$visiteurs++;
	fseek($fp,0);
	fputs($fp,$visiteurs);
	fclose($fp);
	
	}
else
	{echo '.....';
	}
?>
J'ai une erreur car le message 'le cookie vaut Ok ..' s'affiche ce qui semble pour moi incompatible. En effet, la valeur Ok du cookie TOTO s'affiche suivie des 2 points ce qui veut dire que le cookie TOTO n'existe pas.
Pourriez-vous éclairer ma lanterne ?
Merci d'avance