Avatar billede gedekid Nybegynder
21. februar 2007 - 14:37 Der er 3 kommentarer og
1 løsning

Tekst skal kun skrives én gang

Hej eksperter,

jeg har dette lille simple og nok ikke vældigt security-friendly loginscript, men det er blot til min egen personlige blog

--------------------if($_POST["loginsubmit"]) {
    $lname = $_POST["lname"];
    $pw = md5($_POST["pw"]);

    include $_SERVER['DOCUMENT_ROOT']."/mblog/includes/connect.php";

    $sqllogin = "SELECT * FROM admin";
    $loginresult = mysql_query($sqllogin)or die(mysql_error());
    while($row = mysql_fetch_array($loginresult)) {                   
       
        if($lname == $row["loginname"] && $pw == $row["password"]) {
            session_start();
            $_SESSION["login"] = $row["loginname"];
            $_SESSION["pass"] = $row["password"];
            header("Location: index.php");
        } else {
            print "Forkert brugernavn eller password";           
        }
    }
}
---------------------------------------

Det virker ganske udmærket... men der er et lille bagatel-problem..."Forkert brugernavn eller password" skrives det antal gange som der er logins i databasen og det ser jo lidt fjollet ud... hvordan kan jeg skrive det så det kun står én gang?
Avatar billede fixxxer Nybegynder
21. februar 2007 - 14:47 #1
Jeg ville nok gøre følgende:

$sqllogin = "SELECT * FROM `admin` WHERE `loginname` = '".mysql_real_escape_string($lname)."' AND `password` = '".mysql_real_escape_string($pw)."'";

Så får du et resultat tilbage i stedet for at gennemløbe hele tabellen for at se om brugernavn og adgangskode er korrekt.

$r = mysql_query($sqllogin);
if (mysql_num_rows($r) > 0) {
    $row = mysql_fetch_array($loginresult);
    session_start();
    $_SESSION["login"] = $row["loginname"];
    $_SESSION["pass"] = $row["password"];
    header("Location: index.php");
}
else {
    echo 'Forkert brugernavn eller password';
}
Avatar billede fixxxer Nybegynder
21. februar 2007 - 14:47 #2
Det kan omtimeres mere, men nu har du noget at gå ud fra..
Avatar billede gedekid Nybegynder
26. februar 2007 - 12:36 #3
mange takker :) Kan du smide et svar, så er der point...
Avatar billede fixxxer Nybegynder
26. februar 2007 - 12:53 #4
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester