假设我有两个页面登录.php和索引.php。在索引中.php我有两个按钮登录和注册。单击按钮后,用户被定向登录.php。
如果我想使用 PHP 实现登录功能,与 facebook 相关的东西,如果用户以前登录过,那么一旦设置用户名和密码,它就会绕过索引页面并直接进入登录页面。_SESSION美元是一种正确的方法吗?
例如:
<?php
session_start();
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Ayu</title>
</head>
<body>
<?php if (isset($_SESSION["user"])) { ?>
<h1>Hi <?php echo $_SESSION["user"]; ?></h1>
<a href="logout.php">Logout</a>
<?php } else { ?>
<h1>Login</h1>
<?php echo (isset($_GET["error"])) ? '<p>You idiot!</p>' : ""; ?>
<form action="new-user.php" method="post">
<div>
<label>
<strong>Username</strong>
<input type="text" name="username" />
</label>
</div>
<div>
<label>
<strong>Password</strong>
<input type="password" name="password" />
</label>
</div>
<input type="submit" value="Log In" />
</form>
<?php } ?>
</body>
</html>
在登录功能中,我正在设置 $_SESSION 值
<?php
session_start();
if (count($_POST))
if ($_POST["username"] == "ayu" && $_POST["password"] == "shee") {
$_SESSION["user"] = "Ayushi";
header("Location: ./");
} else {
unset($_SESSION["user"]);
header("Location: ./?error");
}
?>
使用和创建 ( $_SESSION
( 会话是检查登录用户的正确方法。
$_SESSION
是一个"超全局"或自动全局变量。这 简单地说,它在整个脚本的所有范围内都可用。 没有必要做全局$variable;在函数中访问它 或方法。
检查页面顶部的会话,如果找到重定向到索引其他登录页面。
if(!isset($_SESSION['login_user'])){
header("location:login.php");
}
在这里使用我的 sql 在 php 中参考这个简单的登录示例
编辑
根据OP的要求 - 如果您想根据会话值隐藏索引中的特定部分.php页面或说用户是否已登录,可以像这样完成:
<?php
if(isset($_SESSION['login_user'])){
?>
<form>
<input type="submit" name="whatever" />
<!-- Other Fields -->
</form>
<?php
}
?>
上述代码中的 Html 表单仅在用户登录时显示,否则将被隐藏。
是的,会话是实现相同内容的最佳方式。您可以使用下面的php代码来解决您的问题
<?php
session_start();
if (!empty($_POST))
if ($_POST["username"] == "ayu" && $_POST["password"] == "shee") {
$_SESSION["user"] = "Ayushi";
header("Location: ./");
} else {
if($_SESSION["user"]!=''){
unset($_SESSION["user"]);
}
header("Location: ./?error");
}else{
/* Write code for form */
}
?>