Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php/html] frames + sessies. (https://forum.scholieren.com/showthread.php?t=557895)

Fade of Light 03-08-2003 21:32

[php/html] frames + sessies.
 
ik heb een probleem met sessies in combinatie met frames. Allereerst heb ik altijd netjes de sessies werkend gekregen in main (dan had ik onderaan de pagina steeds ene link naar de volgende pagina gemaakt). Daar zit dus de fout NIET.

Nu heb ik een login pagina, die registreert de variabele $coord. Daar doe ik include('totaal.php'); (in die include zit de fout ook zeker niet)
Code:

totaal.php:
<?php
session_start();
// even voor de duidelijkheid, de sessie coord doet het hier goed.
$coord = $_SESSION['coord'];

/* als ik hier echo $coord; zou doen, dan zou ik het goede antwoord krijgen */

?>
<frameset cols="20%,80%">

<frame src="homebar.php">
<frameset rows="20%,80%">
<frame src="details.php">
<frame src="home.php" name="main">

</frameset>

en dan heb ik homebar.php:

Code:

<?
session_start();
$coord = $_SESSION['coord'];
echo $coord;
?>


Nu krijg ik geen uitvoer. De $coord is leeg.

Warum warum?

Kaboon 03-08-2003 21:44

Ik ben geen ster met sessies in PHP. Ik heb wel een idee waarom het niet gaat werken.

Ik denk dat je op deze manier 2 sessies start? Eentje in totaal.php en eentje in homebar.php. Maar ik neem aan dat het maar 1 moet zijn?

Is het niet zo: sessie aanmaken in totaal.php dan in homebar.php de sessie variable $coord gewoon weer opvragen door middel van bijvoorbeeld require('totaal.php'); ?

Waarom überhaubt geen speciale functie / class gebruiken die sessies registreert?

Enlightenment 03-08-2003 22:03

Het zou kunnen dat de request voor die ene frame gedaan wordt terwijl de sessie data nog niet is weggeschreven, maar dan zou het bij een refresh wel moeten werken.

Maar er kleven nog meer nadelen aan frames, waarom wil je persé frames gebruiken? Desnoods iframes ofzo.

Fade of Light 03-08-2003 23:21

Citaat:

Enlightenment schreef op 03-08-2003 @ 23:03:
Het zou kunnen dat de request voor die ene frame gedaan wordt terwijl de sessie data nog niet is weggeschreven, maar dan zou het bij een refresh wel moeten werken.

Maar er kleven nog meer nadelen aan frames, waarom wil je persé frames gebruiken? Desnoods iframes ofzo.

frames was wel handig met het design =)

idd is het verder overbodig lol :D maar ik stuitte erop en het leek me toch wel te moeten werken...anders is php wel heel crappy

Fade of Light 03-08-2003 23:23

Citaat:

Kaboon schreef op 03-08-2003 @ 22:44:
Ik denk dat je op deze manier 2 sessies start? Eentje in totaal.php en eentje in homebar.php. Maar ik neem aan dat het maar 1 moet zijn?
Nee zo werkt dat niet :)

session_start(); moet je boven iedere pagina zetten die binnen het domein van je sessies vallen.

Citaat:

Is het niet zo: sessie aanmaken in totaal.php dan in homebar.php de sessie variable $coord gewoon weer opvragen door middel van bijvoorbeeld require('totaal.php'); ?
dat gebeurt dus met $coord = $_SESSION['coord'];

Citaat:

Waarom überhaubt geen speciale functie / class gebruiken die sessies registreert?
waarom moeilijker maken dan nodig? Daarbij denk ik dat je uitging van een verkeerd begrip van sessies :)

Enlightenment 04-08-2003 02:58

Ik denk dat je beter geen frames kunt gebruiken, zodoende voorkom je dat er 2 requests parallel lopen.

Chimera 04-08-2003 06:48

Citaat:

Enlightenment schreef op 04-08-2003 @ 03:58:
Ik denk dat je beter geen frames kunt gebruiken, zodoende voorkom je dat er 2 requests parallel lopen.
Nee hoor, maar je moet gewoon in je frameset pagina geen dingen doen als sessies aanmaken.

Manuzhai 04-08-2003 10:03

In plaats van frames kan je tegenwoordig in de meeste gevallen ook een CSS-gebaseerde oplossing gebruiken, en dat is nog netter ook.

Fade of Light 04-08-2003 11:33

Citaat:

Manuzhai schreef op 04-08-2003 @ 11:03:
In plaats van frames kan je tegenwoordig in de meeste gevallen ook een CSS-gebaseerde oplossing gebruiken, en dat is nog netter ook.
alleen buiten mijn kennisgebied :D

naja ik ga wel aanklooien zonder frames dan :)

Chimera: en toch gaat het fout ;)

Kaboon 04-08-2003 12:44

En sessies vallen nou net buiten mijn kennisgebied... ;) Bedankt voor de verklaring.

eddie 04-08-2003 13:03

Wat dacht je van:
Code:

<?php
session_start();
$sid = session_id();


// even voor de duidelijkheid, de sessie coord doet het hier goed.
$coord = $_SESSION['coord'];
/* als ik hier echo $coord; zou doen, dan zou ik het goede antwoord krijgen */

?>
<frameset cols="20%,80%">

<frame src="homebar.php?sid=<?=$sid?>">
<frameset rows="20%,80%">
<frame src="details.php?sid=<?=$sid?>">
<frame src="home.php?sid=<?=$sid?>" name="main">

</frameset>

DUs de sid meegeven in de source en uitlezen en zetten in je andere pagina's.


Alle tijden zijn GMT +1. Het is nu 05:06.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.