使用电子邮件更改系统登录名


Changing the System Login Using Email

默认情况下,我使用用户名登录的脚本。但是,可能有人忘记了他们的用户名,我想提供使用电子邮件登录的选项。

下面的脚本可以通过将username替换为email来编辑使用电子邮件登录。

但是,在成功登录后,它显示在帐户上而不是用户名上,而是电子邮件地址。

你能给出这个问题的解决方案吗?

我的代码:

<?php
include('config.php');
if(isset($_SESSION['username']))
{
?>
<html>
    <head>
        <title>LogIn</title>
    </head>
    <body>
        <div class='message'>You're logged in !!</div>
    </body>
</html>
<?php
}
else
{
    $ousername = '';
    if(isset($_POST['username'], $_POST['password']))
    {
        if(get_magic_quotes_gpc())
        {
            $ousername = stripslashes($_POST['username']);
            $username = mysql_real_escape_string(stripslashes($_POST['username']));
            $password = stripslashes($_POST['password']);
        }
        else
        {
            $username = mysql_real_escape_string($_POST['username']);
            $password = $_POST['password'];
        }
        $req = mysql_query('select password,id from users where username="'.$username.'"');
        $dn = mysql_fetch_array($req);
        if($dn['password']==sha1($password) and mysql_num_rows($req)>0)
        {
            $form = false;
            $_SESSION['username'] = $_POST['username'];
            $_SESSION['userid'] = $dn['id'];
            if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
            {
                $one_year = time()+(60*60*24*365);
                setcookie('username', $_POST['username'], $one_year);
                setcookie('password', sha1($password), $one_year);
            }
?>
<html>
    <head>
        <title>LogIn</title>
    </head>
    <body>
<div class='message'>Login Success</div>
<?php
        }
        else
        {
            $form = true;
            $message = 'Username and password not match';
        }
    }
    else
    {
        $form = true;
    }
    if($form)
    {
?>
</body>
</html>
<html>
    <head>
        <title>LogIn</title>
    </head>
    <body>
<?php
if(isset($message))
{
    echo '<div class="message">'.$message.'</div>';
}
?>
    <form method='post'>
        <div class='login'>
            <label for='username'>Username</label><input type='text' name='username' id='username' /><br />
            <label for='password'>Password</label><input type='password' name='password' id='password' /><br />
            <input type='submit' value='Masuk' />
        </div>
    </form>
<?php
    }
}
?>
    </body>
</html>

您可以触发类似 select id,password,username FROM tbl WHERE username='username' OR email = 'email'

因此,此查询在两种情况下都有效,要么他想使用用户名或电子邮件地址登录。

之后,如果密码匹配,则将用户名(我们最近使用选择查询获取)分配给会话。

我希望我理解你的问题,对吧?