IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur lorsque je ferme une session.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Par défaut Erreur lorsque je ferme une session.
    Salut à tous.

    J'ai un petit soucis quand je veux fermer une session. J'ai le message suivant qui apparait:
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\dune\admin\index.php:6) in c:\program files\easyphp1-8\www\dune\admin\deconnexion.php on line 4
    Voici une partie du code de la page "index.php"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
           <title>..:: Espace Admin ::..</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design admin" href="./style/admin.css" />
       </head>
    	   <body>
    		<div id="menu" >
    			<?php
    			  include('menu.html');   // Nous appelons notre menu
    			?>
    		</div>
    Et voici la le code de "deconnexion.php":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    @session_start();
    $_SESSION = array ();
    header("location: ./index.php");
    ?>
    Et pour finir voici l'arborescence:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    WWW
    |
    |----dune (rep.)
           |-- admin (rep.)
                 |-- style (rep.)
                       |-- admin.css
                 |--index.php
                 |--deconnexion.php
                 |--menu.html
    Je sais pas d'ou sa vien. Si vous pouviez m'aidé.
    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Tu n'as pas un saut de ligne qui traine avant ton <? dans deconnexion.php des fois ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Par défaut
    Citation Envoyé par Sylvain71
    Tu n'as pas un saut de ligne qui traine avant ton <? dans deconnexion.php des fois ?
    non



    Citation Envoyé par Lorenzo77
    vire le @ devant le session_start() déja !
    quand je le vire, j'ai les messages suivant:
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\dune\admin\index.php:6) in c:\program files\easyphp1-8\www\dune\admin\deconnexion.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\dune\admin\index.php:6) in c:\program files\easyphp1-8\www\dune\admin\deconnexion.php on line 4


    Citation Envoyé par Eusebius
    ton deconnexion.php il est appelé directement ? ou c'est un include ?
    Oui



    Citation Envoyé par yanice
    essaye ca:
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location:index.php');
    exit();
    ?>
    Voici ce que ca me retoure comme erreur:
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\dune\admin\index.php:6) in c:\program files\easyphp1-8\www\dune\admin\deconnexion.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\dune\admin\index.php:6) in c:\program files\easyphp1-8\www\dune\admin\deconnexion.php on line 5

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Par défaut
    pour le @ cest normal que lorsque tu lenlève ca taffiche une erreur, cest une protection dans le cas où il y aurait un bug, le nom de l'erreur ne saffich pas et surtout ca permet, le cas échéant, de masquer les chemins de tes fichiers

    sinon,tu n'as pas laissé trainé un echo dans ton fichier deconnexion.php? tas juste utilisé ce que je tai envoyé? et il n'y a pas un header qlqepart dans index.php?

  5. #5
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Si j'ai bien compris, c'est un include qui est fait dans index.php, et index.php affiche quelque chose. Tu ne peux donc plus envoyer de header, ni faire de session_start après ça.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Par défaut
    Voila le code de la page index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
           <title>..:: Espace Admin ::..</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design admin" href="./style/admin.css" />
       </head>
    	   <body>
    		<div id="menu" >
    			<?php
    			  include('menu.html');   // Nous appelons notre menu
    			?>
    		</div>
     
    		<div id="enteteadmin">
    			..:: bienvenue dans l'espace admin ::..
    		</div>
     
    		<div id="message">
    			<?php
    			$tbErreur = array(
    			"Le nom d'utilisateur ou le mot de passe sont incorrect.",
    			"Vous avez oublié de remplir un champ.",
    			"",);
     
    			$tbMess = array(
    			"Vous etes bien logué",
    			"dsdsds",
    			"",);
     
    			if (isset($_GET['erreur']))
    				{
    				echo $tbErreur[$_GET['erreur']];
    				}
     
    				elseif (isset($_GET['mess']))
    					{
    					echo $tbMess[$_GET['mess']];
    					}
     
    					else 
    					{ 
    					echo '.................................................................................................................................................';
    					}
    			?>
    		</div>
     
        	<div id="corps">
    			<?php
    			$pageOK = array('accueil' => 'accueil.php',
    			    	   		  'listdj' => './dj/listdj.php',
    							  'ajoutdj' => './dj/ajoutdj.php',
    							  'moddj' => './dj/moddj.php',
    							  'suppdj' => './dj/suppdj.php',
    							  'listlieu' => './lieu/listlieu.php',
    							  'ajoutlieu' => './lieu/ajoutlieu.php',						  
    							  'deconnexion' => 'deconnexion.php',);
     
    			if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) 
    				{
    				include($pageOK[$_GET['page']]);
    			  	}
    				 else 
    				 	{
    				   // Page par défaut quant elle n'existe pas dans le tableau
    			  		}
    			?>
    		</div>
     
     
       </body>
    </html
    Je tiens à precisé que le code est loin d'etre terminé, donc pas d'affolment si vous trouvé des trucs cheloux

  7. #7
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Ben c'est bien ce que j'ai dit... tu peux pas faire un header dans un include si tu as affiché quelque chose dans index.php.

  8. #8
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    vire le @ devant le session_start() déja !
    ensuite verifie que tu n'as pas un espace ou un saut de ligne avant le :
    <?php

  9. #9
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    ton deconnexion.php il est appelé directement ? ou c'est un include ?

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Par défaut
    essaye ca:
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location:index.php');
    exit();
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/12/2012, 17h04
  2. lorsque je ferme une JFrame, la methode finalize implementée ne s'enclenche pas.
    Par javanoiid dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 28/03/2008, 10h41
  3. Autopostback qui ferme une session
    Par Courgette17 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 06/02/2008, 10h48
  4. Le pc s'eteint quand on ferme une session
    Par werephilou dans le forum Windows XP
    Réponses: 2
    Dernier message: 06/09/2007, 15h54
  5. que se passe-t-il lorsqu'on ferme une application ?
    Par Mihalis dans le forum Delphi
    Réponses: 22
    Dernier message: 13/06/2007, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo