🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
9 messages
9 total messages Started by Hijaku Wed, 20 Nov 2002 16:18
PHP sessions
#6720
Author: Hijaku
Date: Wed, 20 Nov 2002 16:18
41 lines
1857 bytes
Ik ben met PHP op IIS (het moet IIS zijn, dus geen gezaag hierover)
bezig. Ik wens een loginscript te ontwerpen en zit knoei met php
sessions.

in mijn validatelogin-pagina staat er :
<?
	session_start();
	session_register('loggedin');
	...
	dan controleer ik of het een member is
	...
	en als het een member is dan doe ik
	$loggedin = 'ok';
	header('Location:private/member.php');
?>

In validatelogin.php kan ik zonder problemen $loggedin opvragen.
In mijn member-pagina probeer ik nu te controleren of er een waarde in
$loggedin zit anders moet de gebruiker terug gestuurd worden naar de
login-pagina.

zo ziet er member.php uit :
<?
	session_redister('loggedin');
?>
<html>
  <body>
     <?
         echo($loggedin);
     ?>
  </body>
</html>

En ik krijg volgende foutmelding : undefined variable: loggedin.  Een
kennis had me verteld dat ik in php.ini register_globals = On moest
zetten en het zou werken maar dat helpt niet.

Kan iemand me uitleggen wat er verkeerd loopt.
Alvast bedankt.

Hijaku.
Re: PHP sessions
#6723
Author: Wim Godden
Date: Wed, 20 Nov 2002 16:59
53 lines
2509 bytes
Je moet nog wel altijd session_start() oproepen... anders kan je nooit je
session-variabelen aanspreken...

Hijaku wrote:

> Ik ben met PHP op IIS (het moet IIS zijn, dus geen gezaag hierover)
> bezig. Ik wens een loginscript te ontwerpen en zit knoei met php
> sessions.
>
> in mijn validatelogin-pagina staat er :
> <?
>         session_start();
>         session_register('loggedin');
>         ...
>         dan controleer ik of het een member is
>         ...
>         en als het een member is dan doe ik
>         $loggedin = 'ok';
>         header('Location:private/member.php');
> ?>
>
> In validatelogin.php kan ik zonder problemen $loggedin opvragen.
> In mijn member-pagina probeer ik nu te controleren of er een waarde in
> $loggedin zit anders moet de gebruiker terug gestuurd worden naar de
> login-pagina.
>
> zo ziet er member.php uit :
> <?
>         session_redister('loggedin');
> ?>
> <html>
>   <body>
>      <?
>          echo($loggedin);
>      ?>
>   </body>
> </html>
>
> En ik krijg volgende foutmelding : undefined variable: loggedin.  Een
> kennis had me verteld dat ik in php.ini register_globals = On moest
> zetten en het zou werken maar dat helpt niet.
>
> Kan iemand me uitleggen wat er verkeerd loopt.
> Alvast bedankt.
>
> Hijaku.

--
------
Colocation/housing kosten te hoog --> http://www.housingcenter.be
--
Adverteren.be - 100% Nederlandstalig adverteren op kwalitatief hoogstaande
sites !
Re: PHP sessions
#6724
Author: Philip Paeps
Date: Wed, 20 Nov 2002 17:20
56 lines
2595 bytes
Hijaku <> wrote:
> Ik ben met PHP op IIS (het moet IIS zijn, dus geen gezaag hierover)

Ocharme.

> bezig. Ik wens een loginscript te ontwerpen en zit knoei met php sessions.
> 
> in mijn validatelogin-pagina staat er :
> <?

Hier zou ik al direct <?php van maken, anders ga je sukkelen met xml en andere
heiligheden.

> In validatelogin.php kan ik zonder problemen $loggedin opvragen.

Da's omdat die variable in scope is.

> In mijn member-pagina probeer ik nu te controleren of er een waarde in
> $loggedin zit anders moet de gebruiker terug gestuurd worden naar de
> login-pagina.
> 
> zo ziet er member.php uit :
> <?
>         session_redister('loggedin');
                    ^
Wie?  En waarom opnieuw in de sessie registreren?  Gewoon session_start()
roepen.

>          echo($loggedin);

Piep!

$_SESSION['loggedin'], bedoel je?

> En ik krijg volgende foutmelding : undefined variable: loggedin.  

Uiteraard, het is $_SESSION['loggedin'], en je had ook je sessie niet gestart,
waardoor het script zelfs niet aan de session-variables aankon.

> Een kennis had me verteld dat ik in php.ini register_globals = On moest
> zetten en het zou werken maar dat helpt niet.

Zet dat maar terug uit, en maak gebruik van superglobals.  Veiliger en beter
voor je bloeddruk.

> Kan iemand me uitleggen wat er verkeerd loopt.

Bij deze.

 - Philip

-- 
Philip Paeps                                                   philip@paeps.cx

  BOFH Excuse #416:
    We're out of slots on the server
Re: PHP sessions
#6730
Author: NightOwl
Date: Thu, 21 Nov 2002 10:13
10 lines
1703 bytes
> > Een kennis had me verteld dat ik in php.ini register_globals = On moest
> > zetten en het zou werken maar dat helpt niet.
>
> Zet dat maar terug uit, en maak gebruik van superglobals.  Veiliger en
beter
> voor je bloeddruk.

En waarom dan wel? Ik heb daar nog altijd geen goede reden voor gezien. De
gevallen waarin het gevaarlijk is om die register_globals aan te zetten zijn
zeldzaam volgens mij - tenzij je echt probeert slechte code te schrijven...
Re: PHP sessions
#6731
Author: Toni Van Remortel
Date: Thu, 21 Nov 2002 11:12
29 lines
2302 bytes
NightOwl wrote:

>> > Een kennis had me verteld dat ik in php.ini register_globals = On moest
>> > zetten en het zou werken maar dat helpt niet.
>>
>> Zet dat maar terug uit, en maak gebruik van superglobals.  Veiliger en
> beter
>> voor je bloeddruk.
> 
> En waarom dan wel? Ik heb daar nog altijd geen goede reden voor gezien. De
> gevallen waarin het gevaarlijk is om die register_globals aan te zetten
> zijn zeldzaam volgens mij - tenzij je echt probeert slechte code te
> schrijven...

Al je variabelen die je gebruikt en die je gewoon dynamisch aanmaakt (wat 
wel eens voorkomt indien je scripts met meer dan 2500 lijnen hebt), dan 
zijn die plots allemaal aanpasbaar indien je register_globals aan zet.
Anders niet.

Is eigenlijk een bescherming van slecht geschreven code, maar ik heb geen 
zin om elke variabele die ik gebruik eerst te gaan initialiseren, want dan 
heb ik nog eens 100 lijnen extra in mijn code, en die is al veel te lang.

Dat is mijn ondervinding hieromtrent. Ik heb die register_globals uit staan.

-- 
Groeten, ToniVR
Researcher on LinEmb-project @ D-science lab.
Anti-spam: E-mailadres is bij softhome.
Re: PHP sessions
#6732
Author: Philip Paeps
Date: Thu, 21 Nov 2002 13:20
26 lines
2355 bytes
NightOwl <ISOIZNWKOOOT@spammotel.com> wrote:
> > > Een kennis had me verteld dat ik in php.ini register_globals = On moest
> > > zetten en het zou werken maar dat helpt niet.
> >
> > Zet dat maar terug uit, en maak gebruik van superglobals.  Veiliger en
> > beter voor je bloeddruk.
> 
> En waarom dan wel? Ik heb daar nog altijd geen goede reden voor gezien. De
> gevallen waarin het gevaarlijk is om die register_globals aan te zetten zijn
> zeldzaam volgens mij - tenzij je echt probeert slechte code te schrijven...

Zoals Toni al schreef is het een bescherming tegen 'slechte code', maar het is
ook een veiligheidsoverweging.  Vaak is het interessant om te weten waar een
variable 'vandaan komt' (get, post, env, cookie, session) voor je hem
gebruikt.

Jij gebruikt de variable 'loggedin' in je session.  Als iemand die nu met GET
even meestuurt, en jij vergat hem te initialiseren...?

 - Philip

-- 
Philip Paeps                                                   philip@paeps.cx

  If project content is allowed to change freely, the rate of
  change will exceed the rate of progress.
Re: PHP sessions
#6751
Author: NightOwl
Date: Fri, 22 Nov 2002 16:29
13 lines
1969 bytes
> Al je variabelen die je gebruikt en die je gewoon dynamisch aanmaakt (wat
> wel eens voorkomt indien je scripts met meer dan 2500 lijnen hebt), dan
> zijn die plots allemaal aanpasbaar indien je register_globals aan zet.
> Anders niet.

erm... bedoel je hiermee dat een variabele die je in een functie aanmaakt
volgens jou dan direct global is ?

Indien je dat idd bedoeld vrees ik dat je het fout voorhebt... alleen
variabelen die via POST, GET of SESSION binnenkomen worden bij het begin van
je script automatisch global - niet die andere ...

en dat een GET-var automatisch global is, is volgens mij geen probleem
Re: PHP sessions
#6750
Author: NightOwl
Date: Fri, 22 Nov 2002 16:31
8 lines
1720 bytes
> Jij gebruikt de variable 'loggedin' in je session.  Als iemand die nu met
GET
> even meestuurt, en jij vergat hem te initialiseren...?

dat bedoel ik dus met slechte code ... zo heel veel vars zijn er normaal
niet in je script die je niet automatisch initialiseert door ze hun waarde
toe te kennen - en zij die er al zijn zijn dan meestal nog niet eens
cruciaal ...
Re: PHP sessions
#6433
Author: Toni Van Remortel
Date: Mon, 02 Dec 2002 12:59
16 lines
1724 bytes
NightOwl wrote:

>> Al je variabelen die je gebruikt en die je gewoon dynamisch aanmaakt (wat
>> wel eens voorkomt indien je scripts met meer dan 2500 lijnen hebt), dan
>> zijn die plots allemaal aanpasbaar indien je register_globals aan zet.
>> Anders niet.
> 
> erm... bedoel je hiermee dat een variabele die je in een functie aanmaakt
> volgens jou dan direct global is ?

Nee, wel buiten de functies.

-- 
Groeten, ToniVR
Researcher on LinEmb-project @ D-science lab.
Anti-spam: E-mailadres is bij softhome.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads