PHP/Apache: $_SESSION perdue

Fermé
alandugatinais Messages postés 3 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 25 juillet 2008 - 25 juil. 2008 à 10:44
 alandugatinais - 26 août 2008 à 10:39
Bonjour,
Suivant le code php qui me pose problème. Quand je clique sur le bouton "charger" ou sur le lien hypertexte "Reload", la page se recharge mais le contenu de $_session est perdue et donc est réinitialisé: pourquoi ?
Pour info, ce code php est une modélisation d'un autre problème où je dois recharger ma page pour insérer en dur une adresse postal créée dans un formulaire, mon but étant de sauvegarder tous les nouvelles adresses postales dans $_SESSION avant de les insérer dans une base mySQL.

Dans php.ini, j'ai session.cache_limiter = nocache

<?php
session_start();
?>
<title>TEST</title>
<?php

if (count($_SESSION)==0) {
echo "<br>vide, on le charge<br>";
for ($i=1;$i<10;$i++) {
$_SESSION[$i]=$i;
}
foreach ($_SESSION as $key=>$Value) echo "$key $value";
}
else {
echo "<br>plein, on l'affiche<br>";
foreach ($_SESSION as $key=>$Value) echo "$key $value";
}
?>
<form name="formulaire">
<a href="test4.php">Reload</a>
<input type="button" value="Charger" onclick="Charger();">
</form>
<script>
function Charger() {
document.formulaire.action='test4.php';
document.formulaire.submit();
}
</script>
A voir également:

2 réponses

salut alandugatinais, j'ai le même problème.
J'étais sur free avant, et je suis passer sous un serveur local, en gardant le meme script, et maintenant à chaque fois que je reload, je perds la variable session...
Je penses que ça peut être un problème de php.ini, mais lequel ?!
NEED HELP !!!
0
alandugatinais
26 août 2008 à 10:39
J'ai fini par trouver quelques éléments d'informations:
- il est recommandé d'utiliser des string plutôt que des integer comme clé dans $_SESSION
- dans php.ini, il est recommandé de mettre la variable "register_globals" à off
- en entête de chaque nouvelle page php ne pas oublier de mettre session_start()

Sinon mon problème était qu'une variable globale était nommé $_SESSION

Cordialement,

Alan du Gatinais
0