/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
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
Sende data videre
Fra : ulf112
Vist : 727 gange
50 point
Dato : 03-02-08 15:55

Hej. Hvis jeg har noget data i en hjemmeside som er blevet sendt med en Form med fx. Get motoden, og jeg er kommet videre til en ny side, hvordan kan jeg så tage den data der er gemt i url´en (Get) med mig når jeg går videre til en ny side?

 
 
Kommentar
Fra : croaks


Dato : 03-02-08 16:03
Kommentar
Fra : valde.


Dato : 03-02-08 16:17

kopier. Hvis jeg forstår dig rigtig

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 : valde.


Dato : 03-02-08 16:26

Hvis jeg forstår hvad vi snakker om: Så minimerer du, så kan du bare åbne siden igen forneden i værktøjslinien!

Kommentar
Fra : ulf112


Dato : 03-02-08 16:43

Så forstår du ikke hvad vi snakker om :D

Kommentar
Fra : valde.


Dato : 03-02-08 16:55

tænkte jeg nok

Kommentar
Fra : ulf112


Dato : 03-02-08 17:25

Heh det er helt okay

Der jeg skulle bruge var Php Sessions. Det er en meget snedig function check den selv ud hvis du er interaseret i den slags :D

http://www.w3schools.com/php/php_sessions.asp


Kommentar
Fra : ulf112


Dato : 03-02-08 17:28

Hvis der er nogen der har forstand på Php/MySql vil i så ikke se hvad min fejl er her? Kan simpelthend ikke spotte den :D

Kode
$result = mysql_query("SELECT * FROM Forum WHERE sted = $Navn");


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.
Søg
Reklame
Statistik
Spørgsmål : 177564
Tips : 31968
Nyheder : 719565
Indlæg : 6408970
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste