/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problem med Session-adgangskontrol
Fra : Jakob Munck


Dato : 05-03-07 22:30

Jeg har nogle medlemmer, som skal kunne få adgang til et område, hvis de har
tegnet abonnement på et tidsskrift. Ellers skal de ikke kunne få adgang. Når
man er abonnement sættes værdien ens session "abonnemt" til 1 og ellers er
den 0. Min adgangskontrol ser derfor sådan ud, men der er noget galt, for
den virker ikke. Jeg har startet "Sessions" på siden, så jeg tror at fejlen
har noget med min måde at sammenligne den pågældende Session med et tal. Men
jeg ved det ikke. Det virker bare ikke rigtigt.

<?
if ($_SESSION["abonnent"] < '1') { //fejlen ligger i denne linie, men hvor?
header("Location: fejlside.php");
exit();
}
?>

Nogen som kan give input til hvor fejlen ligger?


v.h.
Jakob



 
 
Bertel Lund Hansen (05-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-03-07 22:43

Jakob Munck skrev:

> man er abonnement sættes værdien ens session "abonnemt" til 1 og ellers er
> den 0.

> <?
> if ($_SESSION["abonnent"] < '1') { //fejlen ligger i denne linie, men hvor?
> header("Location: fejlside.php");
> exit();
> }
> ?>

Du kan prøve med

   if (!$_SESSION["abonnent"]) header("Location: fejlside.php");
   // Bemærk udråbstegnet.

fordi 0 kan bruges som false - og jeg går ud fra at du ikke
bruger negative værdier til false.

Exit() er ikke nødvendigt fordi man er dampet af til en anden
side inden man når dertil.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Martin Mouritzen (06-03-2007)
Kommentar
Fra : Martin Mouritzen


Dato : 06-03-07 00:19

On Mon, 5 Mar 2007 22:42:49 +0100, Bertel Lund Hansen
<unospamo@lundhansen.dk> wrote:

>Exit() er ikke nødvendigt fordi man er dampet af til en anden
>side inden man når dertil.

Det er faktisk ikke helt rigtigt. - Uden exit så fortsætter scriptet -
Browseren vil selvf. stadig blive redirectet, men alt afhængig af hvad
man har på resten af siden, vil jeg sige det er udemærket at kalde
exit lige efter man har redirectet.

Jakob Munck (06-03-2007)
Kommentar
Fra : Jakob Munck


Dato : 06-03-07 09:30

> Du kan prøve med
>
> if (!$_SESSION["abonnent"]) header("Location: fejlside.php");
> // Bemærk udråbstegnet.
>
> fordi 0 kan bruges som false - og jeg går ud fra at du ikke
> bruger negative værdier til false.
>

Tak for forslaget, men jeg fandt jeg en fejl i variablens navn (pinligt!).
Men også før jeg lavede denne fejl var der problemer, så jeg har nu ændredt
måden at teste session på, så 0 undgås. Og nu virker det og ser ud sådan:

if ($_SESSION["abonnement"] < '1') {
header("Location: fejlside");
exit();
}

Mange tak for hjælpen.

v.h.
Jakob



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408514
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste