Cookie en PHP

Résolu/Fermé
ultracodeeee - 20 juin 2012 à 21:31
 ultracodeeee - 21 juin 2012 à 09:27
Bonjour,
je suis programmeur débutant en PHP, je n'arrive pas à créer un cookie en php voici mon code étant sensé le créer : setCookie('djgeek', '', time() - 3600, '/');

et un code étant sensé vérifier son existence : if (isset($_COOKIE['djgeek']))

mais il ne crée pas le cookie donc forcément mon code ne se débloque pas :/
merci à l'avance

A voir également:

5 réponses

Utilisateur anonyme
21 juin 2012 à 08:40
Une autre fois, évite d'écrire voici le code en entier : quand tu ne mets pas le code en entier. Ça évite un aller-retour de question-réponse. Dis-toi bien que nous ne réfléchissons que d'après les éléments que tu donnes, et que si tu donnes des informations inexactes, ça ne fait pas avancer ton problème.
Donc tu envoies bien des informations ( <!DOCTYPE...<body> ) avant d'envoyer des en-têtes (setcookie)
L'envoi des informations en HTTP se déroule en 2 temps : d'abord l'envoi des en-têtes (informations de session, informations POST, cookies...) PUIS les "données utiles" (page HTML ou image ou autre)
Quand l'envoi des données et commencé, plus question de revenir aux en-têtes.
Dans ton cas, rien n'empêche de faire une petite partie de ton traitement avant le <!DOCTYPE> pour que le cookie soit envoyé avant les données.
1
ultracodeeee
21 juin 2012 à 08:58
merci :) et désolé je n'avais pas fait attention je vais remodeler mon script :) merci encore :)
0
ultracodeeee
21 juin 2012 à 09:00
mais le problème c'est que le cookie ne doit être crée que si le code est bon :/
0
ultracodeeee
21 juin 2012 à 09:02
il faudrait en faite faire un sorte que si le code entré est bon, le cookie se créer :/
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
20 juin 2012 à 21:34
c'est parce que tu lui dit d'expirer à t=3600s

du coup, il expire dés sa création parce que t=3600s, c'est le 1er janvier 72 à 1h du matin ^^

regarde ici : https://www.php.net/manual/fr/function.setcookie.php
0
Utilisateur anonyme
20 juin 2012 à 23:30
Bonsoir

Presque d'accord avec Templier Nocturne

Sauf que time()-3600, ce n'est pas le 1er janvier 1972 (1970 ?) à 1 h du matin. C'était il y a une heure.
C'est time()+3600 que tu voulais mettre sans doute (le cookie expirera dans une heure)
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
20 juin 2012 à 23:34
oui, j'ai bugué dans la ligne, j'ai lu "setCookie('djgeek', time(), 3600, '/'); "

mettons ça sur le compte de la fatigue liée au bac ;)
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
20 juin 2012 à 23:39
et c'est bien 1970 XD
0
Utilisateur anonyme
20 juin 2012 à 23:46
Bac en cours? Alors je te dis... Enfin, non ça ne se dit pas.
Et tu devrais être au lit, garnement, tu vois bien que tu ne tiens pas le coup.^^
Moi j'ai passé le mien il y a 38 ans, je ne tiens pas le coup non plus. Bonne nuit.
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
21 juin 2012 à 00:58
Ca se dit peut être pas, mais comme l'idée est la je te remercie :)

Quamta dormir, je demande que ça, mais aller au bac en ne connaissant pas une des notions importante, j'ai préféré ne pas m'y risquer ^^

Bonne nuit :)
0
ultracodeeee
21 juin 2012 à 07:30
Merci ! :D
0
Utilisateur anonyme
21 juin 2012 à 08:04
Bonjour

Il s'agit d'une erreur différente, maintenant. Visiblement, tu envoies des en-têtes après avoir envoyé des données, ce qui est interdit par le protocole HTTP.
Mais ce n'est pas avec le script tel que tu nous le donnes, car il ne présente pas ce problème, les sorties commencent ligne 15 et non pas 24, et je ne vois pas quels entêtes sont envoyées après cette ligne.
Si c'est bien administration.php que tu nous montres, il en manque le début. Ou alors il a été modifié depuis ce message d'erreur.
0
ultracodeeee
21 juin 2012 à 08:26
voici le fichier entier :

<!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">
<head>
<link rel="shortcut icon" type="image/png" href="images/favicon.png" />
<title>DjGeeK téléchargement</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-language" content="fr" />
<link href="style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="js/jquery-easing-1.3.pack.js"></script>
<script type="text/javascript" src="js/jquery-easing-compatibility.1.2.pack.js"></script>
<script type="text/javascript" src="js/coda-slider.1.1.1.pack.js"></script>
<script type="text/javascript" src="js/js.js"></script>
<!--[if lt IE 10]>
<style>
.cadre {behavior: url(js/PIE.php);}
</style>
<![endif]-->
<!--<style>
#Table_download {-->

</head>
<body>
<?php
$ident = $_POST['pseudo'];
$login = $_POST['pass'];
$verif = "ident";
$confirm = "pass";
$id = "cadre";
if ($ident==$verif && $login==$confirm)
{

setCookie('djgeek', '', time() + 3600, '/');

include("fileread.php");
$fichier = $_GET['fichier'];

echo '
<script langage="javascript">
alert(\'Code bon !\');
</script>
<div id="cadre">
Code bon <strong>'.$ident.'
</strong></div><div id="contenu"></div>';

$fonction = fopen("compteur.txt","r");
$conteneur = fgets($fonction);
echo '<center><div id="contenu" style="position:absolute;left:200px;top:200px;border-radius:20px;"><div id="cadre">Nombres de requêtes sur le site : '.$conteneur.'</div></div><br /><br /><br /><img src="images/icone.png" /></center>';
fclose($fonction);

$dirname = './';
$dir = opendir($dirname);
while($file = readdir($dir))
{
if($file !='.' && $file !='..' && !is_dir($dirname.$file))
{
$pathfichier = $dirname.$file;
$sizefichier = filesize($pathfichier);
echo '
<br /><br />
<div id="affichage">Fichier FTP:
<a href="testfile.php?fichier='.$dirname.$file.'">'.$dirname.$file.'</a>

<a href='.$dirname.$file.' target=_blank class="type1">'.$file.'</a>';
//include("fileread.php.php");


}
}
closedir($dir);
}
else
{
echo "ERREUR";
}
?>
</body>
</html>
0

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

Posez votre question
ultracodeeee
21 juin 2012 à 09:27
j'ai réussis c'est parfait :D
0