Avatar billede nickern Nybegynder
06. december 2006 - 22:27 Der er 9 kommentarer

Problemer med mit login-system

Hejsa

Hvad er der galt med denne kode:

<-- Kode Start -->

98<?php
session_start();
require("db.php");

if ($_SESSION['id'] == 1)
{
    ?>
    <html>
    <head>
    <title>Admin side</title>
<meta name="Generator" content="Stone's WebWriter 4">
    </head>
   
    <body>

    </body>
    </html>
    <?php
}
else
{
    if (isset($_POST['kode']) || isset($_POST['bruger']))
    {
        if (isset($_POST['kode']) && isset($_POST['bruger']))
        {
            $add_kode = md5(addslashes($_POST['kode']));
            $add_bruger = addslashes($_POST['bruger']);
           
            $query = mysql_query("SELECT * FROM brugere WHERE bruger='".$add_bruger."' AND kode='".$add_kode."'") or die (mysql_error());
            $antal = mysql_num_rows($query);
            $row = mysql_fetch_array($query);
           
            if ($antal > 0)
            {
                $_SESSION['navn'] = $_POST['bruger'];
                $_SESSION['id'] = $row['id'];
               
                header("Location: $PHP_SELF");
                exit;
            }
            else
            {
                $_SESSION['fejl'] = "Forkert brugernavn eller kode";
               
                header("location: $PHP_SELF");
                exit;
            }
        }
        else
        {
            $_SESSION['fejl'] = "Alle felter blev ikke udfyldt";
           
            header("location: $PHP_SELF");
            exit;
        }
    }
    ?>
    <html>
   
    <head>
    <title>Admin login</title>
    </head>
   
    <body>
    <center>
    <?php
    $skriv = $_SESSION['fejl'] != "" ? $_SESSION['fejl'] : "";
    $_SESSION['fejl'] == "";
    echo "<i>".$skriv."</i>";
    ?>
<center>
<form action="<?php echo $PHP_SELF; ?>" method="post">
<table border="0">
<tr>
    <td>
<b><center>Login</center></b>
</td>
</tr>
<tr>
    <td>
<b><center>Brugernavn:
<br>
<input type="text" name="bruger"></center></b>
</td>
</tr>
<tr>
    <td>
<b><center>Kodeord:
<br>
<input type="password" name="kode"></center></b>
</td>
</tr>
</table>
    <input type="submit" value="Login">
    </form>
    </center>
    </body>
   
    </html>
    <?php
}
?>

<-- Kode Slut -->

Den vil bare ikke du - men den duer fint nok til min anden side:s

Håber I kan hjælpe mig

God Jul
Avatar billede coderdk Praktikant
06. december 2006 - 22:31 #1
Der står 98 allerførst ;)
Avatar billede nickern Nybegynder
06. december 2006 - 22:49 #2
Det ændrer jo intet?

Jeg har gemt mit kode ord med md5 - og har ikke ændret i bruger-databasen - fra den da jeg brugte den før. Men nu vil den bare ikke acceptere den mere?

Den bliver ved med at spytte ud "Forkert brugernavn er kode"!
Men når jeg så tjekker det jeg har uploadet så er det rigtigt nok:S
Avatar billede mcardle Nybegynder
06. december 2006 - 23:21 #3
Hmm, du er sikker på dit kodeord er md5-krypteret i din db? Hvad skriver den, når du prøver at logge ind?
Avatar billede coderdk Praktikant
07. december 2006 - 01:24 #4
Nej ikke lige på den forkert kode fejl, men hvis den accepterede koden, ville din session nok ikke blive sat, da du har output før du har session_start();

I øvrigt har du:

    if (isset($_POST['kode']) || isset($_POST['bruger']))
    {
        if (isset($_POST['kode']) && isset($_POST['bruger']))
        {

Men det vil jo være nok med blot:

        if (isset($_POST['kode']) && isset($_POST['bruger']))
        {

Men for at debugge det andet, prøv at skrive SQL-koden ud.
Avatar billede nickern Nybegynder
07. december 2006 - 08:14 #5
Mcardle: Den bliver ved med at spytte ud "Forkert brugernavn er kode"!

Coderdk: okay - men selvom jeg fjerner dette - giver den samme fejl.
Hvad vil det sige at debugge?
Avatar billede coderdk Praktikant
07. december 2006 - 13:43 #6
Debugge betyder at finde fejlen ;) F.eks. ved at udskrive variable og se om de indeholder hvad du forventer.
Avatar billede nickern Nybegynder
07. december 2006 - 13:53 #7
coderdk: Okay - hvordan kan man hente noget der er md5 krypteret? Altså hente det rigtige kodeord (det som jeg valgte som kodeord.
Avatar billede coderdk Praktikant
07. december 2006 - 14:02 #8
Ikke forstået? Du kan ikke få et kodeord ud af en MD5 - MD5 kan ikke "gå baglæns", du kan ikke afkryptere en MD5...
Avatar billede mcardle Nybegynder
07. december 2006 - 19:20 #9
Det gør du i en query lige som alt det andet, men du er nød til at sammeligne noget du skriver:

f.eks.:
$pass = md5($_POST["password"]);

if($pass == $row["password"]){
  login
}
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

IT-JOB

Rambøll Management Consulting

Senior AI Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger leder til Lokal IT Servicecenter i Holstebro

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Unified Communications specialist til IT-Operations i Cyberdivisionen

Capgemini Danmark A/S

Microsoft AI Solution Architect