Avatar billede ruprecht Nybegynder
02. marts 2005 - 17:49 Der er 13 kommentarer og
1 løsning

Login vil ikke godkende navn og kode

Jeg har hentet et loginscript (hent her http://weekenden.dk/login/abc.zip )
Jeg har ændret det der står man skal, men når jeg nu indtaster navn og kode kommer den op med fejlen: Forkert brugernavn eller password og det er det ikke.
Jeg håber det er nok til, at der er en der kan hjælpe mig videre.

Min db forbindelse er i main.php
Der er selvfølgelig oz actions.php men den har jeg ikke ændret på, så får ikke at indsætte for meget kode her, håber jeg at i vil downloade filerne og kigge i dem.
Min kode i index.php er:

<?php
include($_SERVER["DOCUMENT_ROOT"] ."/abc/files/main.php");
?>
<html><head><title>Login med Mysql og PHP</title>
</head>
<body>

<?php
if(tjek_login() !=TRUE) {
?>
<center>
<form action="<?php echo $actionfil; ?>" method="post">
Brugernavn:<br>
<input type="text" name="bruger" size="24"><br>
Password:<br>
<input type="password" name="pass" size="24"><br><br>
<input type="submit" value="Submit">
</form>
<?php
if(isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}
?>
</center>

<?php
}elseif($_SESSION["outtime"] < $tid) {
?>
<center>
<form action="<?php echo $actionfil; ?>" method="post">
Din session er udl&oslash;bet.<br>
Du er logget ind som <?php echo $_SESSION["bruger"]; ?><br>
Indtast dit password igen:<br>
<input type="password" name="passigen" size="24"><br><br>
<input type="submit" value="Submit">
</form>
<?php
if(isset($_SESSION["error"])) {
echo $_SESSION["error"];
unset($_SESSION["error"]);
}
?>
</center>
<?php
}else{

$_SESSION["outtime"] = $logudtid;

echo"<a href=\"". $actionfil ."?logud=true\">Log ud</a>";

while(list($key, $value) = each($brugerfiler)) {
    if(file_exists($incldir . $key .".php")) {
            if($_SESSION["status"] != $adminstatus && $key == $adminfil) {
continue;
}
    echo" | <a href=\"". $actionfil ."?action=". $key ."\">". $value ."</a>";
    }
}
clearstatcache();

if(isset($_SESSION["fil"])) {
$ok_incl = 1;
include($incldir . $_SESSION["fil"] .".php");
    }

}
?>
</body></html>
Avatar billede coderdk Praktikant
02. marts 2005 - 18:28 #1
Mjah, den listing du giver kan vi i hvert tilfælde ikke bruge til noget...
Avatar billede ruprecht Nybegynder
02. marts 2005 - 18:54 #2
Hvad kan du så bruge??
Det ville hjælpe mig mere, end bare at skrive at det ikke kan bruges.....
Avatar billede coderdk Praktikant
02. marts 2005 - 18:55 #3
Dit problem er at den skriver at username/password ikke passer, så evt. et stykke kode hvor den prøver at finde brugeren og sammenligne passwords måske ville være en god idé?
Avatar billede ruprecht Nybegynder
02. marts 2005 - 19:03 #4
Så må det være den her?

actions.php

if(isset($_POST["bruger"], $_POST["pass"])) {

$check = mysql_query("SELECT `brugernavn`, `status` FROM `". $db_navn ."` WHERE `brugernavn` = '". $_POST["bruger"] ."' AND `password` = md5('". $_POST["pass"] ."')") or die (mysql_error());

    if(mysql_num_rows($check) != 0) {
$user = mysql_fetch_object($check);

    $_SESSION["id"] = session_id();
    $_SESSION["bruger"] = $user->brugernavn;
    $_SESSION["status"] = $user->status;
    $_SESSION["outtime"] = $logudtid;

mysql_query("UPDATE `". $db_navn ."` set `temp` = '". $_SESSION["id"] ."' WHERE `brugernavn` = '". $_SESSION["bruger"] ."' LIMIT 1") or die (mysql_error());
    }else{

    $_SESSION["error"] = "Forkert brugernavn eller password";

    }

mysql_free_result($check);

    header("Location:". $redirect ."");
    exit;
}

//Er alle sessions sat?
if(false !== tjek_login()) {

//Ok, så kan div. POST og GET behandles

    if(isset($_POST["passigen"])) {

$check = mysql_query("SELECT `brugernavn` FROM `". $db_navn ."` WHERE `brugernavn` = '". $_SESSION["bruger"] ."' AND `password` = '". md5($_POST["passigen"]) ."' AND `temp` = '". $_SESSION["id"] ."'") or die (mysql_error());

    if(mysql_num_rows($check) != 0) {
    $_SESSION["outtime"] = $logudtid;
    }else{
    $_SESSION = array();
    session_destroy();
    }

    header("Location:". $redirect ."");
    exit;
    } //slut med POST passigen
Avatar billede coderdk Praktikant
02. marts 2005 - 19:05 #5
Jeg vil gætte på at der ikke findes en bruger i databasen med det brugernavn og kodeord, da det er denne der hiver den ud:

$check = mysql_query("SELECT `brugernavn`, `status` FROM `". $db_navn ."` WHERE `brugernavn` = '". $_POST["bruger"] ."' AND `password` = md5('". $_POST["pass"] ."')") or die (mysql_error());

Den ser god nok ud, men den fejler så, og giver:

$_SESSION["error"] = "Forkert brugernavn eller password";
Avatar billede ruprecht Nybegynder
02. marts 2005 - 19:16 #6
Jeg har lige været inde og dobbelt chekke det, og både brugernavn og password er rigtigt?......
Og det også den fejl jeg får hele tiden
Avatar billede coderdk Praktikant
02. marts 2005 - 19:18 #7
Og du er klar over at password'et skal se sådan ud: 098f6bcd4621d373cade4e832627b4f6

Hvis det ikke virker, så så jeg lige noget underligt, prøv at ændre:

$check = mysql_query("SELECT `brugernavn`, `status` FROM `". $db_navn ."` WHERE `brugernavn` = '". $_POST["bruger"] ."' AND `password` = md5('". $_POST["pass"] ."')") or die (mysql_error());

til:

$check = mysql_query("SELECT `brugernavn`, `status` FROM `". $db_navn ."` WHERE `brugernavn` = '". $_POST["bruger"] ."' AND `password` = '". md5( $_POST["pass"] ) ."'") or die (mysql_error());
Avatar billede ruprecht Nybegynder
02. marts 2005 - 19:46 #8
Nu har jeg fået det til at virke nogenlunde.... For nu kan jeg logge ind men jeg kan ikke komme videre ind og oprette flere brugere og jeg tror også jeg har fundet ud af hvorfor.
Jeg forstår bare ikke helt hvad der så skal stå..
Gider du også hjælpe mig med det?

Fra main.php

Dette er EN måde at få vist et link til en anden side.
At lave et array med en "linkvar" og en titel som link
Kan laves på mange forskellige måder.
Her kræver det at du laver en include fil, for hver side som skal vises, og som lægges i $incldir, og derefter tilføjes array'et med "linkvar og titel"

("side1" => "Til side 1")
Linker er $adminfile?action=side1
Filnavnet er så "side1.php
Teksten som vises er "Til side 1"
*/
$brugerfiler = array("side1" => "Til side 1", "side2" => "Til side 2", "side3" => "Til side 3", $adminfil => "Edit brugere");
Avatar billede ruprecht Nybegynder
03. marts 2005 - 09:38 #9
Jeg har nu fundet en formel til at lave md5 passwordet og det var det, der var problemet.
Jeg havde skrevet det som ”almindelige” bogstaver.
Så mange tak for hjælpen. :-)
Med hensyn til det andet prøver jeg mig frem (jeg har brugt nok af din tid)
Så hvis du lægger et svar så får du pointene.
Avatar billede coderdk Praktikant
03. marts 2005 - 19:56 #10
Hvis du selv lægger et svar kan vi dele dem ;)
Avatar billede coderdk Praktikant
03. marts 2005 - 19:56 #11
Hov, det skulle have været et svar! :)
Avatar billede ruprecht Nybegynder
04. marts 2005 - 08:30 #12
Hvorfor kan jeg ikke acceptere svaret?
Jeg har prøvet siden igår og tænkte at det nok bare var en driftforstyrelse, men det kan vel ikke blive ved.
Så må det jo være mig der gør noget forkert?
Skal jeg ikke "bare" klikke på accepter også skulle den vise at jeg har accepteret svaret?
Avatar billede coderdk Praktikant
04. marts 2005 - 08:33 #13
hehe det virkede, takker ;)
Avatar billede ruprecht Nybegynder
04. marts 2005 - 08:42 #14
Nå pyt nu har den gjort det.
Det kan ha været 2 ting.
1. jeg har slettet mine cookies.
2. jeg lavede et svar selv, men det var slet ikke meningen at den skulle sendes, men da jeg klikkede på accepter svaret, sendte den min besked (Lidt dårligt, men nu ved jeg det)
Så jeg ved ikke rigtigt hvad for en af tingene der skulle til.
Også synes jeg du skulle ha alle point'ne for havde aldrig fået det til at virke hvis det ikke havde været for dit 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