这个php登录页面有什么问题?
问题描述:
我对web开发非常陌生,现在正在开展一个学校项目。 我的登录码有问题,但我无法弄清楚它是什么。 当我提交表单时,页面似乎只是重新加载,并且没有设置会话。这个php登录页面有什么问题?
我的缩短登录页面:
<?php include "connect.php";
if (isset($POST['login'])) {
$user_email_username = mysqli_real_escape_string($link, $_POST['email_username']);
$user_password = mysqli_real_escape_string($link, $_POST['password']);
$email_username_query = mysqli_query($link, "SELECT * FROM User WHERE email='$user_email_username' OR username='$user_email_username'");
if (mysqli_num_rows($email_username_query) == 0) {
$not_registered_error = "It looks like you still don't have an account. <a href=\"signup.php\">Sign up</a>.";
} else {
$row = mysqli_fetch_array($email_username_query);
if (sha1($user_password) != $row['password']) {
$wrong_password_error = "The password you submitted is wrong.";
} else {
$_SESSION['user_id'] = $row['idUser'];
$_SESSION['user_name'] = $row['name'];
$_SESSION['user_username'] = $row['username'];
header("Location: index.php");
}
}
}
?>
<!--metadata-->
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div id="login" class="login-panel panel panel-default">
<div class="panel-body">
<form role="form" method="post" action="login.php">
<fieldset>
<!--login form-->
</fieldset>
<?php if (isset($not_registered_error)) {
echo "<div class=\"alert alert-danger\" role=\"alert\">" . $not_registered_error . "</div>";
}
if (isset($wrong_password_error)) {
echo "<div class=\"alert alert-danger\" role=\"alert\">" . $wrong_password_error . "</div>";
} ?>
<p>Haven't joined yet? <a href="signup.php">Sign up</a>.</p>
</form>
</div>
</div>
</div>
</div>
</div>
//...
不像我在网上找到的大多数例子,我想在这里完成是有计划要弄清楚的用户名(或电子邮件)是否不存在或该用户名的密码错误。 我写的注册程序非常棒。问题本身已经足够长了,所以我没有添加signup.php。让我知道它是否有帮助。 将mysql用于本地数据库并使用Bootstrap进行样式设置。
我知道这个问题对许多人都没有帮助,因为它被问到,但我不知道如何更好地制定它。
谢谢大家:d
答
if (isset($POST['login'])) {
需要是:
if (isset($_POST['login'])) {
+0
还在学习堆栈溢出:P – iGNEOS
+0
这是一个疏忽......对不起 –
*不像你找到最例子*?这似乎是登录的基础...... – jeroen
我的意思是,大多数示例使用这样的查询:“SELECT * FROM用户WHERE电子邮件='$ user_email_username'和密码='$密码'”;这种方式,你不能告诉问题是在电子邮件提交或在密码... –
瑞安文森特,谢谢:) –