Gjest Slettet+432 Skrevet 27. oktober 2003 Del Skrevet 27. oktober 2003 Noen her som vet hvordan man gjør sånn at når en bruker har logget på så får han tilgang til forskjellige menyer, eks. Nedlastinger og så videre...?? Vet at man bruker sessions, men vet ikke hvordan.. Tenker litt på å bruke fullstendig loginside-skriptet til minlilleverden.net Lenke til kommentar
Torbjørn Skrevet 27. oktober 2003 Del Skrevet 27. oktober 2003 sessions er riktig ja, søk gjerne etter et par tutorials, så vil du se hvordan det kan brukes: google har som alltid mange gode forslag! les også på php.net sin dokumentasjon Det er ikke forklart i en håndvending, så gjør helst noen forsøk selv og kom tilbake med problemer etterpå. Du bør også vite at det er relatert til Cookies (mest sannsynlig) og dermed til HTTP headers, i tilfelle du støter på nye uforståelige feilmeldinger. Lenke til kommentar
Gjest Slettet+432 Skrevet 27. oktober 2003 Del Skrevet 27. oktober 2003 Skjønte ingenting av det som står på php.net, og finner heller ikke noe bra forklaring i tutorialer. Lenke til kommentar
Torbjørn Skrevet 27. oktober 2003 Del Skrevet 27. oktober 2003 Sessions er ikke noe man lærer i en håndvending hvis man ikke vet hva cookies er, eller hvordan HTTP fungerer. Jeg vil virkelig anbefale å lese både php.net sin dokumentasjon (står en del eksempler der) f.eks funksjonen session_register() er relevant. Jeg vil også likevel oppfordre deg til å finne en tutorial og følge den. Kort sagt vil det foregå slik: (pseudokode) 1) På loginsiden *) sjekke om brukeren har sendt inn gyldige logindata (typisk bruker passord) *) registrere en session med navn hvis det er tilfelle På alle andre sider som skal ha spesielle ting for innloggede: *) sjekke om en viss sesjon er registrert *) skrive ut link hvis så er tilfelle På logutsiden: *) fjern sessionen. det kan gjøres uavhengig om den er registrert eller ikek Lenke til kommentar
phanti Skrevet 28. oktober 2003 Del Skrevet 28. oktober 2003 En session kan sees som et lite minne område som er delt av alle sidene under en url, der variabler kan bli lagt, og hentet fram ved behov. Som for eksempel brukernavn og passord, som jeg leste i en tutorial. På de sidene du vil ha innlogging for å vise linkene/download etc, så blir det slik, pseudokodisk: if(brukernavn og passord er lagret i session) { if(brukernavn og passord er riktig i forhold til en database (feks.)) { vise "hemmelig" innhold. } else { gi beskjed om at du må være innlogget for å se innholdet. } } else //Dersom brukernavn og passord ikke var registrert, må brukerern logge seg inn. { skrive ut login skjema } Lenke til kommentar
phanti Skrevet 28. oktober 2003 Del Skrevet 28. oktober 2003 (endret) Slik ser en funksjon jeg har brukt innimellom for å sjekke om brukeren er logget inn ut. Øverst i alle filene, Absolutt øverst(før noe html) så må du ha "session_start();" function IsLoggedIn() { if(isset($_POST['uid'])) { $_SESSION['uid'] = $_POST['uid']; $_SESSION['pwd'] = $_POST['pwd']; } if(isset($_SESSION['uid']) && isset($_SESSION['pwd'])) { mysql_connect("bruker","pass","database"); $user = $_SESSION['uid']; $pass = $_SESSION['pwd']; $sql = "SELECT * FROM brukere WHERE userid = '$user' AND userpwd = '$pass' LIMIT 1"; $result = mysql_query($sql); if(!$result)banner_msg("No data received from database.."); if (mysql_num_rows($result) == 0) { banner_msg("No access for this username and/or password."); logout(); return FALSE; } else { return TRUE; } } } banner_msg() er kun en liten funksjon som skriver ut en linje på slutten av sida med info om hva som skjer. I steden for den har du selvsagt din måte å informere brukern om hva som skjer. logout() er en fuknsjon som sletter sessionen(med brukernavn og passord osv) og ser slik ut: function logout() { unset($_SESSION['uid']); unset($_SESSION['pwd']); unset($_POST['uid']); unset($_POST['pwd']); unset($uid); unset($pwd); session_destroy(); } Bruker også mysql til å sjekke brukernavn og passord, men du kan selvsagt også her gjøre det om til din egen måte. Der jeg vil vise det hemmelige innholdet da: if(IsLoggedIn()) { skriv_hemmelig_innhold(); } else { echo "Du må være logget inn for å se dette innholdet.."; } Håper dette var somewhat forståelig. Gjerne få tilbakemeldinger på om dette er lurt/dumt eller rett og slett usikkert. Endret 28. oktober 2003 av phanti Lenke til kommentar
Torbjørn Skrevet 28. oktober 2003 Del Skrevet 28. oktober 2003 Du trenger ikke en personlig session, type brukernavn eller noe sånt, hvis han ikke skal ha noe personlig opplegg. Hvis det er snakk om å være logget inn eller ikke, og i såfall vise et ekstra meny element, kan han bare bruke $_SESSION["logget_inn"] for eksempel, og bruke den på alle som logger seg inn. Lenke til kommentar
Gjest Slettet+432 Skrevet 28. oktober 2003 Del Skrevet 28. oktober 2003 Takk for alle svar, jeg skal prøve det. :nice: Torbjørn: Kan du forklare det litt nærmere? Lenke til kommentar
Torbjørn Skrevet 28. oktober 2003 Del Skrevet 28. oktober 2003 ehh.. jeg rotet litt, men følgende er en demo for helt enkelt å demonstrere prinsippet, hvis du ikke har noen bruekrdatabase og ikke trenger å skille mellom forskjellige brukere. 3 filer; login.php, index.php og logut.php login.php: <?php session_start(); if($_POST["passord"] == 'heioghopp'){ session_register('innlogget'); header('Location: index.php'); exit; } else{ echo "<form method=POST>Skriv inn hemmelig passord! (heioghopp)<br><input name=passord type=password><input type=submit></form>"; } index.php: <?php session_start(); if(session_is_registered('innlogget')){ echo "Du er logget inn!<p>"; echo "Her kan jeg vise en super-duper hemmelig download link hvis jeg vil."; } else{ echo "Du er ikke logget inn, vennligst gå til <a href=login.php>Login-siden</a> og logg deg inn"; } ?> logut.php <?php session_start(); session_unregister('innlogget'); echo "Du er nå logget ut, enten du var logget inn eller ikke!"; ?> Lenke til kommentar
Gjest Slettet+432 Skrevet 18. november 2003 Del Skrevet 18. november 2003 (endret) Du, det skal liksom være en side der brukere kan registrere seg, og når de har registrert seg, kommer opp en side med informasjonen de har oppgitt. Og alle som er registrert, har tilgang til download-siden. De som ikke er registrert, vil da få en melding om at han må logge seg på... Er det noen som kan lage en tutorial av det, eller noe slikt? Sånn at det blir for hver bruker som registrerer seg? Jeg bruker minlilleverden.net sin "fullstendig loginside". Den bruker MySQL. Endret 18. november 2003 av Slettet+432 Lenke til kommentar
Gjest Slettet+432 Skrevet 20. november 2003 Del Skrevet 20. november 2003 Er det INGEN som kan svare, eller? Lenke til kommentar
Torbjørn Skrevet 20. november 2003 Del Skrevet 20. november 2003 tviler sterkt på at du får noen her til å skrive en hel tutorial for deg ja.. fant du ingen tutorial på google? *tviler* Lenke til kommentar
hajejan Skrevet 20. november 2003 Del Skrevet 20. november 2003 RebooT: De fleste her har sikkert lært seg PHP via en bok eller online tutorials. Det som står på php.net er *meget* bra, kjøp deg eventuelt "Beginning PHP" og "Professional PHP" fra Wrox Press. Se også www.hotscripts.com's Php-del. scriptene som ligger her er ev meget varierende kvalitet, men det ligger i alle fall reim på reim med kildekode her som du kan se på for å lære deg hvordan ting *kan* gjøres. HJ Lenke til kommentar
baRs Skrevet 20. november 2003 Del Skrevet 20. november 2003 http://minlilleverden.net/index.php?id=27&forfatterid=1 en grei løsning.. Lenke til kommentar
Gjest Slettet+432 Skrevet 22. november 2003 Del Skrevet 22. november 2003 Jeg bruker den da din.. Lenke til kommentar
haugsand Skrevet 22. november 2003 Del Skrevet 22. november 2003 (endret) Les denne. Endret 22. november 2003 av satyrium Lenke til kommentar
baRs Skrevet 4. desember 2003 Del Skrevet 4. desember 2003 Jeg bruker den da din.. vet, hehe, så det etter jeg hadde svart! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå