/ 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
Login in system med sessions
Fra : Ronni


Dato : 01-05-01 17:09

Hej NG

Jeg er ved at lave et login system med sessions, fordi jeg vil øve mig i
sessions
og lære at bruge det lidt bedere.

Men jeg dog i tvivl om noget!

Hvis jeg på login.php laver :
session_start();
og derefter registrere $userid til brug ved hentning at oplysninger om den
given bruger
og herefter re-directer til siden, info.php

For at få fat i alle variablerne etc. er jeg så vidt jeg har læst mig til
nødt til at køre
session_start() igen, men denne funktion laver blot et nyt session, hvis der
ikke i forvejen
er en session, det jeg skulle bruge var :
Hvis man som hacker skriver http://blahblah.dk/info.php
skal den tjekke efter en session og hvis en sådanne ikke findes, re-directes
til login.php

Hvordan gør man så lige det, om man må spørge ?

Kan man bare if(strlen(session_id()) < 0) -> re-direct

Med venlig hilsen
Ronni
ronni1@ofir.dk




 
 
Niels Andersen (01-05-2001)
Kommentar
Fra : Niels Andersen


Dato : 01-05-01 17:25

"Ronni" <riwen@ofir.dk> skrev i en meddelelse
news:9cmmu4$4ot$1@sunsite.dk...
> Hvis jeg på login.php laver :
> session_start();

Jeg bruger aldrig session_start(). Den bliver kaldt automatisk når du kører
session_register().
Aner ikke om det betyder noget... :)

> og derefter registrere $userid til brug ved hentning at oplysninger om den
> given bruger og herefter re-directer til siden, info.php

Lyder fint.

> For at få fat i alle variablerne etc. er jeg så vidt jeg har læst mig til
> nødt til at køre session_start() igen,

Det er ikke nødvendigt. Prøv at køre session_register() på $userid igen. Så
skulle du kunne fange den værdi du satte før.


Mvh.

Niels Andersen



Ronni (01-05-2001)
Kommentar
Fra : Ronni


Dato : 01-05-01 17:41

> Det er ikke nødvendigt. Prøv at køre session_register() på $userid igen.

> skulle du kunne fange den værdi du satte før.

dvs. at hvis jeg så på info.php skriver
session_register(userid);
skulle jeg så faktisk her også kunne skrive
echo $userid;

??

/Ronni



Flemming Jønsson (01-05-2001)
Kommentar
Fra : Flemming Jønsson


Dato : 01-05-01 20:01

>>>>> "Ronni" == Ronni <riwen@ofir.dk> writes:

>> Det er ikke nødvendigt. Prøv at køre session_register() på
>> $userid igen.
Ronni> Så
>> skulle du kunne fange den værdi du satte før.

Ronni> dvs. at hvis jeg så på info.php skriver
Ronni> session_register(userid); skulle jeg så faktisk her også
Ronni> kunne skrive echo $userid;

Du kan i hvert fald nøjes med at skrive session_start(); og så bruge
alle de variable du har registreret som session_variable

http://www.phpbuilder.com/columns/mattias20000312.php3
Denne side har en lille vejledning

Om man kan ovenstående med at kalde session_register($variable) skal
jeg ikke kunne sige, men ovenstående virker i hvert fald, og er nok
mest hensigtsmæssig hvis du har mange session-variable.

mvh Flemming



Christian Jørgensen (01-05-2001)
Kommentar
Fra : Christian Jørgensen


Dato : 01-05-01 18:04

Ronni <riwen@ofir.dk> wrote:

>> Det er ikke nødvendigt. Prøv at køre session_register() på
>> $userid igen. Så skulle du kunne fange den værdi du satte
>> før.
>
>dvs. at hvis jeg så på info.php skriver
>session_register(userid);
>skulle jeg så faktisk her også kunne skrive
>echo $userid;

hmm.. i info.php skal du skrive session_start() (hvis ikke dine
sessions autostarter) og så vil dine variabler blive
registreret.

se evt. (i al beskedenhed) <http://www.razor.dk/php/sessions/>

--
Christian Jørgensen
http://www.razor.dk

"Uden cola og hikke - Duer helten ikke!"

Danni Finne (01-05-2001)
Kommentar
Fra : Danni Finne


Dato : 01-05-01 18:13

> session_register(userid);
> skulle jeg så faktisk her også kunne skrive
> echo $userid;

Hmm neej...

Hvis du på side1.php skriver:
<?
session_start(); //lav en session
$test = "Dette er en test";

session_register("test");
?>

Og på side2.php skriver:
<?
echo $test; // dette vil ikke outputte noget
session_start(); // genoptag session
echo $test; // dette vil skrive Dette er en test, da sessionen er
genoptaget
?>

Hvis php er compilet med --enable-trans-sid så vil php automagisk overføre
det sessions id, som den lavede ved den første session_start() - hvis ikke,
så skal du overføre session_id'et selv <a href='side2.php?sid=<?=$SID;?>klik
her</a>

Håber at det hjalp lidt :)



Jonas Delfs (09-06-2001)
Kommentar
Fra : Jonas Delfs


Dato : 09-06-01 17:02

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:QsBH6.668$m_1.103922@news010.worldonline.dk...

> > Hvis jeg på login.php laver :
> > session_start();
>
> Jeg bruger aldrig session_start(). Den bliver kaldt automatisk når du
kører
> session_register().
> Aner ikke om det betyder noget... :)

Det skulle det ikke... men det sker jo at man ikke vil gemme mere i
brugerens session, men bare hente tidligere gemt data..

--
Mvh. Jonas Delfs, http://delfs.dk

"Rigtige mænd scorer på ICQ" - Christian Jørgensen



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

Månedens bedste
Årets bedste
Sidste års bedste