Avatar billede nicas Nybegynder
28. september 2002 - 23:17 Der er 17 kommentarer og
2 løsninger

logout... sessions??

Hejsa, jeg har lavet et simpelt loginscript, til en side, hvor den bare checker det indtastede med en database, og viser den/de "hemmelige" side(r).
Hvordan kan man fixe det således at når man er "logget ud", altså gået over på en anden side i browseren så kan man ikke trykke på tilbage og altså logge ind igen.
med andre ord, søges der en logout ting så browseren glemmer de satte variabler osv.,
Jeg har hørt noget om sessions, kan det evt bruges her?
Avatar billede Slettet bruger
28. september 2002 - 23:22 #1
Kan du bruge dette??

<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location:densidedenspringertilefterlogout.php");
exit;
?>
Dette skal lægges i en fil... Og så bare linke til den
<a href="logout.php">Log ud</a>
Avatar billede Slettet bruger
28. september 2002 - 23:24 #2
Dette script et taget fra mit eget forum :)
Avatar billede nicas Nybegynder
28. september 2002 - 23:28 #3
får flg. svar, men skal jeg ikke lave andet med sessions end det du skriver, det du skriver skal ligge i logout.php ik?

Warning: open(/tmp\sess_48c32bb4a361a2b1b2fc0289c0e5368a, O_RDWR) failed: m (2) in C:\apache\htdocs\klassesider\logud.php on line 2

Warning: Session object destruction failed in C:\apache\htdocs\klassesider\logud.php on line 4
Avatar billede Slettet bruger
28. september 2002 - 23:28 #4
Jo det skal det
Avatar billede nicas Nybegynder
28. september 2002 - 23:29 #5
virker ikke som det ses...
Avatar billede Slettet bruger
28. september 2002 - 23:31 #6
Nææ men sessions'ne skal vel også passe sammen på en måde... Er lidt nybegynder selv :)
Avatar billede skumpaq Nybegynder
28. september 2002 - 23:32 #7
Ja, det kan det.
Sessions bliver primært brugt til loginsider.
Nu ved jeg ikke hvor meget du kender til sessions, men for at give en lille introduktion, så er sessions bare almindelige  variabler, som "bindes" til den enkelte bruger.
Når du vil arbejde med sessions, skal du indsætte funktionen:

session_start();

på alle dine sider.
Når det er gjort, er det bare at starte dine sessions.
Hvis vi lige tager loginscriptet, så kunne det fx se sådan ud:

<form>
<input type="text" name="brugernavn">
<input type="password" name="password">
</form>

Når vi så udfylder, og sender formularen, har vi to variabler.
$brugernavn og $password
Vi tjekker at det er korrekt og blablabla, så er vi klar til at sætte sessions.
En sessions sættes som alle andre variabler sættes, nemlig man sætter dem lig noget.
Ex: $_SESSION['test'] = "Test session";
Denne session indeholder nu Test session
Sesionen hedder nu test, og dens "navn" fremgår af det der står mellem ''
Nu er sessionen sat, og den vil blive husket til browseren bliver lukket.
For at tjekke om en bruger er logget ind, kan du fx bruge dette script:

if(isset($_SESSION['test'])){
print "Du er logget ind";
} else {
print "Du er ikke logget ind";
}

Nå en bruger ønsker at logge ud, gøres det på denne måde:

Du kører funktionen: session_destroy(); // Denne funktion er VOID
Derefter kører du funktionen: session_unregister($_SESSION['test']);

Nu er brugeren logget ud, og $_SESSION['test'] fungerer ikke længere.

Var det det du søgte?

Kig evt på: http://dk.php.net/manual/en/ref.session.php

/SkumPaq
Avatar billede Slettet bruger
28. september 2002 - 23:34 #8
skumpaq>> Selvom  jeg ikke oprettede dette spm er jeg meget taknemmelig for det du skrev der :D
Har aldrig kunne finde et sted hvor man kan læse en masse om sessions
Avatar billede nicas Nybegynder
28. september 2002 - 23:34 #9
takker, kigger lige på det, ja det var nok det jeg søgte
Avatar billede skumpaq Nybegynder
28. september 2002 - 23:34 #10
westhi: Hmmmm, fra dit eget forum siger du....
Jeg kan ikke få det til at virke bare ved at se på det... hehe
Avatar billede skumpaq Nybegynder
28. september 2002 - 23:35 #11
Hehe, westhi, du kan læse alt om PHP på deres hjemmeside! :)
Eller du kan også spørge på #php.dk på Quakenet.. :)
Avatar billede Slettet bruger
28. september 2002 - 23:41 #12
Har ikke Quakenet... :)
Avatar billede skumpaq Nybegynder
28. september 2002 - 23:42 #13
Har du ikke IRC, westhi?
Avatar billede nicas Nybegynder
28. september 2002 - 23:51 #14
jeg har lavet følgende lille test, det virker ikke helt, jeg får en masse lange fejlmedd.
*******************************************************************''
fx. følgende i index.php:
Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\login\index.php:2) in C:\apache\htdocs\login\index.php on line 4

Warning: open(/tmp\sess_abefb92462d7c1914a6717d3f6b1de8a, O_RDWR) failed: m (2) in C:\apache\htdocs\login\index.php on line 4
se siderne
Warning: open(/tmp\sess_abefb92462d7c1914a6717d3f6b1de8a, O_RDWR) failed: m (2) in Unknown on line 0

Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
**************************************************************'

index.php:
<?
session_start();
$_SESSION['test']="test session";
echo"<a href=index2.php> se siderne </A>";
?>

index2.php:
<?
session_start();
if(isset($_SESSION['test']))
{print "Du er logget ind <a href=logud.php>log ud</A>";}
else
{print "Du er ikke logget ind";}
?>

logud.php:
<?
session_destroy();
session_unregister($_SESSION['test']);
if(isset($_SESSION['test']))
{print "Du er logget ind <a href=logud.php>log ud</A>";}
else
{print "Du er logget ud";}
?>
Avatar billede nicas Nybegynder
28. september 2002 - 23:51 #15
har ikke lige mere tid i dag, kigge rpå det en anden dag... skal nok dele nogle point ud
Avatar billede Slettet bruger
29. september 2002 - 00:00 #16
Har skam heller ikke IRC... Er der en masse behjælpelige derinde ?? :D
Avatar billede sukos Juniormester
29. september 2002 - 06:52 #17
For at sessions virker, skal

session.save_path

i php.ini være korrekt defineret.
lav gerne en mappe til formålet, og indtast stien i php.ini:

session.save_path = C:\sessiondata
f.eks.

Når det er gjordt, så "logaf" som beskrevet:

<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location:densidedenspringertilefterlogout.php");
exit;
?>

Hvis du blot blot fjerne en session variabel, gør du det så'n:

<?php
session_start();
unset($_SESSION['test'];
?>
Nu er session test ikke længere "gangbar"
Avatar billede sukos Juniormester
29. september 2002 - 07:42 #18
hmm, der mangler selvf. en afsluttende parentes i det sidste:
unset($_SESSION['test']);
Avatar billede kimg Nybegynder
29. september 2002 - 12:22 #19
Du skal oprette et dir på dit C: drev der hedder tmp

og for at undgå fejl med header:
skriver du itop af din fil:
ob_start();

og i bunden:

ob_end_flush();

Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester