Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  9 901
Jeg ønsker å lage et php script som er ca slik på alle sidene mine:


if (bruker er innlogget)

//vis innhold

else

//gå til innlogging

Hvordan kan jeg sjekke at en bruker er logget inn?

Det hadde vært greit å hatt noe slikt noe på sidene mine til et nettspill jeg lager.
Jeg vil helst ikke vite hvordan man kan bruke cookies til dette, jeg fortrekker sessions (og såklart kommer mysql inn i bildet her også).

Mvh Daniel
Ja her har du vel nesten skrevet det.

Kode

sesssion_start();
if( isset($_SESSION['loggedin']) )
{
    // Logget inn
}
else
{
    // Ikke logget inn
}
Det du kan gjøre dersom $_SESSION['loggedin'] (altså, i else) er å kjøre en header() som redirecter til loginsiden.
Sist endret av m0b; 2. august 2007 kl. 11:40.
Ja, jeg vet.. Men vil ikke dette kun funke dersom den mottar info fra <form> ?
Nei, det er session. Foreslår at du leser litt på HTTP protokoll og php om sessions. Kanskje før du lager nettspill.
Å lage nettspillet er selve opplæringen min Men takk for svar..

edit:

Men om jeg velger mysql?
Jeg mener jeg også har sett slikt:

include("config.php");
if($logged['username'])
{
echo "Du er logget inn";
} else {
header ("Location: login.php");
}
--------------
Er ikke helt sikker på om det var slik, men det er noe i den duren.
Lurte bare på hvordan config.php fila skulle vært da?
Sist endret av boblesaft; 2. august 2007 kl. 12:03.
det eneste "config.php" filen trenger å inneholde her er en definisjon på hva variabelen "$logged" inneholder... som oftest er det også en oppkobling til en database der også...
Om du velger mysql? Det har ingen ting med sessions å gjøre. Om du kjører mysql, postgres eller mssql er knekkende likegyldig.

I det tilfellet du har skrevet der er $logged ett eller annet array, nøyaktig hva det inneholder er også likegyldig så lenge du er konsekvent og skriver koden slik at du selv vet hva det inneholder.

$_SESSION er i bunn og grunn kun et array.
Limited edition
Moff's Avatar
MySQL bruker du gjerne til å lagre informasjon i lange peridoer, som for eksempel et brukernavn og et passord. MySQL-databasen brukes da til å sjekke hvorvidt brukernavnet og passordet du har skrevet inn i <form> er gyldige eller bare tull. Jeg vil anbefale at du bruker cookies i stedet for sessions. De er i bunn og grunn nogenlunde like, med unntak av at sessions visstnok ikke er helt trygt. Da du lager spill så tror jeg cookies er noe for deg. Cookies (og sessions) er et array som man bruker til å lagre midlertidig informasjon, som for eksempel når websiden skal huske om du som bruker er logget inn eller om du er en gjest. Det logiske å gjøre for en slik opperasjon er å lage en variabel som heter noe à la "login". For eksempel:

Kode

if ( $_SESSION['login'] ) {

//Brukeren er pålogget

} else {

//Brukeren er en gjest

}
Her har jeg en variabel (login) som er en boolean (en variabel som kun kan være "false" eller "true"). Jeg sjekker om denne variabelen er "true", og hvis den er kjører jeg koden "//Brukeren er pålogget".

Så du kan faktisk ikke velge enten MySQL eller sessions/cookies. De gjør to helt ulike ting. Det du derimot kan velge mellom er sessions og cookies. Men igjen - anbefaler cookies.

Tutorialer jeg vil anbefale deg:
MySQL
PHP
Cookies
Du bør lese hele PHP-delen ettersom den tar for seg mange nyttige ting. MySQL-delen har også et kapittel om injections og sikkerhet.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av |d13m0b
$_SESSION er i bunn og grunn kun et array.
Vis hele sitatet...
Dog et litt abstrakt array. Tingen med sessions er at det blir lagra på flatfil, med en id-kode, session ID. Denne ID-koden blir gitt til browseren (cookie, get-parameter påskreven alle linker o.l.), og følger med framtidige requester. Du kan mao. behandle session-arrayet som et persistent array, som holder seg fra side til side. Brukeren kan ikkje ræle med innholdet i session-arrayet, og det er derfor trygt å stole på det for autentisering.
Jeg skjønner ærlig talt ikke hvorfor dere ikke bare bruker rammeverk som har denne type funksjonalitet. Det er så utrolig lite poeng i at alle og enhver skal skrive sine egne funksjoner for nøyaktig det samme (og sannsynligvis blir 99% av variantene ræva).

Se på Zend Framework: framework.zend.com og bli lykkelig i stedet. Får du både autentisering (zend_auth), rettigheter (zend_acl), MVC og en hel haug andre ting gratis. Så kan du i stedet bruke tiden din på å kode det som er spesielt for nettopp ditt system.