我在尝试设置登录系统时遇到错误。我已经尝试了多种"解决方案",但没有一个有效,例如将start_session放在所有脚本的顶部。
警告:session_start():无法发送会话缓存限制器 - 标头 已发送(输出开始于 test4''index.php:311) in test4''classes''Login.php在第 28 行
311路:
<?php // line 311
if (version_compare(PHP_VERSION, '5.3.7', '<')) {
exit("Please upgrade the PHP version to 5.3.7 or higher.");
} else if (version_compare(PHP_VERSION, '5.5.0', '<')) {
require_once("libraries/password_compatibility_library.php");
}
require_once("config/db.php");
require_once("classes/Login.php");
$login = new Login();
类/登录中的第 28 行.php:
<?php
class Login {
private $db_connection = null;
public $errors = array();
public $messages = array();
public function __construct() {
session_start(); // line 28
提前谢谢你!
session_start()
函数应该像这样放在文件顶部:
<?php
session_start(); // Should be on top when using $_SESSION
class Login {
private $db_connection = null;
public $errors = array();
public $messages = array();
public function __construct() {
// Rest of your scripts
导致此错误是因为标头已经发送,因此加载session_handler()
也太晚了,这就是为什么您必须将其放在文件顶部才能与标头一起加载的原因。
如果您使用包含页面的框架,则只需在主文件中使用一次session_start()
(例如 index.php),其中包含其他文件
我希望这对你有帮助。
session_start() 函数只调用 top。
<?php
session_start();