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 :

Perte de session


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut Perte de session
    Bonjour à tous,

    Après avoir parcouru maintes et maintes forum j'y vais aussi de mon post.

    En effet j'ai une gestion de secteur sur mon site Internet grâce à des sessions sauf que je perds ma session systématiquement.

    Sur le principe, mon secteur apparait dans mon url et je lance des tests pour définir ma session.
    Quand le secteur est dans l'url tout fonctionne sauf que dès qu'il n'apparait plus dans l'url la session ne fonctionne pas.

    Pour faire plus simple voici mon code php :
    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
     
    // Il s'agit de la durée au-delà de laquelle des données de session seront considérées comme périmées.
    ini_set("session.gc_maxlifetime","3600");
    // Si cette option est égale à 1, alors PHP ignorera les identifiants transmis via l'url pour n'utiliser que ceux contenus dans les cookies.
    ini_set("session.use_only_cookies","1");	
     
    session_start();
     
    /********************************************
     *			GESTION SECTEURS				*
     ********************************************/
    // on récupére le secteur selectionné par le navigateur
     
    if (!isset($_SESSION['villeID'])) {
     
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) {
     
     
    	$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    	$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT * ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$idSecteur 			= $reqVilleResult['VILLE_ID'];
    			$_SESSION['villeID']	= $reqVilleResult['VILLE_ID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			} 
     
    	}  else {
     
    	$idSecteur 		= 1; 
     
    	}
     
    } elseif (isset($_SESSION['villeID'])) {
     
    	$idSecteur = (isset($_SESSION['villeID'])) ? trim($_SESSION['villeID']) : null;
     
    	if(!empty($idSecteur) && ctype_digit($idSecteur)) {
    	$idSecteur				=  intval($idSecteur);
    	}			
     
    }
    Mon navigateur gère bien les cookies et ne les bloque pas.

    Voici ce que dit phpinfo sur les sessions:
    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
     
    Session Support	enabled
    Registered save handlers	files user sqlite
    Registered serializer handlers	php php_binary wddx
     
    Directive	Local Value	Master Value
    session.auto_start	Off	Off
    session.bug_compat_42	On	On
    session.bug_compat_warn	On	On
    session.cache_expire	180	180
    session.cache_limiter	nocache	nocache
    session.cookie_domain	no value	no value
    session.cookie_httponly	Off	Off
    session.cookie_lifetime	0	0
    session.cookie_path	/	/
    session.cookie_secure	Off	Off
    session.entropy_file	no value	no value
    session.entropy_length	0	0
    session.gc_divisor	100	100
    session.gc_maxlifetime	1440	1440
    session.gc_probability	0	0
    session.hash_bits_per_character	4	4
    session.hash_function	0	0
    session.name	PHPSESSID	PHPSESSID
    session.referer_check	no value	no value
    session.save_handler	files	files
    session.save_path	/tmp	/tmp
    session.serialize_handler	php	php
    session.use_cookies	On	On
    session.use_only_cookies	Off	Off
    session.use_trans_sid	0	0
    Et voici une ligne de mon .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Interdiction des sessions dans l'url :
    SetEnv SESSION_USE_TRANS_SID 0
    Une âme charitable pour m'aider ?
    D'où peut venir mon problème ?

    Merci par avance,

    Aurélien

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Bonjour à tous,

    Je continue de chercher une solution mais en vain.

    Existe t'il une autre solution pour mettre ma session dans un cookie ?

    Aurélien

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Voila qui parait bien compliqué !
    Veux tu dire
    1) que tu es en local
    2) que tu utilises des ALIAS URL/NOM de DOMAINE
    peux tu clarifier ceci merci.

    La norme serait
    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
     
    [Session]
    session.save_handler = files
    session.use_cookies = 1
    session.use_only_cookies = 1
    session.name = PHPSESSID
    session.auto_start = 0
    session.cookie_lifetime = 0
    session.cookie_path = /
    session.cookie_domain =
    session.cookie_httponly =1
    session.serialize_handler = php
    session.gc_probability = 1
    session.gc_divisor = 1000
    session.gc_maxlifetime = 1440
    session.bug_compat_42 = On
    session.bug_compat_warn = On
    session.referer_check =
    session.entropy_length = 0
    session.entropy_file =
    session.cache_limiter = nocache
    session.cache_expire = 180
    session.use_trans_sid = 0
    session.hash_function = 0
    session.hash_bits_per_character = 5

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Merci pour ta réponse.

    Je ne suis pas en local.

    Voici l'adresse de mon site :
    http://www.dusk.fr/Paris/magazine.html

    Mon site propose une navigation par ville.
    Quand on fait le choix d'une ville dans la pré-home, on clique sur un lien qui amène sur une home page pour une ville donnée.

    Une fois sur cette home page, je fais un GET pour récupérer le nom de la ville, je vérifie qu'elle existe bien dans ma base puis je définie l'ID de ma ville dans une session.

    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
    if (!isset($_SESSION['villeID'])) {
     
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) {
     
     
    	$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    	$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT * ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$idSecteur 			= $reqVilleResult['VILLE_ID'];
    			$_SESSION['villeID']	= $reqVilleResult['VILLE_ID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			}
    A chaque nouvelle page je vérifie que la session existe bien, si ce n'est pas le cas je la redéfinie via mon GET + nom de ma ville.

    Seulement voila, j'ai des url (toujours pour une ville donnée) qui ne contient pas le nom de la ville (donc pas de possibilité de faire un GET + nom de ma ville).

    http://www.dusk.fr/video/Grégoire-l-interview_7.html

    C'est à ce moment là que je me rend compte que je n'ai pas de session active puisque mon site est alors dirigé vers une ville par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    }  else {
     
    	$idSecteur 		= 1; 
     
    	}
    Le fait d'avoir mes sessions dans mon url me posait des problèmes pour mon référencement donc j'ai opté pour des sessions dans un cookie.

    Dans mon htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Interdiction des sessions dans l'url :
    SetEnv SESSION_USE_TRANS_SID 0
    Seulement, quand je navigue de cette page :
    http://www.dusk.fr/Paris/magazine.html
    à celle là
    http://www.dusk.fr/video/Grégoire-l-interview_7.html
    je me rends bien compte que ma session ne fonctionne pas ou n'est pas prise en compte.

    Du coup je ne vois pas d'où peut venir le problème.

    Aurais-tu une idée ?

    Merci encore pour ton aide.

    Aurélien

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ok je vois,
    Retires ce que tu as mis dans le .htaccess, c'est dangeureux, car il créera
    un cookies différent par répertoire, ou même ne marchera pas.
    Ton php.ini devrait créer un cookies de session par domaine un point c'est tout !

    Bien entendu dans TOUT tes PHP (sauf les php destinés a un include bien sur
    tu doit mettre collé en haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    session_start();
    //=========aucun autre paramétre !!
    ensuite OK utilises tes sessions
    $lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
     
    ?>

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Merci.

    J'ai retiré le code de mon .htaccess mais ça ne fonctionne toujours pas.

    Est-ce que mon code de gestion de session en php te parait correct ?

    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
    session_start();
     
    /********************************************
     *			GESTION SECTEURS				*
     ********************************************/
    // on récupére le secteur selectionné par le navigateur
     
    if (!isset($_SESSION['villeID'])) {
     
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) {
     
     
    	$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    	$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT VILLE_ID , VILLE_NAME ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$_SESSION['villeID']	= $reqVilleResult['VILLE_ID'];
    			$idSecteur 				= $_SESSION['villeID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			} 
     
    	}  else {
     
    	$idSecteur 		= 1; 
     
    	}
     
    } elseif (isset($_SESSION['villeID'])) {
     
    	$idSecteur = (isset($_SESSION['villeID'])) ? trim($_SESSION['villeID']) : null;
     
    	if(!empty($idSecteur) && ctype_digit($idSecteur)) {
    	$idSecteur				=  intval($idSecteur);
    	}			
     
    }
    Car il me définit donc à priori il ne reconnait pas de session.

    Merci beaucoup.

    Aurélien

  7. #7
    Invité
    Invité(e)
    Par défaut
    Confirmes moi que j'ais le PHP complet (sauf le login MySql bien sur)

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    A vrai dire non car mon PHP est assez long.
    Je le complète avec les infos concernant les sessions.

    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
     
    <? 
    /* Autorisation de l'utilisation des cookies */
    ini_set('session.use_cookies', "1"); 
    /* Autorisation d'utiliser QUE les cookies */
    ini_set('session.use_only_cookies', "1"); 
    // Il s'agit de la durée au-delà de laquelle des données de session seront considérées comme périmées.
    ini_set("session.gc_maxlifetime","3600");
     
    session_start();
     
    /********************************************
     *			GESTION SECTEURS				*
     ********************************************/
    // on récupére le secteur selectionné par le navigateur
     
    if (!isset($_SESSION['villeID'])) {
     
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) {
     
     
    	$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    	$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT VILLE_ID , VILLE_NAME ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$_SESSION['villeID']	= $reqVilleResult['VILLE_ID'];
    			$idSecteur 				= $_SESSION['villeID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			} 
     
    	}  else {
     
    	$idSecteur 		= 1; 
     
    	}
     
    } elseif (isset($_SESSION['villeID'])) {
     
    	$idSecteur = (isset($_SESSION['villeID'])) ? trim($_SESSION['villeID']) : null;
     
    	if(!empty($idSecteur) && ctype_digit($idSecteur)) {
    	$idSecteur				=  intval($idSecteur);
    	}			
     
    }	
     
    ?>
    Sinon mon code contient toute la gestion utilisateur, facebook connect, mes variables de date ... mais rien d'autre concernant les sessions.

    Est-ce que la création d'un cookie pour l'identification des membres peut poser un problème ?

    Merci encore.

    Aurélien

  9. #9
    Invité
    Invité(e)
    Par défaut
    Le cookies de données (un par nom de domaine) et le cookies de SESSION
    (généralement un par domaine si tu n'as pas bidouillé les paramtres)
    sont totalement indépendants !
    Encore faut'il que ton php.ini soit paramétré de base, et que tu arrétes
    vite vite ces ini_set(xxxxxxxxx
    Bien pratiques mais idéal pour se planter !

    Crois moi c'est enfantin de contrôler comment ça marche chez toi !
    1) fais un a.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start();
    $lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
    echo "".$lieu."<br />";
    $_SESSION['lieu']="je viens du A";
    ?>
    <a href="b.php" >aller en B</a>
    2) fais un b.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start();
    $lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
    echo "".$lieu."<br />";
    $_SESSION['lieu']="je viens du B";
    ?>
    <a href="a.php" >aller en A</a>
    Dernière modification par Invité ; 31/10/2011 à 17h30.

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Ton code fonctionne chez moi

    Par contre, pourrais-tu m'aider à adapter mon code de gestion de secteur car du coup je suis un peu largué ???

    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
    if (!isset($_SESSION['villeID'])) {
     
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) {
     
     
    	$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    	$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT VILLE_ID , VILLE_NAME ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$_SESSION['villeID']	= $reqVilleResult['VILLE_ID'];
    			$idSecteur 				= $_SESSION['villeID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			} 
     
    	}  else {
     
    	$idSecteur 		= 1; 
     
    	}
     
    } elseif (isset($_SESSION['villeID'])) {
     
    	$idSecteur = (isset($_SESSION['villeID'])) ? trim($_SESSION['villeID']) : null;
     
    	if(!empty($idSecteur) && ctype_digit($idSecteur)) {
    	$idSecteur				=  intval($idSecteur);
    	}			
     
    }
    Merci beaucoup par avance.

    Aurélien

  11. #11
    Invité
    Invité(e)
    Par défaut
    La gestion tu l'a testé toi même doit étre en tête du PHP
    Du moins le session_start !
    En plus veilles a ne pas détruite tes valeures déjas enregistrées
    dans cette page ou d'autres pages.
    Pour cela utilises comme moi pour toutes tes variables de session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $villeID = (isset($_SESSION['villeID'])) ? $_SESSION['villeID'] : '' ;
    //=======puis dans ta page n'utilises que la variable
    if ($villeID!="") { //..... }
    //====== ou 
    $villeID="toto";
    $_SESSION['villeID']=$villeID;
    ?>
    Je te laisses revoir ta logique ça c'est ton probléme !

  12. #12
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    J'ai bien appliqué tes conseils, j'ai vérifié de ne pas détruire mes valeurs enregistrées, à ne pas détruire ou écraser ma session mais rien n'y fait.

    J'ai l'impression que ma session existe sur la page qui l'a défini mais qu'elle ne se transmet pas à la page suivante.

    Pourtant ma gestion de session est en haut de page en dessous de mon session start mais rien n'y fait.

    Voici mon code dans l'état actuel des modifs :

    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
    session_start();
     
    /********************************************
     *			GESTION SECTEURS				*
     ********************************************/
    // on récupére le secteur selectionné par le navigateur
     
    $idSecteur = ""; 
     
    $idSecteur = (isset($_SESSION['ville'])) ? $_SESSION['ville'] : '' ;
     
    //Si la variable est vide alors on fait un GET et on crée la session
    if (empty($idSecteur)) {
     
    	if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) && (empty($idSecteur)) ) {
     
    		$villeName				=  (isset($_GET['ville'])) ? trim($_GET['ville']) : null;
    		$villeName				=  mysql_real_escape_string($villeName);
     
    		$sqlQueryList			=
    			" SELECT VILLE_ID , VILLE_NAME ".
    			" FROM VILLE_LIST ".
    			" WHERE VILLE_NAME LIKE '$villeName'".
    			" ORDER BY VILLE_ID ASC LIMIT 0,1"; 
    			$reqList 			= mysql_query($sqlQueryList);
    			$reqVilleResult		= mysql_fetch_array($reqList);
     
    			if (!empty($reqVilleResult['VILLE_ID'])) { 
     
    			$_SESSION['ville']		= $reqVilleResult['VILLE_ID'];
    			$idSecteur 				= $reqVilleResult['VILLE_ID'];
     
    			}  else {
    			$idSecteur 		= 4;
    			}
     
    	}  else {
    	//Si la variable est vide, pas de session, pas de GET on définit un secteur par défaut	
    	$idSecteur 		= 1; 
     
    	}
     
    }
    Voici une partie de mon .htaccess si ça peut aider à trouver le problème :
    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
    73
    74
    75
    76
    77
    78
    # Utilisation de PHP5 :
    SetEnv PHP_VER 5
     
    # Définition charset en UTF8 :
    AddDefaultCharset UTF-8
     
    # Interdiction des sessions dans l'url :
    SetEnv SESSION_USE_TRANS_SID 0
     
     
    # MOD_DEFLATE COMPRESSION
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
    #Pour les navigateurs incompatibles
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    #ne pas mettre en cache si ces fichiers le sont déjà
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
    #les proxies doivent donner le bon contenu
    Header append Vary User-Agent env=!dont-vary
     
    # BEGIN Expire headers
    <IfModule mod_expires.c>
     ExpiresActive On
     ExpiresDefault "access plus 7200 seconds"
     ExpiresByType image/jpg "access plus 2592000 seconds"
     ExpiresByType image/jpeg "access plus 2592000 seconds"
     ExpiresByType image/png "access plus 2592000 seconds"
     ExpiresByType image/gif "access plus 2592000 seconds"
     AddType image/x-icon .ico
     ExpiresByType image/ico "access plus 2592000 seconds"
     ExpiresByType image/icon "access plus 2592000 seconds"
     ExpiresByType image/x-icon "access plus 2592000 seconds"
     ExpiresByType text/css "access plus 2592000 seconds"
     ExpiresByType text/javascript "access plus 2592000 seconds"
     ExpiresByType text/html "access plus 7200 seconds"
     ExpiresByType application/xhtml+xml "access plus 7200 seconds"
     ExpiresByType application/javascript A259200
     ExpiresByType application/x-javascript "access plus 2592000 seconds"
     ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
    </IfModule>
    # END Expire headers
     
    # BEGIN Cache-Control Headers
    <IfModule mod_headers.c>
     <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$">
     Header set Cache-Control "max-age=2592000, public"
     </FilesMatch>
     <FilesMatch "\\.(css)$">
     Header set Cache-Control "max-age=2592000, public"
     </FilesMatch>
     <FilesMatch "\\.(js)$">
     Header set Cache-Control "max-age=2592000, private"
     </FilesMatch>
    <filesMatch "\\.(html|htm)$">
    Header set Cache-Control "max-age=7200, public"
    </filesMatch>
    # Disable caching for scripts and other dynamic files
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
    Header unset Cache-Control
    </FilesMatch>
    </IfModule>
    # END Cache-Control Headers
     
    # KILL THEM ETAGS
    Header unset ETag
    FileETag none
     
    # protect the htaccess file
    <files .htaccess>
    order allow,deny
    deny from all
    </files>
     
    # protection de la lecture des répertoires
    Options -Indexes
    Aurais-tu une idée ?

    Merci beaucoup !

    Aurélien

  13. #13
    Invité
    Invité(e)
    Par défaut
    Je ne comprends pas ta question, puisque je t'ais fais un test qui marche !
    Tu ne dois donc rien changer sauf contrôler ton code !
    Tes modifications .htaccess me paraissent sorties d'un autre temp.
    Pourquoi par exemple mettre
    SetEnv SESSION_USE_TRANS_SID 0
    Alors qu'il est déjas dans ton php.ini

    Le bricolage c'est ce qui reste le plus dangeureux en programmation !

    d'autre part derriére
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['ville']		= $reqVilleResult['VILLE_ID'];
    //======mets
    echo "session==> "$_SESSION['ville']." valeur ==>".$reqVilleResult['VILLE_ID'];
    et dis moi ce que ça affiche
    Dernière modification par Sendusha ; 02/11/2011 à 18h07. Motif: Ajout du balise [CODE]

  14. #14
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    J'ai rajouté la ligne de code mais à priori il y aurait une erreur de syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /homez.95/duskvnol/www/n63showtest.php on line 32

  15. #15
    Invité
    Invité(e)
    Par défaut
    Tu aurais du le voir, manquait un "."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['ville']		= $reqVilleResult['VILLE_ID'];
    //======mets
    echo "session==> ".$_SESSION['ville']." valeur ==>".$reqVilleResult['VILLE_ID'];

  16. #16
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Désolé la journée a été longue et j'ai les yeux en vrac.

    Ca m'affiche le même résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session==> 3 valeur ==>3

  17. #17
    Invité
    Invité(e)
    Par défaut
    donc la valeur est récupérable ! je ne comprends pas puisque mon test marche chez toi !
    Peut-étre un include qui touche aus sessions assignées !

  18. #18
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Merci pour ton aide.

    Je pense que ça doit être ça.

    J'ai fait un test en créant une page vierge et ça roule.
    Mais dès lors que je le fais avec une page existante je perds mes sessions.

    Je vais reprendre tout mon code.

    Encore merci pour ton aide.

    Quand j'aurai trouvé je posterai sur ce sujet.

    Aurélien

  19. #19
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut
    Bonjour,

    J'ai trouvé d'où vient le problème à ma perte de session.

    Dans les pages où je perdais les sessions certains images ne s'affichaient pas (à cause de ma base qui n'était pas à jour).

    Une fois les champs images de ma base complétés, je n'ai plus perdu ma session.

    Par contre je ne vois pas du tout le rapport entre une image qui ne s'affiche pas et une perte de session.

    Le principal c'est que mon problème soit résolu.

    Merci en tout cas pour ton aide et ta patience.

    Aurélien

  20. #20
    Invité
    Invité(e)
    Par défaut
    C' est parceque tu plante ton code par une erreur,
    ce n'est pas l'image qui est en echo, mais le décalage qui en résulte des ouvertures et fermeture des balises ou code.

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

Discussions similaires

  1. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 10h32
  2. Perte de Session d'une page à l'autre
    Par Flam dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2006, 15h34
  3. [Struts]Redirection globale en cas de perte de session
    Par Mercenary Developer dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/02/2006, 15h40
  4. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 18h53
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 10h12

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