PB d'affichage avec session active/inactive
Résolu
SaM SonG
Messages postés
239
Date d'inscription
Statut
Membre
Dernière intervention
-
SaM SonG Messages postés 239 Date d'inscription Statut Membre Dernière intervention -
SaM SonG Messages postés 239 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de développer mon propre site, et j'ai un certain problème avec les sessions actives et inactives.
Tout d'abord, j'ai bien le :
avant le code (donc avant le DOCTYPE.
Le problème vient de là :
Lorsque la session est inactive, sa marche nickel j'ai mon formulaire qui s'affiche.
Mais quand ma session est active, et que je reviens sur cette page en question, il y a un message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /home/x/public_html/administration.php:30) in /home/x/public_html/administration.php on line 43
La ligne 43 correspond à celle ci
Auriez vous votre aide à me proposer ?
Peace
Je suis en train de développer mon propre site, et j'ai un certain problème avec les sessions actives et inactives.
Tout d'abord, j'ai bien le :
<?php session_start(); ?>
avant le code (donc avant le DOCTYPE.
Le problème vient de là :
<?php
if (isset($_SESSION['login']))
{
// si une session est active
header("location:adminpage.php");
}
else
{
// si aucune session n'est active
echo '
<form action="login.php" method="post">
<table border="0">
<tr><td align="center"><b>Utilisateur</b></td>
<td><input type="text" name="NomUtilisateur" value="" size="20"></td></tr>
<tr><td align="center"><b>Mot de passe</b></td>
<td><input type="password" name="MotDePasse" value="" size="20"></td></tr>
<tr><td align="center" colspan="2"><br><input type="submit"
value="Identifiez-vous !"></td></tr>
</table>
</form>';
}
?>
Lorsque la session est inactive, sa marche nickel j'ai mon formulaire qui s'affiche.
Mais quand ma session est active, et que je reviens sur cette page en question, il y a un message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /home/x/public_html/administration.php:30) in /home/x/public_html/administration.php on line 43
La ligne 43 correspond à celle ci
header("location:adminpage.php");
Auriez vous votre aide à me proposer ?
Peace
4 réponses
-
tu dois absolument mettre un header('Location avant tout code html
tu peux passer par une variable intermediaire
<?php session_start(); $aff_formulaire=false; if (isset($_SESSION['login'])) { // si une session est active header("location:adminpage.php"); } else { $aff_formulaire=true; } et plus bas dans ton body a l'endroit ou tu veux mettre le formulaire: if($aff_formulaire){ //ton formulaire } -
d'accord session_start() doit être avant tout code html, mais
<?php
if (isset($_SESSION['login']))
{
// si une session est active
header("location:adminpage.php");
aussi doit être avant tout code html -
Mais il va alors s'afficher avant même la tête, et le menu.
Sachant que ce bout de code, est placé en plein milieu du body :s -
Daccord merci, j'essaie ça.
PS : Tu as oublié de fermer la balise :p
Edit : Sa marche super, je l'ai modifié a ma sauce pour que ça marche sur toutes mes pages.
Merci, Peace