Cookie en PHP
Résolu
ultracodeeee
-
ultracodeeee -
ultracodeeee -
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
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:
- Cookie en PHP
- Easy php - Télécharger - Divers Web & Internet
- Supprimer cookie - Guide
- Expert php pinterest - Télécharger - Langages
- 400 bad request request header or cookie too large ✓ - Forum Réseaux sociaux
- Php alert ✓ - Forum PHP
5 réponses
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.
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.
ultracodeeee
merci :) et désolé je n'avais pas fait attention je vais remodeler mon script :) merci encore :)
ultracodeeee
mais le problème c'est que le cookie ne doit être crée que si le code est bon :/
ultracodeeee
il faudrait en faite faire un sorte que si le code entré est bon, le cookie se créer :/
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
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
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)
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)
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.
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.
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>
<!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>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question