[php] sessie variabele blijft niet bestaan

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
met het volgende script probeer ik een string op te slaan in een sessievariabele
code:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();

    session_register("tablename");
    $tablename = "forum_discussie";
    $_SESSION['tablename'] = $tablename;
    

?> 
<a href="../show/show_discussie.php">link</a>


lees ik nu met een andere pagina uit wat er allemaal is opgeslagen in de sessievariabelen:
print_r($_SESSION);

dan vind ik netjes de string die opgeslagen is in de sessie "tablename"
klik ik vervolgens door met de link knop naar de show_discussie_php pagina
en check ik wederom de waardes in de sessie met print_r($_SESSION);
dan is de waarde in de sessie variabele plots verdwenen

phpinfo:
register_globals = enabled
local:on master:on
php versie 4.2.3

ik zeg :?

[ Voor 14% gewijzigd door Verwijderd op 12-03-2003 14:07 . Reden: phpinfo aangepast ]


Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
Het lijkt erop dat de session id niet wordt meegstuurd naar de volgende pagina, ik heb namelijk precies hetzelfde probleem gehad....

Heb je transparent session id meegebakken in PHP? (Dan wordt de session id altijd meegestuurd in pagina's binnen dezelfde site)
Als dat niet kan, dan zou je in de url de session id mee kunnen sturen....

Voor voorbeelden en meer info: *klik*

[ Voor 28% gewijzigd door RupS op 12-03-2003 14:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

niet perongeluk session_start() vergeten ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ThaRups schreef op 12 March 2003 @ 14:14:
Heb je transparent session id meegebakken in PHP? (Dan wordt de session id altijd meegestuurd in pagina's binnen dezelfde site)
wat bedoel je met transparant meegebakken session id's?

ik heb eerder op een andere server gewerkt met sessions en nooi problemen gehad, werkt perfect
nu op deze server (waar hoogstwaarschijnlijk) de php van een hogere versie is, werkt het ineens bagger

Acties:
  • 0 Henk 'm!

Verwijderd

session_register("tablename");
$_SESSION['tablename'] = $tablename;
Fout!
session_register mag je niet samen gebruiken met $_SESSION, check de manual maar.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Vergeet je niet dat als register_globals aan staat, zoals je weet, dat je mogelijk je sessie waarden overschrijft als je uberhaupt de variabele $tablename aanpast?

In die zin is het, om verschillende soorten data te scheiden, veel overzichtelijker om met register_globals op Off te werken.
wat bedoel je met transparant meegebakken session id's?
http://nl2.php.net/manual...ini.session.use-trans_sid

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
prima.... had het reeds beide geprobeerd, boven en onder
achter en voor
ze staan er nu toevallig beide zo in, in de code is 1 van de 2 daadwerkelijk weg-gecomentarieerd.

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
En misschien heb je het session_savepath verkeerd staan? Dat je op een windows pc zit te werken en dat ie het in /tmp/ wil gaan opslaan oid. Zou het ook nog aan kunnen liggen...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
/dev/null schreef op 12 maart 2003 @ 14:34:
En misschien heb je het session_savepath verkeerd staan? Dat je op een windows pc zit te werken en dat ie het in /tmp/ wil gaan opslaan oid. Zou het ook nog aan kunnen liggen...
lijkt me niet
site draait bij proffesioneel hosting bedrijf dacht ik toch wel zo te denken

heb zo ook het idee dat de sessie var overschreven wordt doordat register_globals aanstaat
de vraag is nu door wat... heb alle mogelijkheden uitgesoten waardoor de var overschreven zou kunnen worden
de sessie var bestaat 1 pagina, link ik door dan is die weg!

Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
Verwijderd schreef op 12 March 2003 @ 14:37:
[...]
site draait bij proffesioneel hosting bedrijf dacht ik toch wel zo te denken
ik zie je nergens melden of trans sess id nou uit of aan staat, maar als je op die link klikt die ik je gaf dan zie je ook het volgende staan:
Alternatively, you can use the constant SID which is always defined. If the client did not send an appropriate session cookie, it has the form session_name=session_id. Otherwise, it expands to an empty string. Thus, you can embed it unconditionally into URLs.
je kunt dus de session id in de URL zetten, en zo zeker weten dat dezelfde sessie actief blijft.
Ik vermoed nu dat er op pagina 2 gewoon een nieuwe sessie met een nieuwe session id gestart wordt...

Van de PHP site:
code:
1
2
3
Hello visitor, you have seen this page <?php echo $count; ?> times.<p>

To continue, <A HREF="nextpage.php?<?php echo SID?>">click here</A>


Mah goed, dat had je zelf natuurlijk ook kunnen vinden :)

Acties:
  • 0 Henk 'm!

Verwijderd

Misschien iets te simpel gedacht maar heb je session_start() wel op alle pagina's staan ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 12 maart 2003 @ 14:46:
Misschien iets te simpel gedacht maar heb je session_start() wel op alle pagina's staan ?
hahaha
als dat niet zo was geweest, dan,... dan,....
dan zou dat best stom zijn :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tharups,...
denk het te gaan snappen, maar <?php echo SID?> levert geen output op
session.use_trans_sid is enabled

Acties:
  • 0 Henk 'm!

  • RupS
  • Registratie: Februari 2001
  • Laatst online: 17-07 14:45
Verwijderd schreef op 12 March 2003 @ 15:14:
denk het te gaan snappen, maar <?php echo SID?> levert geen output op
Aha, dat heb ik dus ook gehad.... (dacht al dat het aan mij lag ;) )
Ik zal dan ook wel ergens wat fout doen... ik heb het destijds opgelost d.m.v. session_id() mee te sturen... dus in plaats van de constante SID -> session_id()

Als iemand een ander idee hierover heeft hoor ik het graag... Het werkte daarmee destijds wel bij mij (register globals off trouwens)
session.use_trans_sid is enabled
Dat is vreemd, dan zou het gewoon moeten werken bij pagina's binnen dezelfde site.... (als je relatieve paden gebruikt, en dat doe je...)

[ Voor 6% gewijzigd door RupS op 12-03-2003 15:40 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik stuur nu over de url de sessie_id mee
en ontvang deze op volgende pagina met:

<?php
session_start();
session_id($_GET['session_id']);
.......

het mag niet baten

Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Verwijderd schreef op 12 March 2003 @ 15:53:
ik stuur nu over de url de sessie_id mee
en ontvang deze op volgende pagina met:

<?php
session_start();
session_id($_GET['session_id']);
.......

het mag niet baten
php.net:
If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose.

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose.
Dan moet je dat natuurlijk ook doen! :)
PHP:
1
2
3
<?php
session_id($_GET['session_id']);
session_start();



edit: Rotjeknor was sneller....:/

[ Voor 10% gewijzigd door beetle71 op 12-03-2003 16:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
beetle71 schreef op 12 maart 2003 @ 16:05:
[...]


Dan moet je dat natuurlijk ook doen! :)
PHP:
1
2
3
<?php
session_id($_GET['session_id']);
session_start();
ook dat hadden we reeds geprobeerd
ik deed het naar aanleiding van exact hetzelfde voorbeeld als jij nu aanhaalt.

Acties:
  • 0 Henk 'm!

Verwijderd

ThaRups schreef op 12 March 2003 @ 15:40:
[...]

Aha, dat heb ik dus ook gehad.... (dacht al dat het aan mij lag ;) )
Ik zal dan ook wel ergens wat fout doen... ik heb het destijds opgelost d.m.v. session_id() mee te sturen... dus in plaats van de constante SID -> session_id()

Als iemand een ander idee hierover heeft hoor ik het graag... Het werkte daarmee destijds wel bij mij (register globals off trouwens)


[...]


Dat is vreemd, dan zou het gewoon moeten werken bij pagina's binnen dezelfde site.... (als je relatieve paden gebruikt, en dat doe je...)
SID levert alleen output op als de sessie niet lokaal als cookie wordt bijgehouden.

Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

PHP Warning: Your script possibly relies on a session side-effect which
existed until PHP 4.2.3. Please be advised that the session ex
tension does not consider global variables as a source of data, unless
register_globals is enabled. You can disable this functionality
and this warning by setting session.bug_compat_42 or session.bug_compat_warn to
off, respectively. in /www/future.abstrakt.ch/src/html/
includes/xarSession.php on line 239

this error is generated starting with php 4.3 and up. (running 4.4 here)


heeft dat er nix mee te maken?

edit:

nee dus. Weer veel te gehaast

[ Voor 98% gewijzigd door Brakkie op 12-03-2003 16:29 ]

Systeem | Strava


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
eerste post bovenaan:

phpinfo:
register_globals = enabled
local:on master:on
php versie 4.2.3

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
om topic ff af te sluiten:
heb mn sessie variabele een andere naam gegeven, zodat ze niet overschreven kunnen worden door andere lokale variabelen met dezelfde naam, omdat register globals enabled is.

sessie variabele waarde toekennen
$tablename_session=$tablename;
$_SESSION['tablename_session'];

sessie variabele ophalen
$tablename=$_SESSION['tablename_session'];

zo werkt het 'naar behoren' :)
Pagina: 1