Pampaxius Skrevet 27. november 2003 Del Skrevet 27. november 2003 Har endelig klart å lage en innlogginsside, men der er det bare ein bruker og brukernavnet og passordet ligger i fila som blir kjørt når du logger på. hvordan kan jeg lagre flere brukere med passord i ein egen fil? Lenke til kommentar
Neo Skrevet 27. november 2003 Del Skrevet 27. november 2003 linjeskift? kjøre følgende oppsett i fila: brukernavn1:::passord1 brukernavn2:::passord2 brukernavn3:::passord3 Beste er å bruke en database og kryptere passordene der. Oppbevaring av passord i klartekst er ikke å anbefale. Lenke til kommentar
hajejan Skrevet 27. november 2003 Del Skrevet 27. november 2003 off lenge siden jeg har brukt tekstfiler. Det beste du kan gjøre er å lagre passordet slik: function makepassword($user, $pw) { $kryptstreng = $user. $pw; $kryptpass = md5($kryptstreng); return $kryptpass; } For å sjekke passordet bruker du: function checkpass($user, $pw) { // her må du først slå opp brukeren i databasen din, så du sjekker riktig bruker $kryptstreng = $useruinput . $pwinput; $kryptpass = md5($kryptstreng); if ($kryptpass == $lagretpassord) { $flag = 1; } return $flag; } På denne måten kan du bruke if (checkpass($brukerinput, $passordinput)) { echo "det var riktig passord!"; } else { echo "feil brukernavn eller passord"; } Når det gjelder tekstfilene dine: Det er ikke noe problem å lagre md5-krypterte passord i klartekst, selv om jeg uansett ville lagt denne typen ting utenfor webrota. For å legge til linjeskift i tekstfila, prøv å bruke chr(13) eller chr(10), avhengig av om du kjører på wintel- eller *nix server. for å lese fila bruker du $filen = file($filnavn); Nå har du hele fila lagret i $filen. Denne må du nå loope gjennom med en for løkke (for ($i=0; $i < count($filen); $i++)), og du må explode inni løkka: $dennekombinasjonen = explode ("...", $filen[$i]); nå vil $dennekombinasjonen[0] ha brukernavnet og $dennekombinasjonen[1] ha passord-hasjen. Det er disse to du sjekker mot inni checkpass - funksjonen. Lenke til kommentar
Pampaxius Skrevet 27. november 2003 Forfatter Del Skrevet 27. november 2003 takk for alle svar! prøvde litt men gjekk litt i surr med all informasjonen.. veit at den er tungvindt, men er fornøgd med å ha laga eit login script ikkje er den sikkert heller, men det får komme etter kvert. er ikkje akkurat nåke store hemmeligheter.. skal vise korleis den gamle login-funskjonen fungerte: login.php: fyller ut informasjon(tar berre med det som var i "form" delen) <form action="loginaction.php" method="post"> <tr> <td colspan="2">[Login]</td> </tr> <tr> <td> <font face="Verdana" size="2">Brukernamn:</font> </td> <td align="right"> <input type="text" name="login" size="12"> </td> </tr> <tr> <td> <font face="Verdana" size="2">Passord</font> </td> <td align="right"> <input type="password" name="passwd" size="12"> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Login"> </td> </tr> </form> loginaction.php: sjekker om brukernamnet og passordet er rett. viss det er riktig oppretter det ein session med ein loginid, og går til medlemssidene. <?php if (empty($_POST['login'])) { } $namn = "kristian"; $passord = "mittpassord"; if(strcmp($_POST['login'],"$namn")==0 && strcmp($_POST['passwd'],"$passord")==0) { session_start(); session_register('loginid'); $loginid = "2004"; header("Location: loggedin.php"); } else { print("Feil oppstått: brukernamnet eller passordet er feil."); } ?> loggedin.php (sjekker først om loginiden ligger i ein session. viss den gjer det så viser den det hemmelige innhaldet på sida. <?php session_start(); if($loginid == "2004") { print("Du er no logga inn på det hemmelige området!<br> Login ID'en din er lagra i ein session.<br>"); } else { print("Du kan ikkje opne denna sida utan å logge på først."); } ?> veit at det er litt tungvindt, men er i alle fall ein start for å lære litt om sessions og sånn... nåken som vil forklare ut i fra filene (eventuellt i nye filer) mine vil forklare korleis den sjekker om brukernamnet og passordet passer med ein kryptert brukernamn og passord i ei anna fil (f. eks. users.php)? 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å