Débite PHP - Pb sessions

Fermé
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 - 21 juil. 2008 à 19:34
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 21 juil. 2008 à 22:56
Bonjour,

Je créer un site en php qui utilise les include...
En gros j'ai un fichier head.php et un fichier foot.php qui sont inclus à toutes mes pages et contiennent le lien vers le CSS et le menu du site (dans head.php) et un simple pied de page (dans foot.php).

Voici comment ça se présente :
<?php include("head.php"); ?>
Contenu des pages
<?php include("foot.php"); ?> 

J'essaye de créer des sessions sur ce site, mais je ne sait pas comment faire.
J'ai voulu inclure au tout début de ma page head.php ceci :
<?php
session_start() ;
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
{
header("Location: new_compte.php") ;
?>

dans ce code, si je met "Location: new_compte.php" (page de connexion) je me retrouve sur la page new_compte.php comme voulu mais avec les erreurs suivantes :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\teamSLD\connexion.php:122) in D:\xampp\htdocs\teamSLD\head.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\teamSLD\connexion.php:122) in D:\xampp\htdocs\teamSLD\head.php on line 5

Mais si je veux mettre "Location: index.php", Firefox m'indique qu'il y a une boucle de redirection :
Boucle de redirection   
Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
Le navigateur a arrêté d'attendre une réponse du site. Le site crée une redirection de telle sorte que la requête ne peut jamais aboutir.

J'ai plus loin dans ma page head.php, sous le menu :
<a href="connexion.php"><center><font size=2>Se connecter</center></font></a>
     <a href="new_compte.php"><center><font size=2>S'inscrire</center></font></a> 

<?php
}//fin if
else
{
  echo("<pre>") ;
  print_r($_SESSION) ;
  echo("</pre>") ;
  echo("<center><font size=1><a href=\"deconnexion.php\">Déconnexion</a></font></center><br /><br /><br/>") ;
  echo("<font size=2><b>Bonjour ".$_SESSION["login"]."</b></font></center><br/>") ; 
}//fin else


Mais apparemment le fait que celle-ci soit incluse dans les autres pages du site pose problème

Quelqu'un a-t-il un conseil à me donner pour pouvoir créer des sessions avec les include que j'ai fait ?
Je cherche en vain
A voir également:

6 réponses

X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 19:56
Je fais aussi des redirections tout comme toi. J'ai essayé avec Location pour avoir les mêmes erreurs que toi. Résultat, je me suis tourné vers javascript pour arranger mon problème de redirection et ça marche comme un charme.

<!-- Script qui redirige automatiquement les utilisteurs non connectés sur la page de connexion -->
<script type="text/javascript">
function redirect() {
window.location="ADRESSE/PAGE DE REDIRECTION"
}
setTimeout("redirect()",3000); // delai en millisecondes
</script>
0
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
21 juil. 2008 à 20:22
Je viens d'essayer mais il me recharge la page en boucle en faite... Ce qui n'est pas le but ..
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 20:44
Ça c'est toi qui l'a mal placé alors. Parce que moi ça fonctionne très bien. Il me recharge une fois la page. Ce que tu fais comme erreur c'est que tu appelles la page contenant le code javascript et donc à chaque fois il se rappelle lui-même, en boucle. Ton erreur, pas le code qui est pas bon.
0
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
21 juil. 2008 à 20:50
Oui c'est fort possible le problème c'est que je ne sait pas trop où le mettre lol
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 21:55
En fait j'ai fait comme toi:
if (isset($_SESSION['logged'])){
COTENU DE LA PAGE
}else{
REDIRECTION JAVASCRIPT VERS PAGE DE LOGIN
}

Et ma page de login, si la session est pas ouverte, il propose un formulaire pour se logger sinon il redirige l'utilisateur sur la page d'accueil.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 22:56
Non mais c'est moi ou ça bug grave le forum là O_O
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 21:34
LOL. Il faut que tu fasses appel à la redirection s'il n'est pas connecté. Mes pages sont comme toi:

if (isset($_SESSION['logged']){
CONTENU DE MA PAGE
}else{
PAS CONNECTE, JE FAIS APPEL A LA REDIRECTION JAVASCRIPT
}

Je fais ça sur toutes mes pages nécessitant un login ;)
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
21 juil. 2008 à 21:56
WTF c'est tout buggé looool XD
0