结合上述内容,开启 session,然后利用 if 语句判定$_SESSION 是否有值,若没有值在定向主 页面【$_SESSION】。
时间: 2023-12-30 12:03:32 浏览: 119
好的,以下是示例代码:
```
<?php
session_start(); // 开启 session
if (!isset($_SESSION['username'])) { // 判断 $_SESSION 是否有值
header('Location: main.php'); // 定向到主页面
exit; // 终止脚本继续执行
}
?>
```
在这段代码中,我们首先使用 `session_start()` 函数开启了一个 session,并且使用 `isset()` 函数判断了 `$_SESSION` 中是否有 `username` 变量。如果没有,我们就使用 `header()` 函数将页面定向到 `main.php` 页面,并且使用 `exit` 终止脚本继续执行。这样就可以确保只有在用户登录后才能访问相关页面,否则就会被定向到登录页面。
相关问题
用PHP来实现记得,session_start()启动 session 语句应放到<html>标志前,所以先利用 php 语句启动 session,同时利用 include_once。然后利用 if 语句判断$_SESSION['uid'](记录账号)是否存在,如果存在则 定向欢迎页面即【Welcome.php】。 添加第二个 if 语句验证用户名和密码,即:使用 if 语句进行判断,如果 $_POST['user'] 和$_POST['pwd']存在值则将值赋给临时变量$user 和$pass,然后 进行 sql 操作:1.在已经连接的 MySQL 数据库中执行 SQL 语句:查询 users 表 中用户名为 $user 的记录,将获得的结果保存在 $result 变量中(1.2.语句可以 合并)。2. 将从查询结果中获取一行数据,保存在一个变量中如$row。从数据库提取处密码后,添加第二层 if 语句接着进行密码比对。如果成功则 将$row['id']赋值给$_SESSION['uid']。定向欢迎页面即【Welcome.php】。 下面开始 html 的页面编写。主要包括两点:1. 添加 jsp 验证用户和密码不 能输入为空,2. 添加用户和密码的输入域。 至此,【index.php】结束。
好的,下面是一个简单的实现。请注意,这只是一个示例代码,需要根据具体情况进行修改和完善。
```php
<?php
// 启动 session
session_start();
// 检查用户是否已经登录
if (isset($_SESSION['uid'])) {
// 如果已经登录,跳转到欢迎页面
header('Location: Welcome.php');
exit();
}
// 检查用户提交的用户名和密码
if (isset($_POST['user']) && isset($_POST['pwd'])) {
// 获取用户名和密码
$user = $_POST['user'];
$pass = $_POST['pwd'];
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'database');
// 查询用户信息
$sql = "SELECT * FROM users WHERE username='$user'";
$result = mysqli_query($conn, $sql);
// 检查查询结果
if ($result && mysqli_num_rows($result) > 0) {
// 获取用户信息
$row = mysqli_fetch_assoc($result);
// 检查密码是否正确
if (password_verify($pass, $row['password'])) {
// 登录成功,保存用户 ID 到 session 中
$_SESSION['uid'] = $row['id'];
// 跳转到欢迎页面
header('Location: Welcome.php');
exit();
} else {
// 密码错误,显示错误消息
$error = '用户名或密码错误!';
}
} else {
// 用户不存在,显示错误消息
$error = '用户名或密码错误!';
}
// 关闭数据库连接
mysqli_close($conn);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<?php if (isset($error)): ?>
<p><?php echo $error; ?></p>
<?php endif; ?>
<form method="post">
<div>
<label for="user">Username:</label>
<input type="text" name="user" required>
</div>
<div>
<label for="pwd">Password:</label>
<input type="password" name="pwd" required>
</div>
<div>
<input type="submit" value="Login">
</div>
</form>
</body>
</html>
```
结合上述内容,在欢迎页面即【Welcome.php】中,需要确定 session 即(使用判断语句 $_SESSION['uid']有无值),用于判断 session 的代码存放在【session.php】文件中, 所以需要调用 session.php。同时此页面需要展示用户信息,信息存放在数据库, 所以调用 db.php。同时此页面也需要调用【safe.php】用于注销用户,即清除 session。
好的,根据您的要求,可以编写如下的代码:
在 Welcome.php 页面中:
```php
<?php
require_once 'session.php';
require_once 'db.php';
require_once 'safe.php';
if (!isset($_SESSION['uid'])) {
// 如果 uid session 不存在,则跳转到登录页面
header('Location: login.php');
exit;
}
// 查询用户信息
$user = getUserInfo($_SESSION['uid']);
?>
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome, <?php echo $user['name']; ?></h1>
<p>Your email is <?php echo $user['email']; ?></p>
<p><a href="safe.php?action=logout">Logout</a></p>
</body>
</html>
```
在 session.php 文件中:
```php
<?php
session_start();
```
在 db.php 文件中,需要根据具体的数据库类型和连接方式进行编写。
在 safe.php 文件中:
```php
<?php
require_once 'session.php';
if (isset($_GET['action']) && $_GET['action'] == 'logout') {
// 清除 session
session_unset();
session_destroy();
// 跳转到登录页面
header('Location: login.php');
exit;
}
```
阅读全文