Session_start() = référencement ou pas ?

WRInaute passionné
Depuis peu, j'ai un session_start() sur chacune de mes pages.
Je m'en sert pour stocker les infos sur la dimension du navigateurs.
Ces dernières sont utilisées pour optimiser le site selon ce dernier.

Je précise que si nous n'avons pas de paramètres en session, on passe par du javascript, et si le Javascript est désactivé, des variables par défaut sont allouées.

Ma question est de savoir si cela va gêné mon référencement ?
 
WRInaute occasionnel
Je pense que les moteurs vont voir les paramètres par défaut, si pas de support des cookies ni du javascript.
Pas de risque de te retrouver avec des identifiants de session dans les URL ?
 
WRInaute accro
>> Je précise que si nous n'avons pas de paramètres en session, on passe par du javascript

?? session php / javascript, y a un soucis là lol

vide ton cache, ton historique, quitte et relance ton navigateur. retourne sur ton site et regarde si de la premiere page du site à la seconde le SESS_ID passe par l URL (selon la config du serveur)
 
WRInaute passionné
Je vous laisse une portion de mon code pour que vous puissiez me faire une réponse en connaissance de cause :

Code:
session_start(); // On ouvre une session
/* Si les variables de sessions ne sont pas initialisé */
if		(!isset($_SESSION['wid']) || !isset($_SESSION['hei']) ) {
		$_SESSION['wid'] = $_GET['wid'];
		$_SESSION['hei'] = $_GET['hei'];
		}

/* Initialisation des variables */
$nom_page = htmlentities($nom_page);

/* Affichage de l'entête */
echo '<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>';
/* Si le nom du site se trouve dans le nom de la page */
if		(eregi(SITE_NOM, $nom_page) ){
		echo '<title>'.$nom_page.'</title>';
		}
else	{
		echo '<title>'.$nom_page.' ~ '.SITE_NOM.'</title>';
		}
echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Description" content="'.htmlentities($description).'" />
<meta name="Keywords" content="'.htmlentities($keywords).'" />
<meta http-equiv="content-language" content="fr" />';
/* Si la constante est définie */
if		(defined('META_ROBOT') ){
		echo '<meta name="robots" content="noindex" />';
		}
echo '<meta name="robots" content="noarchive" />
<link href="'.URL_INCLUDE.'/style.css" rel="stylesheet" type="text/css" />';
/* Si on est dans l'annuaire */
if		(defined('RUBRIQUE_ANNUAIRE') ){
		echo '<script language="javascript" type="text/javascript" src="'.URL_ANNUAIRE.'/annuaire.js"></script>';
		}
echo'</head>
<body>';

/* On a pas les dimensions de la fenêtre */ // on détermine les dimensions par le Javascript ou on donne des valeurs par défaut si le Javascript est désactivé
if		(empty($_SESSION['wid']) ||
		empty($_SESSION['hei']) ||
		!is_numeric($_SESSION['wid']) ||
		!is_numeric($_SESSION['hei']) ) { ?>		
		<script type="text/javascript">
		<!--
		var xtref = document.referrer.replace(/[<>]/g, '').replace(/&/g, '$');
		if		(window.innerHeight) {
				largeur = window.innerWidth;
				hauteur = window.innerHeight;
				}
		else if	(document.body.clientWidth) {
				largeur = document.body.clientWidth;
				hauteur = document.body.clientHeight;
				} 
		window.location = '<?php echo $_SERVER['PHP_SELF'] ?>?wid='+ largeur +'&hei='+ hauteur +'&xtref='+ xtref;
		//-->
		</script>
		<noscript>
		<?php
		$largeur = 973; // largeur par défaut si Javascript désactivé
		$hauteur = 548; // hauteur par défaut si Javascript désactivé
		$javascript_desactive = 'IMPORTANT : Le Javascript est désactivé dans votre navigateur. '.SITE_NOM.' s\'affiche dans une résolution inadaptée pour votre fenêtre et certaines fonctions sont désactivées. Je vous conseille d\'activer le Javascript dans les options de votre navigateur pour profiter pleinement du site.'; ?>
		</noscript>
		<?php }

/* On a la taille de la fenêtre  */
if		(eregi('firefox', $_SERVER['HTTP_USER_AGENT']) ) {
		$fenetre_largeur	= $_SESSION['wid'] - 20;
		$fenetre_hauteur	= $_SESSION['hei'] - 20;
		}
else	{
		$fenetre_largeur	= $_SESSION['wid'];
		$fenetre_hauteur	= $_SESSION['hei'];
		}

/* Contrôle pour savoir si les valeurs par défaut ont été activées */
if ($largeur <> NULL) { $fenetre_largeur = $largeur; }
if ($hauteur <> NULL) { $fenetre_hauteur = $hauteur; }

C'est peut-être un peu confus, mais je ne sais pas comment l'expliquer mieux que cela
 
WRInaute passionné
e-kiwi a dit:
>> Je précise que si nous n'avons pas de paramètres en session, on passe par du javascript

?? session php / javascript, y a un soucis là lol

vide ton cache, ton historique, quitte et relance ton navigateur. retourne sur ton site et regarde si de la premiere page du site à la seconde le SESS_ID passe par l URL (selon la config du serveur)

Tu as l'explication de session PHP et javascript avec mon code au-dessus.
Je comprend ta surprise?

Aucun paramètre de session passé par l'URL, par contre lors du test de mon site dans des outils, la variables est passée dans l'URL (pas de cookie ?).
 
WRInaute accro
moi je viens d aller sur ton site et la variable est bien passée en premiere page
(tu as du oublire ton header location qui fait que ta premiere page c est la seconde :)

-> sid=3cf743949aa651d78ee30c7bd01972a2
 
WRInaute accro
Tu rajoutes ca avant le session_start():

Code:
ini_set('session.use_trans_sid', 0); //don't show PHPSESSID parameter in links
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1); // use only cookies for sessions

Et tu seras certain de ne jamais avoir PHPSESSID dans tes URL.

Si tu veux absolument enregistrer une session chez quelqu'un qui aurait les cookies désactivés, il faudrait ajouter la possibilité de passer l'identifiant de session dans l'URL si, bien entendu, le browser n'est pas GoogleBot ou autre spider... là ça deviens plus compliqué.
 
WRInaute passionné
spoutnik a dit:
Tu rajoutes ca avant le session_start():

Code:
ini_set('session.use_trans_sid', 0); //don't show PHPSESSID parameter in links
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1); // use only cookies for sessions

Et tu seras certain de ne jamais avoir PHPSESSID dans tes URL.

Si tu veux absolument enregistrer une session chez quelqu'un qui aurait les cookies désactivés, il faudrait ajouter la possibilité de passer l'identifiant de session dans l'URL si, bien entendu, le browser n'est pas GoogleBot ou autre spider... là ça deviens plus compliqué.

Merci, mais peux-tu mettre les commentaires en français pour que je comprennent le code stp ?
 
WRInaute accro
medium69 a dit:
Merci, mais peux-tu mettre les commentaires en français pour que je comprennent le code stp ?

Y'a rien à comprendre, mais bon :lol:

Code:
ini_set('session.use_trans_sid', 0); //ne pas afficher le parametre PHPSESSID dans les liens
ini_set('session.use_cookies', 1);//utiliser les cookies pour les sessions
ini_set('session.use_only_cookies', 1); // utiliser seulement les cookies pour les sessions
 
WRInaute discret
Le mieux je pense, c'est dans ton code de ne pas faire de session_start() si tu détecte les bots google ou msn ou yahoo search
 
Discussions similaires
Haut