Pb php

Fermé
cRiMi - 11 févr. 2008 à 14:23
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 - 11 févr. 2008 à 14:31
Bonjour,
sur mon site, je veux un formulaire permettant de changer le style du site via les feuilles css. Je vous montre le code vous comprendrez mieux comment je veux procéder. mon soucis est que je veux utiliser un cookie. il le cookie n'existe pas, il faut le créer, et c'est au setcookie que mon navigateur me dit : "Warning: Cannot modify header information - headers already sent by (output started at /var/www/62/d/e/r/deray.fr/www/index.php:4) in index.php on line 20"

je me suis renseigné, je sais à quoi correspond l'erreur mais je n'arrive pas à la réparer.

Merci à ceux qui voudront bien m'aider.


<?php

$timestamp_expire = time() + 365*24*3600;

if (isset($_COOKIE['style'])) // Si le cookie existe
{
	if (isset($_POST['style'])) // Si il a été mis à jour, mettre à jour le cookie
		{if ($_POST['style'] == '-- Style --') {} // Si "-- style --" a été choisi, ne rien faire
		 else {setcookie('style', $_POST['style'], $timestamp_expire);} // Sinon, envoyer le cookie qu'il faut
		}
}

else {setcookie('style', 'orange', $timestamp_expire);} // Si le cookie n'éxiste pas, le créer avec le style orange par défaut

?>
<head>
[...]
  
  <link rel="stylesheet" media="screen" type="text/css" title="Design" href="style/design_
  <? 
  if (isset($_COOKIE['style'])) {echo $_COOKIE['style'];} // Si le cookie existe, définir le style en fonction
  else {echo "orang";} // si le cookie n'existe pas, le style est "orange"  
  ?>.css">

A voir également:

1 réponse

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
11 févr. 2008 à 14:31
Ton script ci-dessus n'est-il pas incomplet ? N'y-a-t'il pas qqch avant le <?php ?

Il faut déplacer ce "qqch" après les appels à setcookie.

C'est d'aikkeurs ce que te ditle diagnostic avec deux infos interessantes :

- l'appel qui provoque l'erreur : in index.php on line 20
- la ligne où la première "sortie" a été faite : (output started at /var/www/62/d/e/r/deray.fr/www/index.php:4)

Avec tout ça et un peu de reflexion tu devrais résoudre ton pb.
0