Article View: be.comp.programming
Article #7981Re: php variabelen
From: Philip Paeps
Date: Thu, 11 Jul 2002 00:11
Date: Thu, 11 Jul 2002 00:11
72 lines
3175 bytes
3175 bytes
Vincent Spruyt <info@computersecurity.be> wrote:
> Hoe kan je in php bij het laden van een pagina meteen een variabele
> meegeven? (sorry, ik ken eigenlijk geen php ;)
De makkelijkste manier is uiteraard met session cookies. Maar als je wil dat
dat werkt zonder dat de gebruikers cookies lokaal moet bijhouden zul je wel
PHP moeten configuren met de --enable-trans-sid optie. Ik weet niet of dat
run-time aan te passen is in php.ini, of met een functie.
Komt erop neer dat je de variable in een sessie gaat registeren (da's zoals
een cookie, maar dan serverside, niet client-side). Die is dan bruikbaar in
elk ander script dat die sessie laadt.
Voorbeeld:
/* index.php */
<?php
// Een sessie altijd starten voor je output stuurt!
session_start();
// Registreer de variable submenu in de sessie
// Je kunt die uiteraard conditionally laten zetten
// op eender welke conditie.
if (!isset($_SESSION['submenu']))
{
$_SESSION['submenu'] = 1;
}
?>
/* blub.php */
<?php
// Start de sessie
session_start();
// Dit zal '1' teruggeven, als de gebruiker in
// dezelfde sessie zit.
echo $_SESSION['submenu'];
?>
Da's een simpel voorbeeld van sessies. Voor de meeste sites volstaat dit
gebruik, en met wat creativiteit kun je zonder het wiel opnieuw uit te vinden
dit soort code overal op toepassen.
[...]
> Ik kan natuurlijk ook de menucode voor elke pagina veranderen, maar ik zou
> liever het menu uit een extern bestand laden...
Je kunt ook met named sessions en alternatieve session handlers werken, maar
da's een beetje overkill voor een simpel menutje. De manual is niet echt
super-duidelijk over sessions (het is niet echt het simpelste begrip om uit te
leggen, om verschillende redenen), maar ik vond de source zeer leerrijk.
Het makkelijkste is gewoon je menu met een functie te genereren die switch()t
op een $_SESSION[] member, en je sessie in elke pagina die dat menu nodig
heeft te starten.
Good luck.
- Philip
--
Philip Paeps philip@paeps.cx
You may be recognized soon.
Hide!
If they find you, lie.
Technical Details
Message-ID:
<934X8.2530$QS3.538@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!news.infoave.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<Xns9248B6E4AC51amoragazza@195.130.132.65>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,b4e5a8232e545be4
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-07-10 19:12:56 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!news.infoave.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
Sender: Philip Paeps <philip@juno.home.paeps.cx>
From: Philip Paeps <philip@paeps.cx>
Subject: Re: php variabelen
Newsgroups: be.comp.programming
References: <Xns9248B6E4AC51amoragazza@195.130.132.65>
User-Agent: tin/1.5.13-20020703 ("Chop Suey!") (UNIX) (FreeBSD/4.6-STABLE (i386))
Lines: 72
Message-ID: <934X8.2530$QS3.538@afrodite.telenet-ops.be>
Date: Thu, 11 Jul 2002 00:11:49 GMT
NNTP-Posting-Host: 213.118.35.42
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1026346309 213.118.35.42 (Thu, 11 Jul 2002 02:11:49 MET DST)
NNTP-Posting-Date: Thu, 11 Jul 2002 02:11:49 MET DST
Organization: Telenet Internet