如何重定向到登录页面,然后在php中重定向回上一页
我知道这方面有很多问题,但是我找不到一个答案,当我希望登录总是重定向到主页,除非当用户点击“提交”页面,它应该登录,然后允许用户添加建议。 在点击“提交”页面后,我设法重定向到登录页面,但在那之后,它重定向到主页,我陷入了一个循环。 (索引是我的主页)。 (建议是我要强制登录的地方)。 以下是我迄今为止所做的工作: 在my suggest.php的顶部:如何重定向到登录页面,然后在php中重定向回上一页,php,mysql,authentication,redirect,require,Php,Mysql,Authentication,Redirect,Require,我知道这方面有很多问题,但是我找不到一个答案,当我希望登录总是重定向到主页,除非当用户点击“提交”页面,它应该登录,然后允许用户添加建议。 在点击“提交”页面后,我设法重定向到登录页面,但在那之后,它重定向到主页,我陷入了一个循环。 (索引是我的主页)。 (建议是我要强制登录的地方)。 以下是我迄今为止所做的工作: 在my suggest.php的顶部: <?php if(!isset($_SESSION['user_id'])) { $_SESSION["login_redir
<?php
if(!isset($_SESSION['user_id']))
{
$_SESSION["login_redirect"] = $_SERVER["PHP_SELF"];
header("Location: login2.php");
exit;
}
?>
这是我第一次用php编写代码,所以我想给出一个详细的答案。
谢谢您应该使用
session_start()代码>在每页的第一行,实际上之前没有任何空格或换行符 sessison_start()必须位于所有这些文件中
<?php
if(isset($_POST['loginbutton'])){
require 'dbh.inc.php';
$UsernameEmail = $_POST['username/email'];
$password = $_POST['password'];
if (empty($UsernameEmail)||empty($password)){
header("location: ../Index.php?error=emptyfields&username");
exit();
}else {
$sql = "SELECT * FROM users WHERE username=? OR email =? ;" ;
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt,$sql)){
header("location: ../Index.php?error=sqlerror");
exit();
}
else {
mysqli_stmt_bind_param($stmt , "ss", $UsernameEmail,$UsernameEmail );
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if($row = mysqli_fetch_assoc($result)){
$pwdCheck = password_verify($password , $row['password']);
if($pwdCheck == false ){
header("location: ../Index.php?error=wrongPassword");
exit();
} else if ($pwdCheck == true ){
session_start();
$_SESSION['user_id']= $row['id'];
$_SESSION['user_name']= $row['username'];
} else {
header("location: ../Index.php?error=wrongPassword");
exit();
}
}
else {
header("location: ../Index.php?nouser/emailmatch");
exit();
}
}
}
}
else {
header("Location: ../Index.php?succses");
exit();
}
<?php
if(!isset($_SESSION['user_id']))
{
header('Location: login2.php?redirect=SUGGEST.php');
exit;
}
?>
if (isset($_GET['redirect'])) {
header('Location: ' . $_GET['redirect']);
}