当前位置:首页 >> 卡塔尔世界杯预选赛

PHP超级全局变量详解

PHP 超级全局变量 详解 超级全局变量是PHP内置的特殊变量,在脚本的任何位置(包括函数和类内部)都可以直接访问,无需使用global关键字声明

adminadmin

PHP 超级全局变量 详解

超级全局变量是PHP内置的特殊变量,在脚本的任何位置(包括函数和类内部)都可以直接访问,无需使用global关键字声明。

特点:从PHP 4.1.0开始引入,在所有作用域中自动可用,是PHP编程中的核心组件。

PHP 超级全局变量概述

PHP提供了9个内置的超级全局变量,它们在整个脚本执行期间都可用:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

快速参考表

变量名

作用

作用域

$GLOBALS

引用全局作用域中的全部变量

全局

$_SERVER

服务器和执行环境信息

全局

$_REQUEST

收集HTML表单提交的数据

全局

$_POST

收集POST方法提交的表单数据

全局

$_GET

收集GET方法提交的表单数据和URL参数

全局

$_FILES

处理文件上传

全局

$_ENV

环境变量信息

全局

$_COOKIE

HTTP Cookies信息

全局

$_SESSION

会话变量信息

全局

1. $GLOBALS 全局变量数组

$GLOBALS是一个包含了所有全局变量的数组,变量的名字就是数组的键。

基本用法实例:

// 定义两个全局变量

$x = 75;

$y = 25;

// 在函数内部访问全局变量

function addition() {

// 使用$GLOBALS访问全局变量

$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

}

addition();

echo "计算结果: " . $z; // 输出: 100

// 遍历$GLOBALS数组

echo "

当前所有全局变量:

";

echo "

    ";

    foreach ($GLOBALS as $key => $value) {

    if (!is_array($value) && !is_object($value)) {

    echo "

  • $key = " . htmlspecialchars($value) . "
  • ";

    }

    }

    echo "

";

?>

注意:$GLOBALS与global关键字的区别:

- $GLOBALS是一个数组,通过键名访问

- global是一个关键字,用于在函数内部引入全局变量

// 使用global关键字

function test() {

global $x, $y;

return $x + $y;

}

$_SERVER - 服务器和执行环境信息

$_SERVER包含了服务器信息、请求头和当前脚本的信息,由Web服务器创建。这些元素在不同的服务器环境(Apache、Nginx、IIS等)中可能有所不同。

完整的$_SERVER元素分类列表:

元素

描述

示例值

脚本位置和路径

$_SERVER['PHP_SELF']

当前执行脚本的文件名,相对于文档根目录

/index.php

$_SERVER['SCRIPT_FILENAME']

当前执行脚本的绝对路径

/var/www/html/index.php

$_SERVER['SCRIPT_NAME']

包含当前脚本的路径

/index.php

$_SERVER['DOCUMENT_ROOT']

当前运行脚本所在的文档根目录

/var/www/html

$_SERVER['PATH_TRANSLATED']

文件系统基本路径(虚拟到真实路径映射)

/var/www/html/index.php

服务器信息

$_SERVER['SERVER_NAME']

服务器主机名

www.example.com

$_SERVER['SERVER_ADDR']

服务器IP地址

192.168.1.1

$_SERVER['SERVER_PORT']

服务器端口

80 或 443

$_SERVER['SERVER_SOFTWARE']

服务器标识字符串

Apache/2.4.41

$_SERVER['SERVER_PROTOCOL']

请求协议名称和版本

HTTP/1.1

$_SERVER['SERVER_ADMIN']

服务器管理员邮箱

admin@example.com

$_SERVER['SERVER_SIGNATURE']

服务器版本和虚拟主机名

Apache/2.4.41

请求信息

$_SERVER['REQUEST_METHOD']

请求方法(GET、POST等)

GET 或 POST

$_SERVER['REQUEST_TIME']

请求开始时的时间戳

1612345678

$_SERVER['REQUEST_TIME_FLOAT']

请求开始时的时间戳(微秒精度)

1612345678.1234

$_SERVER['REQUEST_URI']

请求的URI

/index.php?page=1

$_SERVER['QUERY_STRING']

查询字符串(如果有)

page=1&sort=asc

$_SERVER['PATH_INFO']

路径信息(如果有)

/users/123

客户端信息

$_SERVER['REMOTE_ADDR']

客户端IP地址

192.168.1.100

$_SERVER['REMOTE_HOST']

客户端主机名

client.example.com

$_SERVER['REMOTE_PORT']

客户端端口

54321

$_SERVER['REMOTE_USER']

认证用户(如果使用HTTP认证)

john

HTTP头信息

$_SERVER['HTTP_HOST']

Host头信息

www.example.com

$_SERVER['HTTP_USER_AGENT']

用户代理字符串

Mozilla/5.0...

$_SERVER['HTTP_ACCEPT']

Accept头信息

text/html,application/xhtml+xml

$_SERVER['HTTP_ACCEPT_LANGUAGE']

Accept-Language头信息

en-US,en;q=0.9

$_SERVER['HTTP_ACCEPT_ENCODING']

Accept-Encoding头信息

gzip, deflate

$_SERVER['HTTP_REFERER']

Referer头信息(不一定可靠)

https://google.com

$_SERVER['HTTP_CONNECTION']

Connection头信息

keep-alive

$_SERVER['HTTP_CACHE_CONTROL']

Cache-Control头信息

max-age=0

$_SERVER['HTTP_UPGRADE_INSECURE_REQUESTS']

Upgrade-Insecure-Requests头信息

1

$_SERVER['HTTP_COOKIE']

Cookie头信息

session_id=abc123

$_SERVER['HTTP_AUTHORIZATION']

Authorization头信息

Basic dXNlcjpwYXNz

HTTPS和SSL信息

$_SERVER['HTTPS']

如果通过HTTPS访问则非空

on

$_SERVER['SSL_PROTOCOL']

SSL协议版本

TLSv1.2

$_SERVER['SSL_CIPHER']

SSL加密套件

ECDHE-RSA-AES256-GCM-SHA384

$_SERVER['SERVER_PORT_SECURE']

安全端口标识

1

认证信息

$_SERVER['PHP_AUTH_USER']

HTTP认证用户名

admin

$_SERVER['PHP_AUTH_PW']

HTTP认证密码

secret123

$_SERVER['AUTH_TYPE']

认证类型

Basic

其他重要元素

$_SERVER['GATEWAY_INTERFACE']

CGI规范版本

CGI/1.1

$_SERVER['CONTENT_LENGTH']

请求内容长度

348

$_SERVER['CONTENT_TYPE']

请求内容类型

application/x-www-form-urlencoded

$_SERVER['REDIRECT_STATUS']

重定向状态

200

$_SERVER['REDIRECT_URL']

重定向URL

/new/location

$_SERVER['SCRIPT_URI']

脚本的完整URI

http://www.example.com/index.php

$_SERVER['REQUEST_SCHEME']

请求方案(http或https)

https

$_SERVER['ORIG_PATH_INFO']

原始路径信息

/original/path

实用示例:查看所有$_SERVER元素

// 安全地显示所有$_SERVER元素

function displayServerInfo() {

echo "

完整的\$_SERVER数组内容:

";

echo "

";

echo "

";

echo "

";

echo "

";

// 按字母顺序排序

ksort($_SERVER);

foreach ($_SERVER as $key => $value) {

// 安全过滤显示

$safe_key = htmlspecialchars($key);

$safe_value = htmlspecialchars(print_r($value, true));

echo "

";

echo "

";

echo "

";

echo "

";

}

echo "

键名
\$_SERVER['$safe_key']
$safe_value
";

echo "

";

// 统计信息

echo "

总计: " . count($_SERVER) . " 个\$_SERVER元素

";

}

// 显示当前请求的基本信息

function displayCurrentRequest() {

echo "

当前请求信息:

";

echo "

    ";

    // 获取基本信息

    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';

    $host = $_SERVER['HTTP_HOST'] ?? $_SERVER['SERVER_NAME'] ?? 'unknown';

    $uri = $_SERVER['REQUEST_URI'] ?? '/';

    $full_url = $protocol . '://' . $host . $uri;

    echo "

  • 完整URL: " . htmlspecialchars($full_url) . "
  • ";

    echo "

  • 请求方法: " . ($_SERVER['REQUEST_METHOD'] ?? 'UNKNOWN') . "
  • ";

    echo "

  • 客户端IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'UNKNOWN') . "
  • ";

    echo "

  • 用户代理: " . ($_SERVER['HTTP_USER_AGENT'] ?? 'UNKNOWN') . "
  • ";

    echo "

  • 脚本位置: " . ($_SERVER['SCRIPT_FILENAME'] ?? 'UNKNOWN') . "
  • ";

    echo "

";

}

// 执行显示函数

displayCurrentRequest();

displayServerInfo();

// 服务器环境检测

echo "

服务器环境检测:

";

echo "

    ";

    // 检测服务器软件

    if (strpos($_SERVER['SERVER_SOFTWARE'] ?? '', 'Apache') !== false) {

    echo "

  • 服务器: Apache
  • ";

    } elseif (strpos($_SERVER['SERVER_SOFTWARE'] ?? '', 'nginx') !== false) {

    echo "

  • 服务器: Nginx
  • ";

    } elseif (strpos($_SERVER['SERVER_SOFTWARE'] ?? '', 'IIS') !== false) {

    echo "

  • 服务器: IIS
  • ";

    } else {

    echo "

  • 服务器: " . htmlspecialchars($_SERVER['SERVER_SOFTWARE'] ?? '未知') . "
  • ";

    }

    // 检测PHP运行方式

    if (PHP_SAPI === 'cli') {

    echo "

  • 运行方式: CLI
  • ";

    } elseif (isset($_SERVER['GATEWAY_INTERFACE'])) {

    echo "

  • 运行方式: CGI/FastCGI
  • ";

    } else {

    echo "

  • 运行方式: Apache Module
  • ";

    }

    // 检查是否通过代理

    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

    echo "

  • 通过代理访问
  • ";

    echo "

  • 真实IP: " . htmlspecialchars($_SERVER['HTTP_X_FORWARDED_FOR']) . "
  • ";

    }

    echo "

";

?>

注意事项:

服务器差异:不同的Web服务器(Apache、Nginx、IIS)提供的$_SERVER元素可能不同

配置影响:PHP和服务器配置会影响可用的$_SERVER元素

安全性:某些$_SERVER元素可能包含敏感信息,在生产环境中应谨慎显示

可靠性:部分元素(如HTTP_REFERER)可能被客户端伪造,不应完全信任

性能:频繁访问$_SERVER数组可能影响性能,建议缓存常用值

常用$_SERVER元素实用函数

/**

* 获取当前页面的完整URL

*/

function getCurrentUrl() {

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';

$host = $_SERVER['HTTP_HOST'] ?? $_SERVER['SERVER_NAME'] ?? 'localhost';

$uri = $_SERVER['REQUEST_URI'] ?? '/';

return $protocol . '://' . $host . $uri;

}

/**

* 获取客户端真实IP地址(考虑代理)

*/

function getClientIp() {

$ip_keys = [

'HTTP_CLIENT_IP',

'HTTP_X_FORWARDED_FOR',

'HTTP_X_FORWARDED',

'HTTP_X_CLUSTER_CLIENT_IP',

'HTTP_FORWARDED_FOR',

'HTTP_FORWARDED',

'REMOTE_ADDR'

];

foreach ($ip_keys as $key) {

if (isset($_SERVER[$key])) {

$ip_list = explode(',', $_SERVER[$key]);

foreach ($ip_list as $ip) {

$ip = trim($ip);

if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {

return $ip;

}

}

}

}

return $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';

}

/**

* 检测是否为AJAX请求

*/

function isAjaxRequest() {

return isset($_SERVER['HTTP_X_REQUESTED_WITH'])

&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';

}

/**

* 检测是否为HTTPS请求

*/

function isHttps() {

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {

return true;

}

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {

return true;

}

if (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] === 'on') {

return true;

}

if ((isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)) {

return true;

}

return false;

}

/**

* 获取当前脚本的目录路径

*/

function getScriptDirectory() {

return dirname($_SERVER['SCRIPT_FILENAME']);

}

/**

* 获取用户浏览器信息

*/

function getUserBrowser() {

$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';

if (strpos($user_agent, 'MSIE') !== false) return 'Internet Explorer';

if (strpos($user_agent, 'Edge') !== false) return 'Microsoft Edge';

if (strpos($user_agent, 'Chrome') !== false) return 'Google Chrome';

if (strpos($user_agent, 'Firefox') !== false) return 'Mozilla Firefox';

if (strpos($user_agent, 'Safari') !== false) return 'Apple Safari';

if (strpos($user_agent, 'Opera') !== false) return 'Opera';

return 'Unknown Browser';

}

// 使用示例

echo "

实用信息:

";

echo "

    ";

    echo "

  • 当前URL: " . getCurrentUrl() . "
  • ";

    echo "

  • 客户端IP: " . getClientIp() . "
  • ";

    echo "

  • 是否AJAX请求: " . (isAjaxRequest() ? '是' : '否') . "
  • ";

    echo "

  • 是否HTTPS: " . (isHttps() ? '是' : '否') . "
  • ";

    echo "

  • 脚本目录: " . getScriptDirectory() . "
  • ";

    echo "

  • 用户浏览器: " . getUserBrowser() . "
  • ";

    echo "

";

?>

3. $_REQUEST - 获取请求数据

$_REQUEST默认包含了$_GET、$_POST和$_COOKIE的数据。

// 示例:处理表单提交

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

// 使用$_REQUEST获取数据(不推荐在生产环境中使用)

$name = htmlspecialchars($_REQUEST['name'] ?? '');

$email = htmlspecialchars($_REQUEST['email'] ?? '');

echo "

表单提交成功

";

echo "

姓名: $name

";

echo "

邮箱: $email

";

}

// 同时处理GET和POST请求的示例

if (isset($_REQUEST['action'])) {

$action = $_REQUEST['action'];

echo "执行操作: " . htmlspecialchars($action);

}

?>

安全警告:由于$_REQUEST混合了多种来源的数据,可能存在安全风险。建议明确使用$_GET或$_POST。

4. $_POST - 获取POST请求数据

用于收集通过POST方法提交的表单数据,适合传输敏感信息。

完整表单示例:

用户注册

用户注册表单

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit'])) {

// 获取POST数据并处理

$username = htmlspecialchars($_POST['username'] ?? '');

$email = htmlspecialchars($_POST['email'] ?? '');

$password = $_POST['password'] ?? '';

echo "

注册信息:

";

echo "

用户名: $username

";

echo "

邮箱: $email

";

// 在实际应用中,应该对密码进行哈希处理

if (!empty($password)) {

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

echo "

密码已加密存储

";

}

}

?>

5. $_GET - 获取GET请求数据

用于收集通过GET方法提交的数据,数据会显示在URL中。

// 处理URL参数:http://example.com?page=2&sort=date

if (isset($_GET['page'])) {

$current_page = intval($_GET['page']);

echo "当前页码: $current_page
";

}

if (isset($_GET['sort'])) {

$sort_by = htmlspecialchars($_GET['sort']);

echo "排序方式: $sort_by
";

}

// 构建带参数的链接示例

$base_url = "products.php";

$params = [

'category' => 'electronics',

'sort' => 'price',

'page' => 2

];

$query_string = http_build_query($params);

$full_url = $base_url . '?' . $query_string;

echo "查看电子产品(第2页,按价格排序)";

?>

6. $_FILES - 处理文件上传

用于处理通过表单上传的文件。

// 文件上传处理

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {

$upload_dir = 'uploads/';

$file_name = basename($_FILES['file']['name']);

$file_tmp = $_FILES['file']['tmp_name'];

$file_size = $_FILES['file']['size'];

$file_type = $_FILES['file']['type'];

$file_error = $_FILES['file']['error'];

// 检查上传是否成功

if ($file_error === UPLOAD_ERR_OK) {

// 检查文件类型

$allowed_types = ['image/jpeg', 'image/png', 'image/gif', 'application/pdf'];

if (in_array($file_type, $allowed_types)) {

// 检查文件大小(限制为2MB)

if ($file_size <= 2 * 1024 * 1024) {

// 生成唯一文件名

$new_filename = uniqid() . '_' . $file_name;

$destination = $upload_dir . $new_filename;

if (move_uploaded_file($file_tmp, $destination)) {

echo "文件上传成功!
";

echo "文件名: $new_filename
";

echo "文件大小: " . round($file_size / 1024, 2) . " KB
";

echo "文件类型: $file_type
";

} else {

echo "文件移动失败!";

}

} else {

echo "文件太大,最大允许2MB";

}

} else {

echo "不支持的文件类型!";

}

} else {

echo "上传错误: " . $file_error;

}

}

?>

7. $_SESSION - 会话管理

用于在不同页面间存储用户会话数据。

// 启动会话

session_start();

// 登录处理

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login'])) {

$username = $_POST['username'] ?? '';

$password = $_POST['password'] ?? '';

// 简单的验证(实际应从数据库验证)

if ($username === 'admin' && $password === '123456') {

$_SESSION['user_id'] = 1;

$_SESSION['username'] = $username;

$_SESSION['login_time'] = time();

$_SESSION['is_admin'] = true;

echo "登录成功!欢迎 $username";

} else {

echo "登录失败!";

}

}

// 检查用户是否已登录

if (isset($_SESSION['user_id'])) {

echo "

当前会话信息:

";

echo "

    ";

    echo "

  • 用户ID: " . $_SESSION['user_id'] . "
  • ";

    echo "

  • 用户名: " . htmlspecialchars($_SESSION['username']) . "
  • ";

    echo "

  • 登录时间: " . date('Y-m-d H:i:s', $_SESSION['login_time']) . "
  • ";

    echo "

  • 管理员: " . ($_SESSION['is_admin'] ? '是' : '否') . "
  • ";

    echo "

";

// 注销链接

echo "退出登录";

}

// 销毁会话(logout.php示例)

if (isset($_GET['action']) && $_GET['action'] == 'logout') {

session_unset(); // 清除所有会话变量

session_destroy(); // 销毁会话

header('Location: index.php');

exit();

}

?>

8. $_COOKIE - 处理Cookies

用于处理浏览器发送的Cookie数据。

// 设置Cookie

if (!isset($_COOKIE['visitor_count'])) {

$count = 1;

setcookie('visitor_count', $count, time() + 86400 * 30, '/'); // 30天过期

} else {

$count = intval($_COOKIE['visitor_count']) + 1;

setcookie('visitor_count', $count, time() + 86400 * 30, '/');

}

echo "访问次数: $count
";

// 设置用户偏好

if (isset($_POST['theme'])) {

$theme = $_POST['theme'];

setcookie('theme', $theme, time() + 86400 * 365, '/'); // 1年过期

echo "主题已设置为: $theme";

}

// 读取Cookie

if (isset($_COOKIE['theme'])) {

$current_theme = htmlspecialchars($_COOKIE['theme']);

echo "当前主题: $current_theme
";

}

// 删除Cookie

if (isset($_GET['clear_cookie'])) {

setcookie('visitor_count', '', time() - 3600, '/'); // 设置为过去时间

echo "Cookie已清除";

}

?>

9. $_ENV - 环境变量

用于获取环境变量信息。

// 获取环境变量

echo "

环境变量:

";

echo "

    ";

    // 显示所有环境变量

    foreach ($_ENV as $key => $value) {

    echo "

  • $key = " . htmlspecialchars($value) . "
  • ";

    }

    echo "

";

// 常用环境变量示例

if (isset($_ENV['DB_HOST'])) {

echo "数据库主机: " . htmlspecialchars($_ENV['DB_HOST']) . "
";

}

// 使用getenv()函数也可以获取环境变量

$app_env = getenv('APP_ENV') ?: 'production';

echo "应用环境: $app_env
";

?>

超级全局变量使用最佳实践

安全建议:

始终验证和过滤用户输入

使用htmlspecialchars()防止XSS攻击

对敏感数据使用filter_var()函数过滤

避免直接使用$_REQUEST,明确指定$_GET或$_POST

使用预处理语句防止SQL注入

对密码使用password_hash()进行哈希

性能优化:

只在需要时使用session_start()

及时销毁不再需要的会话数据

限制Cookie的大小和数量

合理设置Cookie的过期时间

避免在$_SESSION中存储大量数据

综合示例:用户注册系统

// config.php - 配置文件

session_start();

// 数据库配置(从环境变量获取)

$db_host = $_ENV['DB_HOST'] ?? 'localhost';

$db_name = $_ENV['DB_NAME'] ?? 'testdb';

$db_user = $_ENV['DB_USER'] ?? 'root';

$db_pass = $_ENV['DB_PASS'] ?? '';

// 连接数据库

try {

$pdo = new PDO(

"mysql:host=$db_host;dbname=$db_name;charset=utf8mb4",

$db_user,

$db_pass,

[

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC

]

);

} catch (PDOException $e) {

die("数据库连接失败: " . $e->getMessage());

}

// register.php - 用户注册

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

// 验证CSRF令牌

if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {

die("CSRF令牌验证失败!");

}

// 获取并清理输入

$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);

$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

$password = $_POST['password'];

// 验证输入

if (empty($username) || empty($email) || empty($password)) {

$_SESSION['error'] = "所有字段都是必填的!";

header('Location: register.php');

exit();

}

// 验证邮箱格式

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

$_SESSION['error'] = "邮箱格式不正确!";

header('Location: register.php');

exit();

}

// 检查用户名是否已存在

$stmt = $pdo->prepare("SELECT id FROM users WHERE username = ? OR email = ?");

$stmt->execute([$username, $email]);

if ($stmt->rowCount() > 0) {

$_SESSION['error'] = "用户名或邮箱已存在!";

header('Location: register.php');

exit();

}

// 哈希密码

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// 插入用户数据

$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");

if ($stmt->execute([$username, $email, $hashed_password])) {

$_SESSION['success'] = "注册成功!请登录。";

$_SESSION['user_id'] = $pdo->lastInsertId();

$_SESSION['username'] = $username;

// 设置记住我Cookie

if (isset($_POST['remember_me'])) {

$token = bin2hex(random_bytes(32));

setcookie('remember_token', $token, time() + 86400 * 30, '/', '', true, true);

// 将token存入数据库

$stmt = $pdo->prepare("UPDATE users SET remember_token = ? WHERE id = ?");

$stmt->execute([hash('sha256', $token), $_SESSION['user_id']]);

}

header('Location: dashboard.php');

exit();

} else {

$_SESSION['error'] = "注册失败,请重试!";

header('Location: register.php');

exit();

}

}

?>

← 上一章:PHP完整表单实例

下一章:PHP表单验证 →


Top