Hayer Skrevet 14. juni 2007 Skrevet 14. juni 2007 Hei! lager et lite login system. Pw og usernames lagres slik at hver bruker får en egen mappe som heter det samme som bruker navnet. Inne i mappa ligger pw.txt (inneholder md5 kryptert pw) og lvl.txt (lvl 3 = admin, 1 = normal). Klikk for å se/fjerne innholdet nedenfor <?php session_start(); $_SESSION['innlogget'] = false; $_SESSION['lvl'] = 0; $_SESSION['navn'] = ""; $rett_pw = false; $rett_user = false; $brukernavn = $_POST['brukernavn']; $passord = $_POST['password']; $filpath = "data/"; $filpath .= $brukernavn; $filpath .= "/pw.txt"; $filpathlvl = "data/"; $filpathlvl .= $brukernavn; $filpathlvl .= "/lvl.txt"; // SJEKKER BRUKERNAVN if (!file_exists($filpath)){ die("Wrong username / password!"); } if (file_exists($filpath)){ $rett_user = true; } // SJEKKER PASSORD if ($rett_user = true){ $passordSJEKK = md5($passord); $fil = fopen($filpath, "r+"); $filPass = fgets($fil); if ($passordSJEKK == $filPass){ $rett_pw = true; } if (!$passordSJEKK == $filPass){ die("Wrong username / password!"); } if ($rett_pw && $rett_user){ $fillvl = fopen($filpathlvl, "r+"); $fillvlinnhold = fgets($fillvl); if (!$fillvlinnhold == 1 or $fillvlinnhold == 3){ die("Your userlevel is illegal!"); } $_SESSION['innlogget'] = true; $_SESSION['lvl'] = $fillvlinnhold; $_SESSION['navn'] = $brukernavn; if ($_SESSION['innlogget']==true && $_SESSION['lvl']>>0 && $_SESSION['lvl']<<4 && !$_SESSION['navn']==""){ echo "Login succssesful!"; } } } echo "innlogget : $_SESSION['innlogget'] <br> lvl : $_SESSION['lvl'] <br> navn : $_SESSION['navn'] <br> rett pw : $rett_pw <br> rett user : $rett_user"; ?> Problemet er at den ikke skriver ut Login Succssesful! Håper noen kan hjelpe!
-morten Skrevet 14. juni 2007 Skrevet 14. juni 2007 if ($rett_user = true){ skal vel være == der. if ($_SESSION['innlogget']==true && $_SESSION['lvl']>>0 && $_SESSION['lvl']<<4 && !$_SESSION['navn']==""){ Du skal bruke > og <, ikke >> og << (som er symbolene for bit-shifting, som er noe helt annet enn større enn og mindre enn). Men hvorfor i all verden bruker du ikke en SQL-database? Det er betydelig enklere...
Hayer Skrevet 14. juni 2007 Forfatter Skrevet 14. juni 2007 (endret) ok, vant til andre språk.. Endret 14. juni 2007 av Hayer
Hayer Skrevet 14. juni 2007 Forfatter Skrevet 14. juni 2007 ok, vant til andre språk.. funker ikke Klikk for å se/fjerne innholdet nedenfor <?php session_start(); $_SESSION['innlogget'] = false; $_SESSION['lvl'] = 0; $_SESSION['navn'] = ""; $rett_pw = false; $rett_user = false; $brukernavn = $_POST['brukernavn']; $passord = $_POST['password']; $filpath = "data/"; $filpath .= $brukernavn; $filpath .= "/pw.txt"; $filpathlvl = "data/"; $filpathlvl .= $brukernavn; $filpathlvl .= "/lvl.txt"; // SJEKKER BRUKERNAVN if (!file_exists($filpath)){ die("Wrong username / password!"); } if (file_exists($filpath)){ $rett_user = true; } // SJEKKER PASSORD if ($rett_user == true){ $passordSJEKK = md5($passord); $fil = fopen($filpath, "r+"); $filPass = fgets($fil); if ($passordSJEKK == $filPass){ $rett_pw = true; } if (!$passordSJEKK == $filPass){ die("Wrong username / password!"); } if ($rett_pw && $rett_user){ $fillvl = fopen($filpathlvl, "r+"); $fillvlinnhold = fgets($fillvl); if (!$fillvlinnhold == 1 or $fillvlinnhold == 3){ die("Your userlevel is illegal!"); } $_SESSION['innlogget'] = true; $_SESSION['lvl'] = $fillvlinnhold; $_SESSION['navn'] = $brukernavn; if ($_SESSION['innlogget']==true && $_SESSION['lvl']>0 && $_SESSION['lvl']<4 && !$_SESSION['navn']==""){ echo "Login succssesful!"; } } } ?> Legger til brukernavnet på starten av passordet pga det legger seg automatisk til når registreringsscriptet registrerer en ny bruker :S Si fra hvis noe skal forklares
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å