|
| Kommentar Fra : croaks |
Dato : 03-02-08 16:03 |
| | |
| Kommentar Fra : ulf112 |
Dato : 03-02-08 16:19 |
|
Det er jeg igang med :D
Det jeg gerne vil vide er (Lidt bedere forklaret) hvordan jeg viderføre data fra en form. Hvis jeg for eksempel vil have at folk skal udfylde en form med f. ex. GET metoden og de data de så intaster skal følge dem rundt mens der surfer rundt på min hjemmeside, eller bare skal overføre det han har udfyldt til den næste side?
Der behøver ikke at være nogen kryptering eller nogget som helst for det skal ikke bruges til noget hvor der kræves sikkerhed.
| |
| Kommentar Fra : ulf112 |
Dato : 03-02-08 17:25 |
| | |
| Accepteret svar Fra : poul_from | Modtaget 50 point Dato : 03-02-08 17:33 |
|
Det er nok sessions du efterlyser jeg har hentet fra phphuniverset da det er en udemærket beskrivelse af hvordan session bruges
Kode 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';
?> |
| |
| Godkendelse af svar Fra : ulf112 |
Dato : 03-02-08 17:35 |
|
Tak for svaret poul_from.
Bingo det var lige dem jeg ledte efter :D
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|