[RESOLU]Sessions non transmise

Sessions non transmise [RESOLU] - PHP - Programmation

Marsh Posté le 26-03-2008 à 15:47:38    

En gros, je veux utiliser un système de session ( pas autre choses ! )
Et j'ai l problème suivant :
Remplir une fois les $_SESSION de variables incluses dans l'URL ( $_GET .... )
Sauf que, pour cela il faut utiliser un if else et c'est la que mes session bug :
Quand je clique sur un lien, les sessions ne sont pas transmises !
Le script :
<?php
session_start(); // On démarre la session AVANT toute chose
// On s'amuse à créer quelques variables de session :
$id = $_GET['idmix'] / $_GET['time'];
$_SESSION['id'] = $id;
$_SESSION['pseudo'] = $_GET['pseudo'];
$_SESSION['peuple'] = $_GET['peuple'];
$_SESSION['race'] = $_GET['race'];
$_SESSION['orientation'] = $_GET['orientation'];
// Maintenant que le session_start est fait, on peut taper du code HTML
?>
 
 
 
Il récupère correctements les variables mais, dès le premier changement de page, c'est la merde.
Je me demande si mettre les variables dans une page "mère" et faire des include pour tout ne marcherais pas ? Dans les genre des frames en HTML ...


Message édité par l0g4n le 26-03-2008 à 16:45:06

---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 26-03-2008 à 15:47:38   

Reply

Marsh Posté le 26-03-2008 à 15:49:23    

Quelle est l'erreur exactement?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-03-2008 à 15:51:28    

Eh bien aucune variable n'est transmisse sur les autres pages : les $_session n'existes pas !

Reply

Marsh Posté le 26-03-2008 à 15:51:43    

montre le code.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-03-2008 à 16:01:04    

par exemple, un lien vers :
<?php
session_start(); // On démarre la session AVANT toute chose
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Titre de ma page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Re-bonjour !</p>
<p>
<br />
<?php echo $_SESSION['id']; echo $_SESSION['pseudo']; echo $_SESSION['race_nom']; ?><br />
<a href="index.php">revenir</a>
</p>
</body>
</html>
Ne me montre rien la ou je devrait avoir un pseudo ( le mien ;) )

Reply

Marsh Posté le 26-03-2008 à 16:02:04    

l0g4n a écrit :

Eh bien aucune variable n'est transmisse sur les autres pages : les $_session n'existes pas !


 
T'as l'identifiant de session, sur tous les liens HTML que tu suis? Sinon, le cookie est bien sauvegardé par ton navigateur? (la plupart des navigateurs permettent d'avoir la liste des cookies et leur contenu... sinon, cherche dans les fichiers de configuration de ton utilisateur... -ou regedit, si t'es sous Windows, j'en sais rien).
 
Tu executes bien session_start();, dans la nouvelle page?
 
C'est quoi ton histoire de if-then-else? Si t'utilises qu'une seule page, et que tu réintègres pas tes $_GET dans les URLs des liens (ce qui rendrait inutile la session, donc je suppose que c'est pas ce que tu fais), faut effectivement sauter ton bloc de code qui sauvegarde les $_GET dans la session, sinon tu mets des données vides, dans tes variables de session, et c'est pour ça que tu retrouves pas les valeurs originales...
 
Il te faut un truc genre:
 


if (isset($_SESSION['id']) == false)
{
   // Sauvegarde les "$_GET" dans "$_SESSION".
}


 
Enfin bien sûr, si c'est pour un site public, faut que tu vérifie pas mal de trucs, niveau sécurité des données passées par "$_GET"...

Reply

Marsh Posté le 26-03-2008 à 16:02:26    

Et si tu fais un print_r($_SESSION) juste après le session_start ça donne quoi?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-03-2008 à 16:06:02    

Il me sort :
"Array ( )"
Mais, tu me dis de rentrer l'id de session dans mes liens ; php ne le fais pas tout seul ?
 
PS : suis sous tux avec un apache 2 et php5...


Message édité par l0g4n le 26-03-2008 à 16:07:14
Reply

Marsh Posté le 26-03-2008 à 16:07:26    

normalement php le fait tout seul, si...ça dépend de la configuration.
Si tu affiches session_id() dans chaque page il répond quoi?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-03-2008 à 16:09:24    

Il m'indique "ed9100698e95bce362ceaef558b027da" sur la seconde page, donc il transmet bien quelque chose, mais quoi ? De plus, il n'indiqu rien sur la remière mais c'est normale ( je pense ! )


Message édité par l0g4n le 26-03-2008 à 16:10:06
Reply

Marsh Posté le 26-03-2008 à 16:09:24   

Reply

Marsh Posté le 26-03-2008 à 16:11:38    

Le fait que les variables viennent d'un $_GET ? C'est peut-être mon problème ?

Reply

Marsh Posté le 26-03-2008 à 16:15:10    

Je peux me tromper, mais il devrait il me semble t'afficher un id de session sur la première page aussi...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-03-2008 à 16:16:59    

Ah ? C'est peut - être la que sa bug, une mauvaise config de php.ini ? Ou mon script qui merdouille ?
De plus, si je déclare des $_SESSION['machin'] en dur ( style $_SESSION['nom'] = "coucou"; ) Sa marche partout  :??:
Par contre, si je fais un mélange, c'est le bordel !!


Message édité par l0g4n le 26-03-2008 à 16:33:21
Reply

Marsh Posté le 26-03-2008 à 16:44:51    

Problème résolu :
Il faut déclarer une des $_SESSION en dur et puis sa marche ??

Reply

Marsh Posté le 26-03-2008 à 16:46:12    

Il doit y avoir un soucis dans ton code quelque part...montre le code complet de ta page qui crée la session à l'origine?


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed