Page 1 sur 1
Petite question sur les sessions sessions_start()
Posté : 06 nov. 2005, 20:51
par Block
Bonsoir amis du php,
J'aurais bien aimé savoir ce que signifiait cela :
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/xxx/public_html/web/index.php:2) in /home/xxx/public_html/web/index.php on line 66
j'ai ceci qui s'affiche avec ce code :
<? session_start();
if(!session_is_registered(pseudo)) {
// On affiche ce message d'erreur
include ('_files/_perso/auth.php');
}
// sinon, la session "login" est enregistrée
else {
// On affiche le message de bienvenue
echo "<center>Bienvenu sur votre espace membre $pseudo</center>";
}
?>
Je ne comprend pas pourquoi il n'affiche pas
Bienvenu sur votre espace membre $pseudo
Merci de m'expliquer

Posté : 06 nov. 2005, 21:05
par Cyrano
Avec session_start(), on utilise pas
session_is_regstered(pseudo)
mais
isset($_SESSION['pseudo'])
Ceci dit, si tu as une erreur comme celle affichée, c'est parce que du contenu a déjà été envoyé vers le navigateur à cet endroit du script : session_start() doit être expréssément la première ligne de la page. Si ton script est inclus dans un autre, alors c'est dans l'autre qu'il faut mettre le session_start et non dans le fichier inclus.
Posté : 06 nov. 2005, 21:10
par Block
Merci, mais maitenant j'ai cette erreur :
Parse error: parse error, unexpected T_INCLUDE in /home/lanato/public_html/web/index.php on line 69
Cela signifie quoi? MErci[/code]
Posté : 06 nov. 2005, 21:11
par Cyrano
Sans voir le code, aucune idée, mais je parie pour un ";" oublié à la fin de l'instruction de la ligne précédente.
Posté : 06 nov. 2005, 21:16
par Block
Voilà le code modifié :
<? session_start();
isset($_SESSION['pseudo']);
// On affiche ce message d'erreur
include('_files/_perso/auth.php');
// sinon, la session "login" est enregistrée
else
// On affiche le message de bienvenue
echo "<center>Bienvenu sur votre espace membre $pseudo</center>";
?>
Cela ne colle pas, d'ou vient le problème? j'ai à peu prés tout essayé, j'ai encore du mal comprendre quelque chose
Thx
Posté : 06 nov. 2005, 21:39
par gyzmo45
voilà la correction
<? session_start();
if(isset($_SESSION['pseudo']))
// On affiche ce message d'erreur
include('_files/_perso/auth.php');
// sinon, la session "login" est enregistrée
else
// On affiche le message de bienvenue
echo "<center>Bienvenu sur votre espace membre $pseudo</center>";
?>
Posté : 06 nov. 2005, 21:42
par Jawad
Perdu cyranon

Posté : 06 nov. 2005, 22:01
par Block
Perdu, j'avais déja essayé ca.
Cela me donne :
Parse error: parse error, unexpected T_ELSE in /home/xxx/public_html/web/index.php on line 71
Une idée, une suggestion?? Thx
Posté : 06 nov. 2005, 22:02
par Block
Perdu, j'avais déja essayé ca.
Cela me donne :
Parse error: parse error, unexpected T_ELSE in /home/xxx/public_html/web/index.php on line 71
Une idée, une suggestion?? Thx
Posté : 06 nov. 2005, 22:06
par Pieterjan
faur rajouter les {}.
<? session_start();
if(isset($_SESSION['pseudo'])) {
// On affiche ce message d'erreur
include('_files/_perso/auth.php');
// sinon, la session "login" est enregistrée
} else {
// On affiche le message de bienvenue
echo "<center>Bienvenu sur votre espace membre $pseudo</center>";
}
?>
Posté : 06 nov. 2005, 22:07
par gyzmo45
dans le include normalment ce sont des "" et non pas des ''
include("_files/_perso/auth.php");
essaye toujours sinon moi après je peux plus t'aider, faudra attendre le chef
Posté : 06 nov. 2005, 22:18
par Block
Arf lol c'est bon. Il suffisait de mettre
session_start();
tout en haut de la page
Merci à tous...
Posté : 07 nov. 2005, 00:52
par Cyrano
J'ajouterais quand même une chose : le test est incomplet :
<?php
session_start();
if(!isset($_SESSION['pseudo']) || empty($_SESSION['pseudo']))
{
// On affiche ce message d'erreur
include('_files/_perso/auth.php');
}
// sinon, la session "login" est enregistrée
else
{
// On affiche le message de bienvenue
echo "<center>Bienvenu sur votre espace membre $pseudo</center>";
}
?>
Là, on vérifie non seulement que la variable de session existe mais également qu'elle n'est pas vide.