comment créer une session différente dans nouvelle fenêtre ?

Eléphant du PHP | 84 Messages

04 mai 2007, 15:13

Bonjour,

Je voudrais créer une session différente de la session active lors d'un clic sur un lien permettant d'ouvrir une nouvelle fenetre.

Comment faire ?

Merci,

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2007, 15:22

Tu ne peux pas... la session est un lien établi entre le serveur et un process du navigateur. Ouvrir une nouvelle fenêtre aura pour effet de partager la session et il faut que l'utilisateur relance un nouveau navigateur (et que celui-ci s'ouvre dans un nouveau processus) pour qu'une nouvelle session soit créée.

Ceci dit, dans la mesure où la session à pour but d'identifier l'utilisateur connecté et de le suivre, il n'y a aucun intérêt à créer deux sessions pour un même user, et tu dois très certainement pouvoir résoudre ça avec un peu de developpement en fonction de ton besoin précis :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2007, 15:34

Je m'en doutais :cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2007, 15:44

Mais si tu nous disais ce dont tu as besoin, on pourrait peut être te trouver une autre solution pour le faire ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 84 Messages

04 mai 2007, 16:23

Ben en fait des informations différentes sont affichées dans une nouvelle fenetre en fonction de la selection du visiteur dans une liste principale.

Chaque clic dans chaque fenêtre affiche d'autres informations en rapport avec l'information de départ choisie dans la liste.

Le problème avec les variables de sessions est que si l'on passe d'une fenêtre à l'autre on fini par afficher uniquement les informations sur la dernière sélection faite dans la liste ( vu qu'il s'agit du même processus).

Donc est-il possible de mémoriser chaque information de départ pour chaque fenêtre sans être obliger de transmettre systématiquement un identifiant par l'url? Via le nom des fenêtres par exemple :? ?

Je ne suis pas sûr d'avoir été clair :oops:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2007, 17:07

Je ne suis pas sur d'avoir tout bien compris, alors je me lance et pis si c'est pas ça, bah ça sera un coup pour rien ;)

Dans ton tableau $_SESSION, tu peux stocker aussi bien des valeurs que des sous-tableaux. Ne peut on pas imaginer un sous-tableau par fenêtre par exemple ? ainsi tu n'as bien qu'une session mais tu conserves dedans toutes les valeurs saisies dans tes différentes fenêtres sans les écraser, et tu peux aisément retrouver en parcourant les tableaux avec des foreach par exemple :)
// page 1
$_SESSION['page_1'] = array();
$_SESSION['page_1']['nom'] = ...;
$_SESSION['page_1']['prenom'] = ...;

// page 2
$_SESSION['page_2'] = array();
$_SESSION['page_2']['profession'] = ...;
...
avec bien sur des noms plus explicites que page_1 ;)
quoi t'en dis ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2007, 17:55

Pas bête :D
Je vais tester la chose :D

Merci,

Eléphant du PHP | 84 Messages

04 mai 2007, 18:01

Mais j'y pense...pour parcourir le tableau il faut savoir sur quelle fenêtre on se trouve.

Donc le problème reste comment identifier chaque fenêtre de façon distincte.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 mai 2007, 13:25

Ben ce sont bien des scripts différents dans chaque fenêtre nan ? donc chacun est capable de savoir les valeurs qu'il utilise (tu peux coller une constante en début de script par exemple :))

Et puis connaissant les différents scripts que tu mets en place, tu sais quelles sont les constantes disponibles, tu peux donc facilement testes les index pour savoir s'ils existent ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...