Avatar billede vholt Nybegynder
04. juni 2007 - 13:17 Der er 6 kommentarer og
2 løsninger

MySQL/PhP login problem

Jeg har et problem med mit login system. Det er tilsyneladende muligt at logge ind med en fuldstændig vilkårlig karakter(er) som adgangskode. Dog bliver brugernavnet checket korrekt i databasen.

Min kode ser sådan ud:

FORM
////////////////
        <TABLE><TR><TD>
        <form method="post" action="sql_login.php">
        <input type="text" onBlur="if (this.value =='' ){this.value='User'}" onClick="if (this.value ='User'){this.value=''}"                 class="loginbox" name="u_name" value="User"><br>
        <input type="password" class="loginbox" name="u_pass"><br>
        <input type="image" src="/pics/login2.png" align="right">
        </form>
        </TD></TR></TABLE>
////////////////



SQL_LOGIN.php////////////////////////////////
<?php
    session_start();

    include("connect.php");
    mysql_connect(localhost,$username,$password);
    @mysql_select_db($database) or die( "Unable to select database".mysql_error());

    if(empty($_POST['u_name']) || empty($_POST['u_pass']))
    {
        header("location: index.php");
        exit;
    }
    else
    {
        $query = mysql_query("SELECT * FROM user_login WHERE user_name = '".$_POST['u_name']."'")or die("Fejl".mysql_error());
   
        if(mysql_num_rows($query) =='1')
        {
            $row = mysql_fetch_array($query);
   
            if ($row['user_pass'] = $_POST['u_pass'])
            {
                $_SESSION['username'] == $_POST['u_name'];
            }
            header("location: admin_index.php");
        }
        else
        {
            header("location: index.php");
            exit;
        }

    }
?>

////////////////////////////////////////

Håber nogen kan hjælpe :-D
Avatar billede michael_stim Ekspert
04. juni 2007 - 13:34 #1
if ($row['user_pass'] = $_POST['u_pass'])
            {
                $_SESSION['username'] == $_POST['u_name'];
            }

Du har fået byttet rundt på tildelingen og vilkåret (= og ==):

if ($row['user_pass'] == $_POST['u_pass'])
            {
                $_SESSION['username'] = $_POST['u_name'];
            }
Avatar billede vholt Nybegynder
04. juni 2007 - 13:40 #2
Tak for hjælpen, det virker til dels nu. Dog virker det som om at når jeg først har logget korrekt ind en enkelt gang er den ligeglad med adgangskoden efterfølgende. Måske noget med at jeg ikke afslutter min session? Har ikke nogen 'logout' funktion.
Avatar billede michael_stim Ekspert
04. juni 2007 - 13:41 #3
Ja, det er derfor. Session_time er som default sat til 20 min eller når du lukker for din browser (tror jeg nok)
Avatar billede vholt Nybegynder
04. juni 2007 - 13:42 #4
Kan jeg afslutte min session ved tryk på en knap el. lign?
Avatar billede michael_stim Ekspert
04. juni 2007 - 13:46 #5
if(isset($_POST['dinKanp'])){
unset(dinSession);
}
Avatar billede vholt Nybegynder
04. juni 2007 - 13:46 #6
Svar
Avatar billede vholt Nybegynder
04. juni 2007 - 13:48 #7
Mange tak for hjælpen. Nu skal jeg lige finde ud af det med at give points :S
Avatar billede michael_stim Ekspert
04. juni 2007 - 13:49 #8
Du skal bare acceptere dit eget svar, for jeg samler ikke på point ;o)
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
Computerworld tilbyder specialiserede kurser i database-management

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