Avatar billede alex_sleiborg Nybegynder
12. maj 2005 - 13:02 Der er 12 kommentarer og
1 løsning

Login igennem MySQL

Jeg skal lave et lille login system, hvor PHP skal ind og tjekke om brugeren eksisterer i databasen og ligeledes om passwordet er korrekt. Jeg har ikke verdens skarpeste i PHP, men har nu prøvet mig lidt frem alligevel. Men kan ikke få det til og virke.

Er der nogen der kan se hva jeg har gjort galt...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD><TITLE>Login</TITLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="../style/1_pc_ie.css" type=text/css rel=stylesheet></HEAD>
<body>
<?php
//Connecter til MySQL databasen
mysql_connect("localhost", "root", "");
mysql_select_db("rejsetaske");

if (isset($_POST['password']))
{
    $resultpass = mysql_result(mysql_query("SELECT COUNT (*) FROM brugere WHERE password= '".$_POST['password']."'"), 0);
    $resultbruger = mysql_result(mysql_query("SELECT COUNT (*) FROM brugere WHERE bruger= '".$_POST['bruger']."'"), 0);
    if ($resultpass == 1) && ($resultbruger == 1)
    {
        echo  "<script>window.location.href='admin.php';</script>";

    } else {
        echo  "<script>window.location.href='wrong.php';</script>";
    }
}
?>
<TABLE cellSpacing="0" cellPadding="0" width="487" border="0">
    <TABLE cellSpacing="0" cellPadding="0" width="487" height="132 px" border="0">
        <TR>
              <TD vAlign="top" align="left">
                  <BIG>Login</BIG>
            </TD>
        </TR>
        <TR>
            <TD vAlign="top" align="left">
                <SPAN class="norm">                </SPAN>
          </TD>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD width="88 px"><SPAN class="norm"><STRONG>Brugernavn</STRONG></SPAN></TD>
            <TD><SPAN class="norm"><STRONG>Adgangskode</STRONG></SPAN></TD>                   
        </TR>
        <TR>
            <TD vAlign="top align="left"><SPAN class="norm">
                <input type="text" name="bruger" value="<?php echo $ibruger; ?>" size="30"> <?php echo $bruger;?></SPAN>
            </TD>
            <TD vAlign="top align="left"><SPAN class="norm">
                <input type="text" name="bruger" value="<?php echo $ipassword; ?>" size="20"> <?php echo $password;?></SPAN>
            </TD>
            </SPAN>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD align="right">
            <SPAN class="norm"><input type="submit" name="login" value="Log Ind"/></SPAN></TD>
        </TR>
    </TABLE>
</body>
</html>

I min database hedder Rejsetaske, og tabellen hedder brugere, som har 2 felter bruger og password
Avatar billede Slettet bruger
12. maj 2005 - 14:10 #1
Hvad sker der.. ?
Avatar billede alex_sleiborg Nybegynder
13. maj 2005 - 08:35 #2
Har nu ændret koden, sådan man bare skal skrive sit password for og logge ind. For og se om den får fat i databasen. Men når jeg klikker på Log Ind sker der ingenting

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD><TITLE>Login</TITLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="../Login/1_pc_ie.css" type=text/css rel=stylesheet></HEAD>
<body>
<?php
//Connecter til MySQL databasen
mysql_connect("localhost", "root", "");
mysql_select_db("rejsetaske");

if (isset($_POST['password']))
{
    $resultpass = mysql_result(mysql_query("SELECT COUNT (*) FROM brugere WHERE password= '".$_POST['password']."'"), 0);
    if ($resultpass == 1)
    {
        echo  "<script>window.location.href='www.google.dk';</script>";

    } else {
        echo  "<script>window.location.href='http://stopstop.mine.nu';</script>";
    }
}
?>
<TABLE cellSpacing="0" cellPadding="0" width="487" border="0">
    <TABLE cellSpacing="0" cellPadding="0" width="487" height="132 px" border="0">
        <TR>
              <TD vAlign="top" align="left">
                  <BIG>Login</BIG>
            </TD>
        </TR>
        <TR>
            <TD vAlign="top" align="left">
               
            </TD>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD width="88 px"><SPAN class="norm"><STRONG>Brugernavn</STRONG></SPAN></TD>
            <TD><SPAN class="norm"><STRONG>Adgangskode</STRONG></SPAN></TD>                   
        </TR>
        <TR>
            <form method="post" action="<?php $PHP_SELF ;?>">
            <TD vAlign="top align="left"><SPAN class="norm">
                <!--<input type="text" name="bruger" value="<?php echo $ibruger; ?>" size="30"> <?php echo $bruger;?></SPAN>-->
            </TD>
            <TD vAlign="top align="left"><SPAN class="norm">
                <input type="password" name="bruger" value="<?php echo $ipassword; ?>" size="20"> <?php echo $password;?></SPAN>
            </TD>
            </SPAN>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD align="right">
            <SPAN class="norm"><input type="submit" value="Log Ind"/></SPAN></TD>
        </TR>
    </TABLE>
</body>
</html>
Avatar billede sukos Juniormester
13. maj 2005 - 08:47 #3
På feltet password bruger du name="bruger"
Hvilket du iøverigt også gør for brugernavnet!
Og hvor får du $ibruger m.fl. fra?

Når du vil tjekke i mysql, så vælger du at hente rows hvor password er det indtastede.
Flere kan jo godt ha' samme password?

Jeg ville gøre så'n: (når feltet password har fået name="password"

$resultpass = mysql_query("SELECT `bruger` FROM `brugere` WHERE `bruger` = '". $_POST["bruger"] ."' AND `password` = '". $_POST["password"] ."'") or die (mysql_error());

if(mysql_num_rows($resultpass) == 1) {
ok login
}else{
fejl i login
}

Og så er det nok værd lige at kikke her:
http://www.eksperten.dk/artikler/190

Og umiddelbart ville jeg også kryptere password'et i mysql
Avatar billede alex_sleiborg Nybegynder
13. maj 2005 - 09:19 #4
Det med de havde samme navne havde jeg ikke lige set. Men det skulle være i orden nu. Men der sker stadig ikke noget når man trykker på Log Ind. Men der står øverst på siden. Fejl i Login

Her er koden

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD><TITLE>Login</TITLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="../Login/1_pc_ie.css" type=text/css rel=stylesheet></HEAD>
<body>
<?php
//Connecter til MySQL databasen
mysql_connect("localhost", "root", "");
mysql_select_db("rejsetaske");

$resultpass = mysql_query("SELECT `bruger` FROM `brugere` WHERE `bruger` = '". $_POST["bruger"] ."' AND `password` = '". $_POST["password"] ."'") or die (mysql_error());

if(mysql_num_rows($resultpass) == 1) {
echo "Ok login";
}else{
echo "fejl i login";
}

?>
<TABLE cellSpacing="0" cellPadding="0" width="487" border="0">
    <TABLE cellSpacing="0" cellPadding="0" width="487" height="132 px" border="0">
        <TR>
              <TD vAlign="top" align="left">
                  <TD>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD width="88 px"><SPAN class="norm"><STRONG>Brugernavn</STRONG></SPAN></TD>
            <TD><SPAN class="norm"><STRONG>Adgangskode</STRONG></SPAN></TD>                   
        </TR>
        <TR>
            <form method="post" action="<?php $PHP_SELF ;?>">
            <TD vAlign="top align="left"><SPAN class="norm">
                <!--<input type="text" name="bruger" value="<?php echo $ibruger; ?>" size="30"> <?php echo $bruger;?></SPAN>-->
            </TD>
            <TD vAlign="top align="left"><SPAN class="norm">
                <input type="password" name="password" value="" size="20"> <?php echo $password;?></SPAN>
            </TD>
            </SPAN>
        </TR>
    </TABLE>
    <TABLE>
        <TR>
            <TD align="right">
            <SPAN class="norm"><input type="submit" value="Log Ind"/></SPAN></TD>
        </TR>
    </TABLE>
</body>
</html>
Avatar billede sukos Juniormester
13. maj 2005 - 09:38 #5
Hvad gør din $ibruger?
Prøv at fjerne den. Altså ikke sætte value for navn
Avatar billede alex_sleiborg Nybegynder
13. maj 2005 - 11:07 #6
Jamen den bliver slet ikke brugt. Læg mærke til at der er sat <!-- Foran, og den slutter med -->
Avatar billede sukos Juniormester
13. maj 2005 - 11:29 #7
Jah, ok!
Men i query, tjekkes jo for både brugernavn og password!
Og du har jo kun password.
SÅ prøv at fjerne din kommentar, så du skal indtaste bruger og password
Avatar billede alex_sleiborg Nybegynder
17. maj 2005 - 09:27 #8
Så nu tjekker den bruger og password. Men hvis jeg siger den skal linke til fek.s www.google.com hvis altså bruger og pass er rigtig, så vil den ikke vise siden. Hvordan får jeg den til det?
Avatar billede alex_sleiborg Nybegynder
17. maj 2005 - 09:48 #9
Der vil jo egentligt også komme et problem. Hvis jeg bare linker videre, når man har indtastet sit bruger og password. Så kan jo bare springe over den del, hvor man logger ind. Hvis man kender den side man linker til, så kan man vel bare selv gå ind på siden. Og så slippe for og skrive adgangskode og brugernavn. Hvordan kan man fikse det?
Avatar billede sukos Juniormester
17. maj 2005 - 12:18 #10
Til at holde styr på om man har "rundet" db'en, kan du bruge sessions eller cookies
Tjekke om den er sat, og er den det så vis siden.
sessions:
http://dk.php.net/manual/da/ref.session.php
cookies:
http://dk.php.net/manual/da/function.setcookie.php

Hvad mener du med "link"?
Avatar billede alex_sleiborg Nybegynder
17. maj 2005 - 12:27 #11
Okay jeg prøver og ser om jeg kan få de sessions eller cookies til virke.

Når jeg viser siden nu, står der fek.s "Fejl i login" i toppen af siden. Den skal jo helst ikke skrive noget. Før man har skrevet login
Avatar billede alex_sleiborg Nybegynder
24. maj 2005 - 08:29 #12
Det virker nu:)

Smid et svar, så du kan få dinne point
Avatar billede sukos Juniormester
24. maj 2005 - 09:21 #13
Ok
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