登录php脚本不允许登录

登录php脚本不允许登录,php,mysql,login,Php,Mysql,Login,我已经创建了一个登录系统,但是当我登录时,我说电子邮件或密码不正确,即使它是测试用户,并且详细信息是正确的。也许它和数据库不匹配,我已经检查了一遍又一遍。我似乎找不到问题所在。非常感谢您的帮助 PHP: if(isset($_SESSION['user'])!="") { header("Location: index-user.php"); } if(isset($_POST['btn-login'])) { $email = mysql_real_escape_string($_POST[

我已经创建了一个登录系统,但是当我登录时,我说电子邮件或密码不正确,即使它是测试用户,并且详细信息是正确的。也许它和数据库不匹配,我已经检查了一遍又一遍。我似乎找不到问题所在。非常感谢您的帮助

PHP:
if(isset($_SESSION['user'])!="")
{
header("Location: index-user.php");
}

if(isset($_POST['btn-login']))
{
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);

$email = trim($email);
$upass = trim($upass);

$res=mysql_query("SELECT user_id, user_name, user_pass FROM users WHERE user_email='$email'");
$row=mysql_fetch_array($res);

$count = mysql_num_rows($res); // if uname/pass correct it returns must be 1 row

if($count == 1 && $row['user_pass']==md5($upass))
{
    $_SESSION['user_name'] = $row['user_id'];
    header("Location: index-user.php");
}
else
{
    ?>
<script>alert('Email or password invalid.');</script>
    <?php
}

}
?>
if(isset($\u会话['user'])!=“”)
{
标题(“位置:index user.php”);
}
如果(isset($_POST['btn-login']))
{
$email=mysql\u real\u escape\u字符串($\u POST['email']);
$upass=mysql\u real\u escape\u字符串($\u POST['pass']);
$email=trim($email);
$upass=修剪($upass);
$res=mysql_query(“选择user_id、user_name、user_pass FROM users,其中user_email='$email');
$row=mysql\u fetch\u数组($res);
$count=mysql_num_rows($res);//如果uname/pass correct返回的值必须是1行
如果($count==1&&$row['user_pass']==md5($upass))
{
$\会话['user\u name']=$row['user\u id'];
标题(“位置:index user.php”);
}
其他的
{
?>
警报(“电子邮件或密码无效”);
HTML:

if(isset($_SESSION['user'])!="")
{
header("Location: index-user.php");
}

if(isset($_POST['btn-login']))
{
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);

$email = trim($email);
$upass = trim($upass);

$res=mysql_query("SELECT user_id, user_name, user_pass FROM users WHERE user_email='$email'");
$row=mysql_fetch_array($res);

$count = mysql_num_rows($res); // if uname/pass correct it returns must be 1 row

if($count == 1 && $row['user_pass']==md5($upass))
{
    $_SESSION['user_name'] = $row['user_id'];
    header("Location: index-user.php");
}
else
{
    ?>
<script>alert('Email or password invalid.');</script>
    <?php
}

}
?>
<input class="loginmodal-input" type="text" name="email" placeholder="Email" required>
<input class="loginmodal-input" type="password" name="upass" placeholder="Password" required>
<button type="submit" name="btn-login" id="login-btn" class="login btn-block loginmodal-submit">Login</button>
<button class="login-btn-2 btn btn-lg btn-block" type="button" aria-label="Close" value="Cancel" data-dismiss="modal"> Cancel</button>

登录
取消
MySQL信息:
if(isset($_SESSION['user'])!="")
{
header("Location: index-user.php");
}

if(isset($_POST['btn-login']))
{
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);

$email = trim($email);
$upass = trim($upass);

$res=mysql_query("SELECT user_id, user_name, user_pass FROM users WHERE user_email='$email'");
$row=mysql_fetch_array($res);

$count = mysql_num_rows($res); // if uname/pass correct it returns must be 1 row

if($count == 1 && $row['user_pass']==md5($upass))
{
    $_SESSION['user_name'] = $row['user_id'];
    header("Location: index-user.php");
}
else
{
    ?>
<script>alert('Email or password invalid.');</script>
    <?php
}

}
?>
用户id 用户名 用户电子邮件
用户通过此行中的条件:

if(isset($_SESSION['user'])!="")
结果
True
如果设置了
$\u会话['user']
,而不是如果它为空:
isset
返回布尔值,如果变量被设置,则设置为
True
,否则设置为
False
。ampty字符串计算为
False
。因此,如果未设置
$\u会话['user']
,则代码计算为
(假!=假)

此外,您必须在调用
头(“位置”)
后结束php脚本:


该行中的条件:

if(isset($_SESSION['user'])!="")
结果
True
如果设置了
$\u会话['user']
,而不是如果它为空:
isset
返回布尔值,如果变量被设置,则设置为
True
,否则设置为
False
。ampty字符串计算为
False
。因此,如果未设置
$\u会话['user']
,则代码计算为
(假!=假)

此外,您必须在调用
头(“位置”)
后结束php脚本:


停止使用已弃用且自PHP7起已删除的mysql_*函数。迁移到PDO并开始使用准备好的语句,这真的不难。您是否调试过以查看它挂起的位置?为什么不使用md5(md5真的不应该再用于密码哈希)密码和用户名一起发送以验证用户?我是新手。我一直在尝试使用PDO,学习这些东西需要时间。停止使用不推荐的和从PHP7开始删除的mysql函数。迁移到PDO并开始使用准备好的语句,这真的不难。你调试过它挂起的地方了吗?为什么不使用md5(md5真的不应该再用于密码哈希)密码和用户名一起发送以验证用户?我是新手。我一直在尝试使用PDO,学习这些东西需要时间。现在它不会加载任何内容,错误太多重定向您在同一页面上重定向?或者
index user.php
重定向到此页面?如果用户未设置并且我们不在index-user.php上,请执行重定向到index-user.php。如果代码在页面之间共享。不,我在登录后重定向到另一个页面。(index-user.php)我已经在我的机器上复制了你的代码,第一次重定向成功。尝试重定向到一个不存在的页面:如果你获得了404错误代码,问题不在上面的代码中。现在它不会加载任何东西,错误太多重定向你在同一页面上重定向?或者
index user.php
重定向到此页面?如果用户未设置并且我们没有n index-user.php,重定向到index-user.php。这是因为代码在页面之间共享。不,我在登录后重定向到另一个页面。(index-user.php)我已经在我的机器上复制了您的代码,第一次重定向成功。尝试重定向到不存在的页面:如果您获得404错误代码,问题不在上面的代码中。