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 :

Session se vide après redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut Session se vide après redirection
    Bonjour,
    J'ai fait un tchat et je rame sur un problème depuis hier. Sur ma page de connexion, après authentification je met en session le login et le genre. Le problème c'est qu'après la redirection mes sessions sont vides.

    NB: j'ai bien demarré la session, quand je vérifie sur ma page d'authentification mes sessions sont tous OK

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Il faut démarrer la session sur chaque page de ton site.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    La session est démarrée à chaque page:

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Montre ton code.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Page de connexion

    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
     
    <?php 
     session_start();
    require(dirname(__FILE__).'/script/connexionDB.php');
     
    //Connexion au tchat
    	if(!empty($_POST['sexe']) && !empty($_POST['login'])) {
     
    		$erreur = 'null';
     
    		$logOn = searchTchat($_POST['login']);
     
    		if(empty($logOn)){
     
    			$ip = $_SERVER['REMOTE_ADDR'];
    			$insert = addTchat($_POST['sexe'], $_POST['login'], $ip);
     
    			if(!empty($insert)) {
    				$info = searchTchat($_POST['login']);
    				$idConnecte = $info->id;
    			}
    			else {
    				$data = searchTchat($_POST['login']);
     
    					if($data->ip == $_SERVER['REMOTE_ADDR'] && time()-$data->timestamp < 60){
    						 $idConnecte = $data->id;
    					}
    					elseif(time()-$data->timestamp > 60){
    						  $idConnecte = $data->id;
    					 }
    					else { 
    						$erreur = 'Ce login est déjà utilisé.';
    					}
    			} 
    		}
    	}
     
    	if(isset($erreur)){
    		 // Si le login a été validé on met les données en sessions
    		 $_SESSION['login'] =  $_POST['login'];
    		 $_SESSION['sexe'] =  $_POST['sexe'];
    		 $_SESSION['id'] = $idConnecte; 
     
    	     header('location: tchat.php');
    	 }
    ?>
    Page affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    session_start();
     
    require(dirname(__FILE__).'/script/connexionDB.php');
     
     echo $_SESSION['login']; 
     echo '&nbsp;&nbsp;';
     if($_SESSION['sexe'] == 'h') { 
          echo '<img src="images/male.png" width="12" height="12" alt="Homme" />';
      }
        else {
             echo '<img src="images/female.png" width="12" height="12" alt="Homme" />';
         }
    ?>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Par défaut
    Bonjour,

    J'ai exactement le même problème, qui n'est pas encore résolu (je suis venu là pour poser la question).

    D'après mes recherches, le script de la 1ere page où y'a la fonction header() continue de s’exécuter en arrière plan, alors que le script de la 2e page se lance.
    Vu qu'une variable de session ne peut pas être utilisée par 2 scripts en même temps, ça pose problème.

    Du coup il faudrait écrire le contenu de session (ce qui est fait par défaut une fois que tout le script est fini d'exécuter), appeler header, puis terminer le script.
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    session_write_close();
    header('location:'.$goto_);    // La variable $goto_ est bien renseignée
    die();
    Sauf que chez moi ça marche pas...

Discussions similaires

  1. Session vidée après une redirection.
    Par malicroix dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2013, 11h51
  2. Session vide après envoi du header
    Par ireolax dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2012, 13h44
  3. [http] perte de requette http après redirection
    Par okoax dans le forum Serveurs (Apache, IIS,...)
    Réponses: 6
    Dernier message: 05/05/2006, 10h31
  4. [Menu] Problème d'affichage après redirection
    Par Pfeffer dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/03/2006, 21h04
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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