PHP登录页面重定向到自身并且不登录

标签 php mysql forms authentication

我正在尝试制作一个简单的 PHP MySQL 登录页面。我一直在阅读代码,看不出我做错了什么。我正在使用我刚刚在数据库中作为测试查看的电子邮件和密码进行测试,因此我知道它存在。当我在上一个表单上单击提交时,它只是将我重定向回同一页面并且没有登录(我知道这是因为我的标题在工作时随 $_SESSION 变量发生变化;我知道这是因为我的注册页面有效但是不是注册后的登录名)。还要注意,在注册时,他们会输入他们的名字和姓氏,这就是我将其包含在 session_start 的 $_SESSION 变量中的原因。这是代码(首先是表单,然后是 checklogin.php 页面):

<!--THIS IS THE FORM FROM THE PAGE SIGN_IN.PHP-->
<form method="post" target="checklogin.php">
   <label for="email">EMAIL/USERNAME:</label>
   <input type="text" name="email" id="email">
   <label for="password">PASSWORD:</label>
   <input type="password" name="password" id="password">
   <br />
   <input type="submit" value="Let's Play!">
</form>

这是表单发布到的 checklogin.php 脚本:

<?php
$mysqli = mysqli_connect("mysql_name","login_id","password", "db_name");
if (!$mysqli)
  {
  die('Could not connect: ' . mysqli_error($mysqli));
  }

// username and password sent from form
//NEVER Remove the mysql_real_escape_string. Else there could be an Sql-Injection!
$email=$mysqli->real_escape_string($_POST['email']);
$password=$mysqli->real_escape_string($_POST['password']);

$sql="SELECT * FROM tbl_name WHERE email='$email' and password='$password'";
$result = $mysqli->query($sql);

if(is_object($result) && $result->num_rows == 1){
  // Register variables and redirect to file "profile.php"
  session_start();
  $_SESSION['firstname']=$_POST['firstname'];
  $_SESSION['lastname']=$_POST['lastname'];
  $_SESSION['email']=$_POST['email'];
  $_SESSION['password']=$_POST['password'];
  redirect('profile.php');
} else {
  echo "Wrong Username or Password";
}

?>

我也尝试过使用 header('location:profile.php') 但结果相同。

最佳答案

<form method="post" action="checklogin.php">

action属性用于指定将发布表单的 URL。而 target属性用于指定应加载 URL 的位置。

如果缺少 action 属性,它默认为当前 URL,这就是您在提交表单时导航到同一页面的原因。

关于PHP登录页面重定向到自身并且不登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132444/

相关文章:

php - 调度php脚本

c# - 从另一个表单打开表单收到错误C#

javascript - 如何为数据库中的不同记录/行创建用户生成的链接列表,单击后填充 html 表单?

php - 在 PHP 中屏蔽和分层图像

php - jQuery 验证远程方法使用来检查用户名是否已存在

php - 如何修复 PHP 表单操作中的 'Undefined index:'?

python - 如何在 '_mysql.pyd' 中打开 'D:\Python25\Lib\site-packages' ?

MySQL从左连接表插入一列的所有行?

mysql - 只是想确认通过 IN 运行单个 mySQL UPDATE 是否比多个查询更快

javascript - 你如何将值从 html 中的迭代对象传递到 Angular2/4 中的组件?