Ilk bilgisayarda açtıktan sonra iki site giriş düğmesine vurmak zorunda

0 Cevap

Ben bir oturum için aşağıdaki kodu kullanıyorum. Gayet iyi çalışıyor, ama ilk benim bilgisayarda açtıktan sonra oturum açmaya çalıştığınızda, sadece ben "Login" düğmesine basın ikinci kez çalışır. Ben bu durumda iki kez "Login" düğmesine basarak gerektirmez yapmak nasıl herhangi bir fikir?

Teşekkür peşin,

John

if (!isLoggedIn())
{

    if (isset($_POST['cmdlogin']))
    {

        if (checkLogin($_POST['username'], $_POST['password']))
        {
            show_userbox();
        } else
        {
            echo "Incorrect Login information !";
            show_loginform();
        }
    } else
    {

        show_loginform();
    }

} else
{

    show_userbox();
}


function show_loginform($disabled = false)
{

    echo '<form name="login-form" id="login-form" method="post" action="./index.php"> 



    <div class="usernameformtext"><label title="Username">Username: </label></div> 
    <div class="usernameformfield"><input tabindex="1" accesskey="u" name="username" type="text" maxlength="30" id="username" /></div> 


    <div class="passwordformtext"><label title="Password">Password: </label></div> 
    <div class="passwordformfield"><input tabindex="2" accesskey="p" name="password" type="password" maxlength="15" id="password" /></div> 


    <div class="registertext"><a href="http://www...com/sandbox/register.php" title="Register">Register</a></div> 
    <div class="lostpasswordtext"><a href="http://www...com/sandbox/lostpassword.php" title="Lost Password">Lost password?</a></div> 

  <p class="loginbutton"><input tabindex="3" accesskey="l" type="submit" name="cmdlogin" value="Login" ';
    if ($disabled == true)
    {
        echo 'disabled="disabled"';
    }
    echo ' /></p></form>';


}

EDIT: Burada kullanılan başka bir işlevdir.

function isLoggedIn()
{

    if (session_is_registered('loginid') && session_is_registered('username'))
    {
        return true; // the user is loged in
    } else
    {
        return false; // not logged in
    }

    return false;

}

EDIT II: Burada kullanılan başka bir fonksiyon:

    function checkLogin($u, $p)
    {
    global $seed; 

        if (!valid_username($u) || !valid_password($p) || !user_exists($u))
        {
            return false; did not exist
        }


        $query = sprintf("
            SELECT loginid 
            FROM login 
            WHERE 
            username = '%s' AND password = '%s' 
            AND disabled = 0 AND activated = 1 
            LIMIT 1;", mysql_real_escape_string($u), mysql_real_escape_string(sha1($p . $seed)));
        $result = mysql_query($query);

        if (mysql_num_rows($result) != 1)
        {
            return false;
        } else
        {

            $row = mysql_fetch_array($result);

            $_SESSION['loginid'] = $row['loginid'];

            $_SESSION['username'] = $u;

            return true;
        }


 return false;
}

0 Cevap