[英]How to redirect or change the URL for display of index.php page on success of login in php?
我在 php 中使用 session 創建了一個登錄,但是在密碼匹配時( loginsubmit.php
中的代碼)
所有登錄名和密碼檢查工作正常。 關於使用注銷選項重定向到索引頁面的唯一問題。
成功后我重定向到index.php
但我發現 index.php 文件的內容顯示在登錄框下方,並且 URL 也沒有更改。
我附上了上述文件的圖片和我的代碼(所有這些文件都在同一個文件夾/rtest/中)。
1) 索引.php
<body>
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" data-target="#myNavbar" data-toggle="collapse" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="index.php">Home</a>
</li>
<li>
<a href="#about">About</a>
</li>
<li>
<a href="#contact">Contact Us</a>
</li>
<?php
session_start();
if ( $_SESSION['State'] == 'Authenticated'){
?>
<li>
<a href='Logout.php'>Logout</a>
</li>
<?php
}else{
?>
<li>
<a href='register.php'>Register/Login</a>
</li>
<?php
}
?>
<li>
<a href="#">Admin Login</a>
</li>
</ul>
</div>
</div>
</nav>
2) 登錄提交.php
if ($_POST['email'] != "" && $_POST['password'] != "") {
$email = $_POST['email'];
$password = $_POST['password'];
include('connection.php');
$stmt = $conn->prepare("SELECT Email, Password FROM `tbl_register` WHERE Email = ?");
$stmt->bind_param( "s", $email);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($a, $b);
if($stmt->fetch() == 0){
header("Location: ../Entrar.php?message=Error");
exit();
}
else {
if(password_verify($password, $b)) {
echo "Correct Password";
session_start();
$_SESSION['User'] = $a;
$_SESSION['State'] = 'Authenticated';
header("Location: ./index.php");
exit;
}
else{
echo "Incorrect Password";
/*header("Location: ../Entrar.php?message=Error");
exit;*/
}
}
}
else
{
echo "<span style='color:red; font-weight:bold;'>
Please enter required details.
</span>";
}
?>
3) 注銷.php
<?php
session_destroy(); //Destroy it! So we are logged out now
header("location:index.php");
?>
問題圖片。
在您的寄存器中使用它。php 頁面
if(!isset($_SESSION)){
session_start();
}
if(isset($_SESSION['State'])) {
header("Location: index.php");
}
在你的菜單中使用這個
if(isset($_SESSION['State'])) {
//logout
}else{
//login
}
並在您的注銷中取消設置 session
session_destroy();
unset($_SESSION['User']);
unset($_SESSION['State']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.