Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: hanunam le le 09-06-2006 a 01:03:10

Titre: Problème de cookis
Posté par: hanunam le le 09-06-2006 a 01:03:10

Bonjour

Donc quand j'arrive sur mon site, le css mis en place est funky_design
si je passe sous default_design avec mon menu
Et que une fois sous default_design je change de page je reviens sous le funky_design.

ce problèle ce fait que ce soit avec ce code :



Code:


<?php

   if (isset($_GET['style']))
{
   if ($_GET['style'] =="funky_design")
      {
         setcookie('design', 'funky_design', time() + 365*24*3600);
         $design = 'funky_design';
      }
   elseif ($_GET['style'] =="default_design")
      {
         setcookie('design', 'default_design', time() + 365*24*3600);
         $design = 'default_design';
      }
}
   elseif (!isset($_COOKIE['design']))
      {
         setcookie('design', 'funky_design', time() + 365*24*3600);
         $design = 'cannabis_design';
      }
   else { $design = $_COOKIE['design']; }

   echo '<link rel="stylesheet" media="screen" type="text/css" title="'.$design.'" href="'.$design.'.css" />'


?>


là il m'indique :
Citation:
Warning: Cannot modify header information - headers already sent by (output started at /home/hanunam/www/Accueil.php:1) in /home/hanunam/www/design.php on line 8


ou avec ce code :


Code:

<?php

if(isset($_GET['style']))
{
if ($_GET['style'] == funky_design)
{
$_COOKIE['design']="funky_design";
}
elseif ($_GET['style'] == default_design)
{
$_COOKIE['design']="default_design";
}
}
if(!isset($_GET['style']))
{
$_COOKIE['design']="funky_design";
}
echo '<link rel="stylesheet" media="screen" type="text/css" title="'.$_COOKIE['design'].'" href="'.$_COOKIE['design'].'.css" />'

?>



ça me marque pas d'erreur mais ça marche pas :D

Titre: Re:Problème de cookis
Posté par: real34 le le 09-06-2006 a 07:39:38

Pour ta seconde solution, il manque un ; à la ligne de ton echo.

Pour ta première version, ton problème est du au fait que tu envoie un cookie sans doute après avoir échrit quelque chose dans le flux de sortie de la page.

Titre: Re:Problème de cookis
Posté par: hanunam le le 09-06-2006 a 11:30:33

Citation de: real34 le le 09-06-2006 a 07:39:38
Pour ta première version, ton problème est du au fait que tu envoie un cookie sans doute après avoir échrit quelque chose dans le flux de sortie de la page.


Non j'ai fais gaf à ça :D

sinon :


ça marche toujours pas avec ce code :


Code:

<?php

if(isset($_GET['style']))
{
if ($_GET['style'] == funky_design)
{
setcookie('design', 'default_design', time() + (3600*24*365));
$_COOKIE['design']="funky_design";
}
setcookie('design', 'default_design', time() + (3600*24*365));
elseif ($_GET['style'] == default_design)
{
setcookie('design', 'default_design', time() + (3600*24*365));
$_COOKIE['design']="default_design";
}
}
if(!isset($_COOKIE['design'])) //si le aucun cookie n'est chargé
{
   setcookie('design', 'default_design', time() + (3600*24*365));
$_COOKIE['design']="funky_design";
}
echo '<link rel="stylesheet" media="screen" type="text/css" title="'.$_COOKIE['design'].'" href="'.$_COOKIE['design'].'.css" />'

?>

Citation:
Parse error: parse error, unexpected T_ELSEIF in /home/hanunam/www/design.php on line 11

Titre: Re:Problème de cookis
Posté par: real34 le le 09-06-2006 a 15:44:01

Normal, tu as : setcookie('design', 'default_design', time() + (3600*24*365)); entre la fin de tonif et le début de ton else if !!!

Aussi, il manque un ; à la fin de ton code.

Enfin, vas faire un tour ici : http://fr3.php.net/manual/fr/function.setcookie.php car je ne pense pas que tu ai bien compris le fonctionnement des cookies.
En effet, $_COOKIE['design']="default_design"; ne modifie pas ton cookie il me semble ;)

Titre: Re:Problème de cookis
Posté par: hanunam le le 09-06-2006 a 16:31:47

maintenant utilisé ce code qu'on m'a donné et qui marche du tonnerre, c'est les sessions :


Code:
<?php
session_start();
?>
<html>
<head>
<title>Accueil</title>
<?php

if(!isset($_SESSION['design']))
{
echo '<link rel="stylesheet" media="screen" type="text/css" title="default_design" href="default_design.css" />';
}
else
{
echo '<link rel="stylesheet" media="screen" type="text/css" title="'.$design.'" href="'.$design.'.css" />';
}
?>


Code:
<h3>Change le design du site :D :</h3><br />
<form name="mescss" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<select name="style">
<option value="1">funky_design</option>
<option value="2">default_design</option>
</select>
<input type="submit" value="Valider" />
</form>


Code:
<?php
if ($style== '1')
{
$design = 'funky_design';
}

else {
$design = 'default_design';
}

?>

Donc voilà mon problème est résolu
Merci à tous ceux qui ont essayé de m'aider


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.