Avatar billede cravenx Nybegynder
06. juni 2003 - 02:00 Der er 19 kommentarer

Md5 password auth der går galt..

Jeg sidder her og fidler med min code jeg er 100% sikker på at kode og brugernavn er rigtigt men den kan ikke finde ud af at logge ind!

koden er her.:
http://pastebin.com/11782

livedemo er her.:
http://esL.lir.dk
Avatar billede cravenx Nybegynder
06. juni 2003 - 02:01 #1
ups rettelse

livedemo er her.:
http://esL.lir.dk/esl/
Avatar billede avminarm Juniormester
06. juni 2003 - 07:37 #2
hvad går der galt? - din $PHP_SELF skal nok være $_SERVER['PHP_SELF'] - kan det være det?
Avatar billede UlrBri Nybegynder
06. juni 2003 - 07:47 #3
Mon ikke, at dette:
if($user2['password'] == md5($_POST['password'])) {

skulle have været:
if($user2[n] == md5($_POST['password'])) {

(hvor n er nummeret på placeringen af passwordet i din array)
Avatar billede kryster Nybegynder
06. juni 2003 - 08:55 #4
får den password fra en cookie eller er det ved manuel indtastning?
Avatar billede cravenx Nybegynder
06. juni 2003 - 10:15 #5
den får det fra en manuel indtastning i sig selv
Avatar billede cravenx Nybegynder
06. juni 2003 - 10:24 #6
er det en fejl at jeg flere gange har brugt $_POST[username] ude '' i burde de se sådan her ud $_POST['username'] eller er det ligemeget?
Avatar billede kryster Nybegynder
06. juni 2003 - 13:53 #7
Jeg vil tro at der skal være '' omkring.
Så må du jo sætte noget debug kode ind.
redirecten, og sæt en echo "efter første If"; echo "efter anden if";
ind efter hver if statement så du kan se hvor den ikke gør som du forventer.
Avatar billede avminarm Juniormester
06. juni 2003 - 13:53 #8
det sidste er vist den 'korrekte' skrivemåde, men det første giver ingen fejl - såå..
Avatar billede cravenx Nybegynder
07. juni 2003 - 22:51 #9
glemte at pastebin sletter sourcen her er koden igen stadig intet har hjulpet den kan dog finde variblerne password og username men der sker et eller andet når den skal sammenligne de 2 md5 krypterede passwords kan det være fordi det ene ikke bliver lavet til md5 eller bliver lavet om til normalr password?

<?
mysql_connect($host, $user, $pass); 
mysql_select_db($db);

if ($_GET['logout'] == "") {
    if (!$_SESSION['loggedin']) {
        if ($_POST['username'] != "") {
            $user1 = mysql_query("SELECT * FROM users WHERE
login='".$_POST['username']."' LIMIT 1"); 
            if(mysql_num_rows($user1) > 0) { 
                $user2 = mysql_fetch_array($user1); 
                if($user2['password'] == md5($_POST['password'])) { 
                    $query = "SELECT * FROM users WHERE login = '$_POST[username]' LIMIT
1";
                    $result = mysql_query($query) or die ("Error in query: $query. " .
                    mysql_error());
                    $row = mysql_fetch_object($result);
                    $_SESSION['loggedin'] = $row->name;
                    $_SESSION['userid'] = $row->id; 
                    $_SESSION['userdata'] = $row->data; 
                    $_SESSION['userlevel'] = $row->userlevel;
                    header("Location: $PHP_SELF?mode=admin");
                } else {
                    echo "Hmm... I sense someone who can't type or wants to be somewhere they
shouldn't be. Bad password.<br>$username<br>$password";
                }
            } else {
                echo "Oops... Seems like you can't type!";
            }
        } else {
?>
<form action="<? echo $PHP_SELF; ?>?mode=admin" method=POST>
<input type="text" name="username" value="Login" onFocus="select()"
size="15"><br>
<input type="password" name="password" value="Password"
onFocus="select()" size="15"><br>
<input type="submit" value="login">
</form>
<?
        }
    } else {
        echo "Welcome ".$_SESSION['loggedin'].". You are now logged in.<br>You
can change your detail and preferences by clicking on the links below. If you
have any problems or question, write a mail to NeverKnow (<a
title=\"Mail the webmaster\"
href=\"mailto:recall@e-mail.dk?subject=User response from
".$_SESSION['name']."/".$_SESSION['userid']."\">recall@e-mail.dk</
a>).<br><br>";
        echo "<a href=\"?mode=news&do=write\">Write news</a><br>";
        echo "<br><br><b>Details:</b><br>";
        echo "Name: ".$_SESSION['loggedin'];
        echo "<br>Userid: ".$_SESSION['userid'];
        echo "<br>Userlevel: ".$_SESSION['userlevel'];
    }
} else {
    header("Location: $PHP_SELF?mode=admin");
    session_destroy();
}
?>
Avatar billede kryster Nybegynder
07. juni 2003 - 23:42 #10
Hvilkes login navn og password kan man teste livedemoen med?
er det Login og password?
hvis der er, kan den ikke finde en bruger med navnet "Login"
Avatar billede cravenx Nybegynder
07. juni 2003 - 23:54 #11
Nej. Username = Rune Password = troelzor
md5 laver det om til 65ed35082a0eca105d3acccbdfe328b0 og i min mysql er det også 65ed35082a0eca105d3acccbdfe328b0.
Avatar billede kryster Nybegynder
08. juni 2003 - 00:01 #12
før denne linie if($user2['password'] == md5($_POST['password'])) {
prøv at udskrive $user2["login"] $user2["password"] og $_POST["login"] $_POST["password"]

Og fjern alle dine redirect og indsæt udskrivningen af en text istedet, måske loader den login 2 gange.
Avatar billede kryster Nybegynder
08. juni 2003 - 00:03 #13
det er selvfølgelig md5($_POST["password"]) jeg var intresseret i at se.
Avatar billede Slettet bruger
08. juni 2003 - 00:05 #14
Der er iøvrigt en overflødig SQL forespøgsel:

if($user2['password'] == md5($_POST['password'])) { 
    $query = "SELECT * FROM users WHERE login = '$_POST[username]' LIMIT 1";
    $result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
    $row = mysql_fetch_object($result);
    $_SESSION['loggedin'] = $row->name;
    $_SESSION['userid'] = $row->id; 
    $_SESSION['userdata'] = $row->data; 
    $_SESSION['userlevel'] = $row->userlevel;
    header("Location: $PHP_SELF?mode=admin");
}

kan du iøvrigt erstatte med

if($user2['password'] == md5($_POST['password'])) { 
    $_SESSION['loggedin'] = $user2['name'];
    $_SESSION['userid'] = $user2['id']; 
    $_SESSION['userdata'] = $user2['data']; 
    $_SESSION['userlevel'] = $user2['userlevel'];
    header("Location: $PHP_SELF?mode=admin");
}
Avatar billede cravenx Nybegynder
08. juni 2003 - 00:22 #15
mener du det ville løse problemet?
Avatar billede Slettet bruger
08. juni 2003 - 00:24 #16
Du kan tilsyneladende ikke overskue "din" kode, så du kunne jo starte med at rydde op. Ovenstående er et tiltag i den retning.
Avatar billede Slettet bruger
08. juni 2003 - 00:30 #17
Du mangler da vist iøvrigt også at kalde session_start()
Avatar billede cravenx Nybegynder
08. juni 2003 - 01:56 #18
Nej har været væk fra php i lidt over ½år så har jeg hevet det gamle script der frem og nu kan jeg ikke huske hvad mine tanker var dengang :/
Avatar billede cravenx Nybegynder
08. juni 2003 - 02:00 #19
nej det her er en included fil admin.php resten ligger øverst i index.php

<?
ob_start();
include("inc/variables.php");
include("inc/functions.php");

session_start();
?>
<htm....
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