Cookie en PHP

Résolu
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

5 réponses

  1. 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. merci :) et désolé je n'avais pas fait attention je vais remodeler mon script :) merci encore :)
    2. mais le problème c'est que le cookie ne doit être crée que si le code est bon :/
    3. il faudrait en faite faire un sorte que si le code entré est bon, le cookie se créer :/
  2. 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)
    1. 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 ;)
    2. et c'est bien 1970 XD
    3. 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.
    4. 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 :)
    5. Merci ! :D
  3. 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.
    1. 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>