Salut

J'ai installé le code permettant de changer les styles
Il marche très bien en local chez moi
Par contre j'ai une erreur
a écrit :
Warning: Cannot modify header information - headers already sent by (output started at /data/users/v/vinaunaturel/00_naturel.php:1) in /data/users/v/vinaunaturel/10_switch.php on line 9

quand je le met sur un serveur (j'ai essayé redby.info et free)

Par contre l'erreur n'est pas "constante" elle n'apparait que si je suis sur une page (la 1ère) ; sur les autres page ca marche nickel

j'ai épluché les topic ici ; j'ai déclaré le switch.php au tout début et sans espace mais rien n'y fait

Je vous laisse le lien est les codes :
-http://www.vinsnaturels.net/

la page haut.php commune à toutes le pages :
<?php require("10_switch.php");?>
<!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/x-icon" href="favicon.ico" />
	<title>Salon des vins naturels</title>
	<meta http-equiv="Content-Type" content="text/php; charset=utf-8" />
	<meta http-equiv="Content-Style-Type" content="text/css" />
	<meta id="language" content="fr" />
	<meta http-equiv="Content-Language" content="fr" />
	<meta id="copyright" content="Salon des vins naturels de Grenoble" />
	<meta id="keywords" content="Salon , vin , vins , naturel , naturels , Grenoble , meylan , rochasson" />
<?php
echo "		<style type=\"text/css\" media=\"screen\">\n" ;
echo "			@import url(http://vinaunaturel.redby.info/".$css."/style.css) ;\n" ;
echo "		</style>\n" ;
?>		
	<script type="text/javascript" src="script.js"></script>
</head>
	<body>
	<div id="conteneur">		
		<div id="header"></div>
		<ul id="menu">
			<li id="mvin"><a href="http://www.vinsnaturels.net/00_naturel.php">Vin naturel</a></li>
			<li id="mplan"><a href="http://www.vinsnaturels.net/01_plan.php">Plan d'acc&#232;s</a></li>
			<li id="mvisiteur"><a href="http://www.vinsnaturels.net/02_visiteurs.php">Visiteurs</a></li>
			<li id="mexposant"><a href="http://www.vinsnaturels.net/03_exposants.php">Exposants</a></li>
			<li id="mpresse"><a href="http://www.vinsnaturels.net/04_presse.php">Presse</a></li>
			<li id="mpartenaire"><a href="http://www.vinsnaturels.net/05_contacts.php">Partenaires</a></li>
		</ul>
		<div id="style">
			<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>"><p>
				<fieldset>
				<select name="style">
				<option value="style_lateral" selected="selected">Changer le style</option>
				<option value="style_classique">Horizontal</option>
				<option value="style_lateral">Lat&#233;ral</option>
				<option value="style_lateral2">Lat&#233;ral 2</option>
				<option value="style_lateral3">Lat&#233;ral 3</option>
				<option value="bouchon">Aucun</option>
			</select>
			<input type="submit" name="change_style" value="Ok" /></p>
          </fieldset>
			</form>
		</div>


la page switch.php
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
	if(file_exists("./".$_POST['style']."/style.css"))
	{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite

		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'] ;
	}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'] ;
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "style_classique" ;
}
?>


la page 00_naturel.php (celle qui merde)
<?php
require("10_haut.php");
?>
	<div id="contenu">
	<h2>Du vins naturel, qu’est ce que c’est ? </h2>

<p>Du vins produit par des vignerons qui ont le goût de faire du raisin avec du raisin le plus naturellement possible.

Un vin n'est pas forcément organoleptiquement bon parce qu'il est bio, 
</p>


	</div>
<?php require("11_bas.php");?>


Si quelqu'un avait une idée car moi je sèche

Merci d'avance
Modifié par Mendoz (04 Oct 2006 - 21:23)
Salut

Bon j'ai essayé pleins de choses
- j'ai enlever les includes et tout mis sur la meme feuille
- j'ai essayé de rajouter un idem au menu
- j'ai rajouté l'item au menu en caché
- rajouté une page intermédiaire

rien n'y fait

je sais plus quoi trop essayé

Si quelqu'un pouvait me proposer d'autres essai je suis prenneur

merci d'avance !!


Edit :

Quelqu'un pourrai juste m'explique pourquoi ca ne le fait que sur une page alors que toutes mes pages sont faites pareilles ? Smiley confus
Modifié par Mendoz (07 Mar 2006 - 15:34)
Bonjour,

J'fais remonter ce message car j'ai moi aussi ce problème sur un de mes sites. l'erreur
Warning: Cannot modify header information - 
headers already sent by (output started at C:\wamp\www\sitemh\index.php3:2) in 
C:\wamp\www\sitemh\inc-public.php3(60) : eval()'d code on line 14

apparait systématiquement dès que j'essaye de changer de style.
Le changement de css se produit mais l'apparition de cette ligne d'erreur gâche tout.

Quelqu'un aurait-il une suggestion?

Merci !
Je ne sais pas si quelqu'un a pris le temps de jeter un oeil à ce bug. La seule solution que j'ai pu trouver pour l'instant est de virer la ligne 9 du code php gérant le cookie
		// On fait un cookie d'une année de durée pour garder 
en mémoire le style choisi et le récupérer à la prochaine visite

		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;


Mais cette solution est loin de me satisfaire puisque si je change de page, la css peut laisser place à celle qui est définie par défaut.
S'il vous plait, un petit coup de main ne serait pas de trop, même une vague idée de solution serait très très appréciée. Smiley biggrin

Merci d'avance
Bon, comme j'en avais marre de bug php. J'ai décidé de l'installer sur un serveur web et de ne plus tester en local.

Résultat : ça marche et sans problème. Smiley eek Voilà beaucoup de temps perdu pour un problème qui n'en était finalement pas un.