danweb.cjb.net Skrevet 24. mai 2008 Rapporter Del Skrevet 24. mai 2008 Hei. Jeg har ett lite problem med session. Har laget et veldig enkelt innloggingssystem med session. På den lokale serveren min fungerer det, men på webhotelserveren fungerer det ikke. Derfor tenkte jeg kanskje noen ser en feil et eller annet sted, eller kanskje kan tipes meg om en bedre måte å gjøre det på, uten at det blir alt for komplisert. Koden som sjekker bruker: $brukernavn=$_POST['brukernavn']; $passord=$_POST['passord']; $brukernavn = stripslashes($brukernavn); $passord = stripslashes($passord); $brukernavn = mysql_real_escape_string($brukernavn); $passord = mysql_real_escape_string($passord); $passord = md5($passord); $sql_sporing="SELECT * FROM brukere_hc WHERE bruker='$brukernavn' and passord='$passord'"; $resultat=mysql_query($sql_sporing); $count=mysql_num_rows($resultat); if($count==1){ session_start(); $_SESSION['godkjent']= true; header("location:http://www.dan-l.com/fadder/index.php?side=loginsuk"); } else { echo "Galt brukernavn eller passord"; } ?> Koden som sjekker om man er logget inn: <?php session_start(); if(!$_SESSION['godkjent']){ header("location: index.php?side=login"); } ... Siden sitt innhold ... ?> Takk for all hjelp. Lenke til kommentar
danweb.cjb.net Skrevet 25. mai 2008 Forfatter Rapporter Del Skrevet 25. mai 2008 Ingen som vet? Lenke til kommentar
ZeRKoX Skrevet 25. mai 2008 Rapporter Del Skrevet 25. mai 2008 Hvilken webhost har du? Lenke til kommentar
danweb.cjb.net Skrevet 25. mai 2008 Forfatter Rapporter Del Skrevet 25. mai 2008 Hvilken webhost har du? www.one.com Lenke til kommentar
jeg_lyver_mye Skrevet 26. mai 2008 Rapporter Del Skrevet 26. mai 2008 Sørg for at session_start(); er HELT øverst! Før alt! Lenke til kommentar
danweb.cjb.net Skrevet 26. mai 2008 Forfatter Rapporter Del Skrevet 26. mai 2008 Det står helt øverst i dokumentet, så skjønner ikke helt hvorfor det ikke fungerer. :/ Lenke til kommentar
Raring Skrevet 26. mai 2008 Rapporter Del Skrevet 26. mai 2008 hva er det som er ikke virker? Lenke til kommentar
danweb.cjb.net Skrevet 26. mai 2008 Forfatter Rapporter Del Skrevet 26. mai 2008 Hvis jeg går i adressefeltet og skriver inn linken til den siden man bare skal ha tilgang til når man er logget inn så får jeg tilgang til den uten å være logget inn. Dette er kun på serveren som er på nett, på den lokale wamp serveren får jeg opp siden "login", som header sender brukeren til når session ikke har verdien "true". Det jeg lurer på er om det er noe jeg kan gjøre anderledes for at man ikke skal få tilgang til en side som man kun skal ha tilgang til når man er logget inn. Lenke til kommentar
avalandon Skrevet 26. mai 2008 Rapporter Del Skrevet 26. mai 2008 <?php session_start(); if(!$_SESSION['godkjent']){ header("location: index.php?side=login"); exit(); } ... Siden sitt innhold ... ?> Lenke til kommentar
Martin A. Skrevet 27. mai 2008 Rapporter Del Skrevet 27. mai 2008 Sørg for at session_start(); er HELT øverst! Før alt! Langt fra sant. session_start() modifiserer header, og header sendes før output. session_start() må derfor stå før output. Plassere den under <?php er helt klart det enkleste, men veldig unødvendig om ikke alle funksjonene du har i fila bruker session. Sendes output før en header/session_start vil det skrives ut en feilmelding. Lenke til kommentar
jeg_lyver_mye Skrevet 27. mai 2008 Rapporter Del Skrevet 27. mai 2008 Japp, men nå ser nesten scriptet hans ut som om HTML ble skrevet ut før selve scriptet ble kjørt. Lenke til kommentar
ZeRKoX Skrevet 27. mai 2008 Rapporter Del Skrevet 27. mai 2008 Jeg vil bare få sagt at jeg også hadde problem med one.com og sessions, og til slutt bare gav opp... Lenke til kommentar
danweb.cjb.net Skrevet 27. mai 2008 Forfatter Rapporter Del Skrevet 27. mai 2008 (endret) <?php session_start(); if(!$_SESSION['godkjent']){ header("location: index.php?side=login"); exit(); } ... Siden sitt innhold ... ?> Jeg avslutta php etter exit() så koden ble slik: <?php session_start(); if(!$_SESSION['godkjent']){ header('location: index.php?side=login'); exit(); } ?> ... Siden sitt innhold ... Da fungerer det! Jeg får ikke tilgang til sidene som man må være logget inn for å vise. Dette scriptet ligger øverst i alle sider som inkluderes til innholdsdelen av siden - som man må være logget inn for å vise. Et annet problem dukket opp. Nå blir ikke brukeren videresendt til: index.php?side=login hvis man prøver å skirve inn adressen til en side man må være loggeet inn for å vise. Istedfor blir inneholds "boksen" tom (<div class="innehold">) I tillegg hvis man ser på kildekoden til siden at den ikke har generert en komplett html kildekode :/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Titel</title> <link rel="stylesheet" type="text/css" href="stil.css" /> </head> <body> <div class="ramme"> <div class="head"> </div> <div class="meny"> <ul> <li><a href="index.php?side=hovedside">Hovedside</a></li> <li><a href="index.php?side=...">Link1</a></li> <li><a href="index.php?side=...">link2</a></li> <li><a href="index.php?side=...">link3</a></li> <li><a href="index.php?side=login">Innlogging</a></li> </ul> </div> <div class="innehold"> Merkelige greier... Endret 27. mai 2008 av danweb.cjb.net Lenke til kommentar
danweb.cjb.net Skrevet 27. mai 2008 Forfatter Rapporter Del Skrevet 27. mai 2008 Skjønner ikke hvorfor siste delen av htmlkoden blir borte, men det løste seg når jeg bruker dette scriptet i starten på siden som man må være logget inn for å se. <?php session_start(); if(!$_SESSION['godkjent']){ include("login.php"); echo <<<END </div> <div class="bunn"> Siden er skrevet av; © </div> </div> </body> </html> END; exit(); } ?> Den inkluderer login.php, og for å kompensere for at alt etter <div class="innehold"> er "borte" så printer den ut den resterende html-koden. Vet det er helt høl i huet oppsett, men det fungerer i alle fall.. Både i FF, opera og IE.. Lenke til kommentar
avalandon Skrevet 27. mai 2008 Rapporter Del Skrevet 27. mai 2008 (endret) <?php session_start(); if(!$_SESSION['godkjent']){ header('location: index.php?side=login'); exit(); } ?> For å være sikker på at header location fungerer gjør jeg slik: header('location: http://www.abs_url.com/index.php?side=login',301,false); Se denne artikkelen på PHP om dette http://no.php.net/header Endret 27. mai 2008 av avalandon Lenke til kommentar
danweb.cjb.net Skrevet 27. mai 2008 Forfatter Rapporter Del Skrevet 27. mai 2008 <?php session_start(); if(!$_SESSION['godkjent']){ header('location: index.php?side=login'); exit(); } ?> For å være sikker på at header location fungerer gjør jeg slik: header('location: http://www.abs_url.com/index.php?side=login',301,false); Se denne artikkelen på PHP om dette http://no.php.net/header Vel, jeg har testet det, men det funker rett og slett ikke... :S Aner ikke hvorfor. Men med metoden jeg brukte over så går det "smertefritt". Merkligste jeg har vært borti på leeeenge ... Lenke til kommentar
avalandon Skrevet 27. mai 2008 Rapporter Del Skrevet 27. mai 2008 Vel, jeg har testet det, men det funker rett og slett ikke... :SAner ikke hvorfor. Men med metoden jeg brukte over så går det "smertefritt". Merkligste jeg har vært borti på leeeenge ... Kanskje ikke så merkelig etter å ha leste denne artikkelen, du er visst ikke den første som sliter med one.com Advarsel One.com Lenke til kommentar
danweb.cjb.net Skrevet 27. mai 2008 Forfatter Rapporter Del Skrevet 27. mai 2008 Vel, jeg har testet det, men det funker rett og slett ikke... :SAner ikke hvorfor. Men med metoden jeg brukte over så går det "smertefritt". Merkligste jeg har vært borti på leeeenge ... Kanskje ikke så merkelig etter å ha leste denne artikkelen, du er visst ikke den første som sliter med one.com Advarsel One.com Nei, er rimelig oppgitt. At en så enkel kodesnutt som en "header" gjør at siden "låser seg". Men har nå fått det til å funke, og har igjen 10 mnd av den tiden jeg har betalt for, men skal huske å si opp i alle fall 50 dager før det har gått ett år ... dem kjører også en eldre phpmyadmin: 2.9.2 skeptisk 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å