[英]How to display a page if the user is logged in
我有一個基本的登錄名,其中的代碼將用戶重定向到頁面(此刻為google.com)。 我如何做才能使重定向到您的頁面僅在用戶登錄后才能訪問(他們不能僅輸入URL並訪問該頁面)。 我了解您必須使用會話啟動,但是已經閱讀了並且無法提出解決方案。
login.php
<?php
error_reporting(E_ALL | E_STRICT);
$servername = "localhost";
$serverUsername = "root";
$serverPassword = "";
// Create connection
$conn = new mysqli($servername, $serverUsername, $serverPassword, "users");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
$loginError = "";
if (isset($_POST["submit"])) {
$username = $conn->real_escape_string($_POST["username"]);
$stmt = $conn->prepare("SELECT Password FROM user_logons WHERE Username = ? LIMIT 1");
$stmt->bind_param("s", $username);
$stmt->bind_result($password);
$stmt->execute();
$stmt->fetch();
$stmt->close();
if (password_verify($_POST['password'], $password)) {
header("Location: https://google.com/");
}
else {
$loginError = "Invalid username or password!";
}
}
mysqli_close($conn);
?>
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<h2>Login Test</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Username: <input type="text" name="username">
<br><br>
Password: <input type="password" name="password">
<br><br>
<input type="submit" name="submit" value="Submit">
<span class = "error"><?php echo $loginError; ?></span>
</form>
</body>
</html>
login.php
<?php
error_reporting(E_ALL | E_STRICT);
$servername = "localhost";
$serverUsername = "root";
$serverPassword = "";
// Create connection
$conn = new mysqli($servername, $serverUsername, $serverPassword, "users");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
$loginError = "";
if (isset($_POST["submit"])) {
$username = $conn->real_escape_string($_POST["username"]);
$stmt = $conn->prepare("SELECT Password FROM user_logons WHERE Username = ? LIMIT 1");
$stmt->bind_param("s", $username);
$stmt->bind_result($password);
$stmt->execute();
$stmt->fetch();
$stmt->close();
if (password_verify($_POST['password'], $password)) {
session_start();
$_SESSION["loggedIn"] = "true";
header("Location: redirect.php");
}
else {
$loginError = "Invalid username or password!";
}
}
mysqli_close($conn);
?>
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<h2>Login Test</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Username: <input type="text" name="username">
<br><br>
Password: <input type="password" name="password">
<br><br>
<input type="submit" name="submit" value="Submit">
<span class = "error"><?php echo $loginError; ?></span>
</form>
</body>
</html>
redirect.php
<?php
error_reporting(E_ALL | E_STRICT);
session_start();
if(!empty($_SESSION['loggedIn'])) {
?>
<!DOCTYPE HTML>
<html>
<head>
<style>
</style>
</head>
<body>
<h1>Welcome User<h1>
</body>
</html>
<?php
}
else {
?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<h1 align = "center">Unfortunately, you will need to be logged in to view this section!<h1>
<p align = "center">To return to the login page <a href = "login.php">Click Here</a></p>
</body>
</html>
<?php
}
session_destroy();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.