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

时间:2016-01-30 13:53:15

标签: php 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>

1 个答案:

答案 0 :(得分:0)

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

之类的查询

所以这个查询在两种情况下都可以使用用户名或电子邮件地址登录。

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

我希望我理解你的问题。正确?