Session_start() en début de code

Résolu/Fermé
Farahon Messages postés 48 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 13 juin 2016 - 19 avril 2015 à 12:03
Farahon Messages postés 48 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 13 juin 2016 - 19 avril 2015 à 12:44
Bonjour,
J'ai loué un nom de domaine chez one.com, et quand j'upload ma page sur leurs serveurs, j'obtiens cette erreur :
Warning: session_start(): Cannot send session cache limiter - headers already sent

Cependant, quand je teste en local sous EasyPHP, je n'ai pas cette erreur, la page s'affiche sans problème. Voici le code de la page qui pose problème :
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<link rel="stylesheet" type="text/css" href="includes/style.css">
		<link rel="icon" type="image/png" href="images/fav.ico" />
	</head>
	<body style="text-align: center">
		<?php
		session_start();
		$login = $_SESSION["login"];
		include "includes/menu.php";
		echo "<h2>Bienvenue ".$login." !</h2>";
A voir également:

1 réponse

ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
19 avril 2015 à 12:14
Bonjour,
Il ne faut JAMAIS envoyer du code au navigateur avant l'utilisation de session_start(), même un espace vide n'est pas autorisé, donc ton code devrait ressembler à ceci:
<?php
session_start();
?><!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
                <title>~ Ton titre qui apparaitra dans onglet du navigateur ~</title>
		<link rel="stylesheet" type="text/css" href="includes/style.css">
		<link rel="icon" type="image/png" href="images/fav.ico" />
	</head>
	<body style="text-align: center">
	<?php
	$login = $_SESSION["login"];
	include "includes/menu.php";
	echo "<h2>Bienvenue ".$login." !</h2>";
        ?>

P.S.: Ne pas OUBLIER la balise HTML <title> dans ta page web, elle compte pour le référencement naturel de ton site web.
Cordialement.
1
Farahon Messages postés 48 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 13 juin 2016 1
19 avril 2015 à 12:18
Ta solution a résolu mon problème, merci ! Une question reste pourtant, comment se fait-il que ce que j'avais fait marchait en local ?
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
19 avril 2015 à 12:29
Tout dépend de comment est paramétré ton fichier php.ini en local, il est certainement différent de ton hébergeur et de toute façon, une seule règle pour le
session_start()
placé AVANT tout envoi de données au navigateur et ce, quel que soit l'hébergeur choisi!
Il est même fortement recommandé d'enregistrer son fichier PHP sans BOM (Byte Order Mark) qui est un caractère invisible inséré en début de fichier par certains logiciels de développement. Par exemple, dans Notepad++, on peut choisir d'enregistrer son fichier AVEC ou SANS BOM
Bonne continuation dans la prog...!
0
Farahon Messages postés 48 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 13 juin 2016 1 > ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021
19 avril 2015 à 12:44
D'accord, merci beaucoup !
0