Top
Phpuniverset logo
 
BANNER 930

INDHOLD

Forside

Job annoncer

Tips og Tricks

Konkurrence

Downloads

Dokumenter

Forum

Online udviklere


ARTIKLER

C / C++

CSS

Diverse

E-handel / annoncer

Flash

Grafik

HTML

Internet

Javascript

Linux

PHP/MySQL

Programmer

Søgemaskiner

Windows


INFO

Information

Annoncering

Kontakt

Forside Tips PHP SESSIONS og brugen af dem

 

SESSIONS og brugen af dem

Dan Storm

Tit og mange gange stiller man spørgsmål vedrørende sessions og efter PHP version 4.1.x har fået nye standarder inden for sessions og fordefinerede variabler er det pludselig blevet meget lettere!

Sessions er serverside cookies, forstået på den måde at dataen i cookieerne bliver gemt på serveren istedet for hos klienten/brugeren hvilket gør det både sikrere og bedre at benytte sig af cookiebaserede sites. Andre fordele kan være hvis klienten/brugeren nægter at modtage cookies på sin computer, så kan man bare bruges sessions. Hvis altså serveren er sat op til at bruge det! (spørg udbyderen eller brug phpinfo)

Jeg vil gennemgå nogle basale eksempler på brugen af sessions.

session_start() er en header, og ligesom alle andre headere skriver man dem før alt andet output er til stede (HTML, Tekst og lign.), det vil sige at det er det første du skriver! Så et eksempel på at starte sessions i et php script kunne være:
<?php
session_start();
?>
Nu er vi klar til at sætte og bruge sessions.
Jeg vil nu sætte en session med navnet 'kage'.

(kage.php)
<?php
session_start();
$_SESSION['kage'] = "Chokoladekage";
?>

Derefter går jeg til en anden side hvor jeg kalder min session igen og skriver indholdet af sessionen ud.

(viskagen.php)
<?php
session_start();
echo 'Du har lavet en '.$_SESSION['kage']; // Dette vil skrive: Du har lavet en chokoladekage
?>

Hvis man så ikke skal bruge sessionen længere skal man bruge kommandoen unset();
(sletsession.php)
<?php
session_start();
unset($_SESSION['kage']);
echo 'Sessionen er tom.';
?>

Det er rimelig nemt at bruge sessions!
Der er mange der gerne vil bruge det til brugersystemer sammen med mysql databaser og så'n, men problemet er heller ikke større end vist foroven!
Vi forestiller os du har lavet en loginside der sender variablerne username og password:
<input type=tekst name=username>
<input type=password name=password>
til en side der hedder enter.php og at du har en database med et brugerid, brugernavn og kodeord
| userid | username | password |

(enter.php)
<?php
session_start();

$query("SELECT * FROM users WHERE username='$_POST[username]' AND password='$_POST[password]");
if(mysql_num_rows($query) > 0) {
$userid = mysq_result($query, 0, "userid");
$username = mysq_result($query, 0, "username");
$_SESSION['userid'] = $userid;
$_SESSION['username'] = $username;
echo 'Du er logget ind med brugerid <b>'.$_SESSION['brugerid'].'</b> og brugernavnet <b>'.$_SESSION['username'].'</b>';
}
elseif(mysql_num_rows($query) < 1) {
echo 'Brugeren kan ikke genkendes!';
}

?>

Så er brugeren logget ind og du har to session variabler (userid og username) der hver indeholder dataen fra din mysql database.
Så kan du hente brugernavnet frem på alle sider når du skal bruge det ved hjælp af $_SESSION['username']
Hvis du nu vil bruge userid sessionen til at hente noget fra en tabel i din database skal du huske at tegnet ' ikke skal være i din session variabel, altså du skal nøjes med at skrive $_SESSION[userid], men eller skal du huske at bruge dem ($_SESSION['userid']).

For derefter at teste om brugeren er logget ind kan man jo bruge en if sætning!
Nedenunder bruger jeg sessionen userid og ser om den er defineret med isset() funktionen.
Nedenstående er en grov måde at gøre det på, men det virker og giver dig et indtryk af funktionerne!

(index.php)
<?php
session_start();

if(isset($_SESSION['userid'])) {
echo 'Hej <b>'.$_SESSION['username'].'</b><br>Du er logget ind';
//her står alt det brugeren må se når han er logget ind!

}else{
echo 'Hej <b>Gæst</b><br>Tryk på linket til login for at logge på sitet';
//her står så det brugeren ser hvis han ikke er logget på
}

?>

Og tilsidst skal vi jo huske at slette sessionerne når brugeren vælge at logge ud!

(logout.php)
<?php
session_start();

unset($_SESSION['userid']);
unset($_SESSION['username']);
echo 'Du er logget ud';

?>

Så let er det...


Dato : 23.07.2003, 12:16

Visninger : 4332

Kategori : PHP




Log ind for at skrive et tip

 

Send Artikel/anmeldelse til: phpuni@phpuniverset.dk

Tilbage til oversigt

FORUM

Nyeste forum indlæg:

PHP/Opencart import module

Opencart/php import modul hjælp

Lækkert kontor / kontorfællesskab i Helsingør

Opdatering af PHP

Vurdering af hjemmeside

Nyeste forum svar :

Vurdering af hjemmeside

Lækkert kontor / kontorfællesskab i Helsingør

Android programmering

Joomla som CMS

Grafik problemer

 

MEDLEM

LOGIN ER IKKE MULIGT, MENS VI LAVER NYT SITE
 

NYHEDSBREV

Nyhedsbrev

Tilmeld dig vores nyhedsbrev og modtag nyheder om nye scripts og tips samt om mange andre nye tiltag på Phpuniverset.dk


 

Phpuniverset's politik om personlige oplysninger, artikler & Koder Phpuniverset er optimeret til Mozilla 1024 * 768 Phpuniverset version: 3.0 beta
Webhost : Ignesco.dk -

Bund