crazykriss Skrevet 25. juni 2007 Del Skrevet 25. juni 2007 Hei! Har laget en innlogging hvor det blir lagret sessions etter godkjent innlogging, sessions er for brukernavn og passord.. tror dette skal virke.. etter innlogging blir brukeren videresendt til hovedside.php, dette virker. MEN når jeg vil klikke med til neste side som har tilnærmet lik kode/validering så blir jeg redirecta til index.php hvor jeg har login.. Har brukt koden på sidene brukeren skal se: <?php session_start(); if($_SESSION['brukernavn'] && $_SESSION['passord']) { ?> <head> "css ol." </head> <body> "html kode" </body> <? } else { header ("Location: index.php"); } ?> Hva er galt, sikkert masse.. hva er forbedringspotensialet her? bør jeg gjøre dette på en annen måte? Lenke til kommentar
pulse Skrevet 25. juni 2007 Del Skrevet 25. juni 2007 Har du passet på at alle filene dine begynner med session_start(); ? Lenke til kommentar
Ståle Skrevet 25. juni 2007 Del Skrevet 25. juni 2007 (endret) <?php if( !isset( $_SESSION['brukernavn'] ) && !isset( $_SESSION['passord'] ) ) { header ("Location: index.php"); } resten av html stuff her uten else men du burde ha en brukernav og apssordsjekk for hver side altsa if( !sjekklogin() ) die( 'ikke logget inn' ); Endret 25. juni 2007 av Ståle Lenke til kommentar
humbuq Skrevet 25. juni 2007 Del Skrevet 25. juni 2007 (endret) Uten at jeg er noen ekspert på PHP, her er det jeg umiddelbart ser: if($_SESSION['brukernavn'] && $_SESSION['passord']) Se nøye på denne setningen, den har nemlig en logisk brist. Det står bare "if x && y". Når vil denne setningen oppfylles? Aldri. Om du bruker noe sånt som "if x == z && y == w", derimot.. Om du er med? Om du f.eks. vil sjekke brukernavnet og passordet mot en tabell i en database kan du kjøre en spørring mot databasen, sette resultat i et array og bruke if($_SESSION['brukernavn'] == $array['brukernavn'] && $_SESSION['passord'] == $array['brukernavn']) Det jeg har gjort tidligere i en liknende situasjon er å bare sette en sesjonsvariabel ( her: $_SESSION['auth'] ) til 'true' når bruker logger inn, og bruke noe sånt som dette øverst i hver fil som skal være i den "sikre" delen av siden. <?php session_start(); if (!isset($_SESSION['auth'])) header("Location: index.php"); ?> Håper dette var forståelig. EDIT: Som Ståle foreslår, er det nok en god idé å sjekke passord for hver side. Endret 25. juni 2007 av humbuq Lenke til kommentar
itsmebth Skrevet 25. juni 2007 Del Skrevet 25. juni 2007 Uten at jeg er noen ekspert på PHP, her er det jeg umiddelbart ser: if($_SESSION['brukernavn'] && $_SESSION['passord']) Se nøye på denne setningen, den har nemlig en logisk brist. Det står bare "if x && y". Når vil denne setningen oppfylles? Aldri. Om du bruker noe sånt som "if x == z && y == w", derimot.. Om du er med? 8944565[/snapback] Feil, en string er true så lenge den ikke er tom eller "0". Lenke til kommentar
crazykriss Skrevet 26. juni 2007 Forfatter Del Skrevet 26. juni 2007 tusen takk ofr svar, da skal jeg teste dette! Hva menes med at passordet bør sjekkes for hver side? mener dere da opp mot databasen? Eller holder det å se at SESSION for passord er satt? En annen ting jeg har tenkt på.. kan disse SESSION's "gå ut" mens man er inne å surfer på siden? hvor lenge holder de? takk.. Lenke til kommentar
Ståle Skrevet 26. juni 2007 Del Skrevet 26. juni 2007 Det beste er a sjekke brukernavn passord for hver side opp mot databasen, men det er ikke sa gale a settte en "loggetinn" session for sma sider som ikke trenger a vaere sa sikker. Levetiden er satt i PHP.ini filen du kan lese mer her http://no.php.net/session Lenke til kommentar
crazykriss Skrevet 26. juni 2007 Forfatter Del Skrevet 26. juni 2007 Det beste er a sjekke brukernavn passord for hver side opp mot databasen, men det er ikke sa gale a settte en "loggetinn" session for sma sider som ikke trenger a vaere sa sikker. Levetiden er satt i PHP.ini filen du kan lese mer her http://no.php.net/session 8946203[/snapback] Hvor ligger denne filen? Hva er stadardoppsett? har en ekstern webserver via. one.com Lenke til kommentar
Ståle Skrevet 26. juni 2007 Del Skrevet 26. juni 2007 lag et php dokument med <?php phpinfo(); ?> sa kan du lete etter de settingsene du ser pa http://php.net/session Du kan ikke endre pa den nar du har one.com. Men du kan lage et annet script, som unset()-er loggetinn-sessionen nar sa og sa lang tid har gatt. Lenke til kommentar
crazykriss Skrevet 26. juni 2007 Forfatter Del Skrevet 26. juni 2007 lag et php dokument med <?php phpinfo(); ?> sa kan du lete etter de settingsene du ser pa http://php.net/session Du kan ikke endre pa den nar du har one.com. Men du kan lage et annet script, som unset()-er loggetinn-sessionen nar sa og sa lang tid har gatt. 8946869[/snapback] Den er grei, da skal vi se om jeg ikke fåt til noe takk for hjelpen 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å