Bonjour a tous
C’est la premiere fois que je poste car je trouve toujours la solution de mes problemes dans le forum mais malheureusement aujourd’hui ce n’est pas le cas.
Enfin après avoir tout essayé je me suis décide de poser mon problème.
Je développe en site en php (dynamique avec des includes) et je souhaite créer un espace membre en utilisant des sessions. Ca fait déjà une semaine je me casse la tête sur ces maudits sessions.
En local (easyphp) tout marche.
Le problème viens lorsque j'execure sur le serveur: a chaque refresh ou nouvelle page consulté le session_id() change

Voici la configuration php
PHP Version 4.4.9
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_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 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /…../monsite/tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On Off
session.use_trans_sid Off Off
Le fichier 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
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
 
<?php
session_save_path("/...../monsite/tmp");
session_start();
$_SESSION[‘bidon’] = “Ca marche”;
error_reporting(E_ALL);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">	
<html>
<head>
		<?php
		$connect = mysql_connect("host","user","pass");
		mysql_select_db("bd", $connect);
		mysql_query("SET NAMES UTF8",$connect);
		if(!isset($_GET["q"])) $aq="a";
		else $aq=$_GET["q"];
		$requete="SELECT * FROM header WHERE id=\"".$aq."\"";
		$result=mysql_query($requete,$connect);
		$row = mysql_fetch_row($result);
		echo "<title>".$row[1]."</title>";
		echo "<link href=\"js_css/presentation.css\" rel=\"stylesheet\" type=\"text/css\">";
		echo "<link href=\"js_css/menuv.css\" rel=\"stylesheet\" type=\"text/css\">";
		echo "<link rel=\"icon\" type=\"image/png\" href=\"image/favicon.png\">";
		echo "<script type=\"text/javascript\" src=\"js_css/date.js\"></script>";
		echo "<script type=\"text/javascript\" src=\"js_css/dynMenu.js\"></script>";
		echo "<script type=\"text/javascript\" src=\"js_css/browserdetect.js\"></script>";
		echo "<meta name=\"Author\" content=\"Edi Kitar\">";
		echo "<meta name=\"Identifier-URL\" CONTENT=\"http://www.MONSITE.COM\">";
		echo "<meta name=\"Category\" content=\"sport, football, soccer\">";
		echo "<meta name=\"Keywords\" content=\"".$row[3]."\">";
		echo "<meta name=\"Description\" lang=\"bg\" content=\"".$row[2]."\">";
		echo "<meta name=\"Distribution\" content=\"golobal\">";
		echo "<meta name=\"Publisher\" content=\"EdiKitar\">";
		echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
	?>
</head>
<body>
<div id="navi">
			<ul id="menuDeroulant">
				<li><a href="index.php?q=a">Start</a></li>
				<li><a href="index.php?q=b">History</a></li>
				<li><a href="index.php?q=c">Incredible</a></li>
			</ul>
	</div>
if(!isset($_GET["q"])) $aq="a";
		else $aq=$_GET["q"];
		$requete="SELECT * FROM link WHERE id=\"".$aq."\"";
		$result=mysql_query($requete,$connect);
		$row = mysql_fetch_row($result);
		echo "<div id=\"contenu\" style=\"background: url(".$row[2].") no-repeat center\">";
		include($row[1]);
		echo "</div>";
		mysql_close();
…..
</body>
</html>
Un des fichiers à insérer START.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
 
<br><br>
<p class="text">SALUT</p>
<?php
	$requeteH="SELECT id,title FROM header WHERE id LIKE 'hist%' ORDER BY id DESC LIMIT 0,1";
	$requeteI="SELECT id,title FROM header WHERE id LIKE 'incr%' ORDER BY id DESC LIMIT 0,1";
	$resultH=mysql_query($requeteH,$connect);
	$rowH = mysql_fetch_row($resultH);
	$resultI=mysql_query($requeteI,$connect);
	$rowI = mysql_fetch_row($resultI);
	echo "<img src=\"image/new.gif\" class=\"floatLeft\"><br><br>";
	echo "<a href=\"index.php?q=b\" class=\"listeB\">История</a> ";
	echo ": <a href=\"index.php?q=".$rowH[0]."\" class=\"liste\">".$rowH[1]."</a><br>";
	echo "<a href=\"index.php?q=c\" class=\"listeB\">Знаеш ли?</a> ";
	echo ": <a href=\"index.php?q=".$rowI[0]."\" class=\"liste\">".$rowI[1]."</a><br>";
	echo session_id();
	echo $_SESSION[‘bidon’] ;
?>
La navigation se fait avec le menu dans index.php
J’ai changé le save_path pour voir si les sessions sont bien créées et c’est le cas. J’ai donne permission 777 pour teste.
De se que j’ai compris en appelant session_start() le navigateur envoie tous les cookies qu’il a au serveur. Si le serveur ne trouve pas le cookie avec session_id() il crée une nouvelle session (car nouveau visiteur).
J'ai modifier cookie_lifetime 0 -> 1500 mais cela n'a rien change
Quelque chose d’étonnant
En effectuant le test suivant :
J’enleve tout ce qui est dynamique. Je m’explique
J’ai les deux fichier index.php et start.php mais sans unclude dans index.
La navigation simple avec
<a href="start.php">Start</a> (dans index.php)
<a href="index.php">Index</a> (dans start.php)
Bien évidemment je place session_start() au debut de start.php
Je constate que tout marche : les session_id conserve ainsi que la variable

J’utilise IE8 (j’ai fait de test en acceptant tous les cookies) et Mozzila3
Je suis hebergé chez 1and1

est-ce que le probleme peut venir des META que j'ai?

Si quelqu’un a une idee d’où sa vient le probleme.
En attendant je vais balancer le site sur free.fr pour voir si c’est un probleme venant de 1and1 parce que j’ai vu qu’il y a beaucoup de souci avec eux.