0

嘿伙计们,我为我的网站制作了一个登录系统,现在当我尝试登录时,它说

Deprecated: Function session_register() is deprecated in /home/nzcraftn/public_html/admin/login/index.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /home/nzcraftn/public_html/admin/login/index.php:16) in /home/nzcraftn/public_html/admin/login/index.php on line 17

这意味着什么??

4

5 回答 5

4

不要使用session_register(),因为它已被弃用。相反,启动一个会话

session_start();
// Store values in the  $_SESSION superglobal
$_SESSION['logged_in'] = TRUE;

“标头已发送”错误表明您在调用之前有输出session_register(),即使它只是空格。在标头修改功能之前您不能有任何输出,例如session_start(), setcookie(), or header()

如果您在调用之前没有故意进行任何输出session_register()(您应该用上面的代码替换),请确保在打开之前没有空白空间<?php,包括include()由违规文件编辑的任何文件。

于 2011-08-08T19:31:52.473 回答
3

这意味着您不应该再使用session_register()了,因为该功能很快就会消失。

使用本教程以正确的方式使用会话: http ://www.tizag.com/phpT/phpsessions.php

关于修改标头信息的第二个警告可能是因为您的部分代码试图设置标头,但由于错误已经发送到输出,它不能再这样做了。HTTP 服务器总是在内容之前发送标头。

于 2011-08-08T19:31:46.200 回答
1

你现在应该不再使用 session_register(); 参见session_register()。改用超全局 $_SESSION-array

于 2011-08-08T19:32:06.690 回答
1

在发送输出文本的标头之前,您会收到警告。警告是因为不推荐使用的函数调用。您可以 1) 关闭警告消息 2) 使用 session_register 之外的东西来避免错误。

弃用的意思是“不再使用”。通常这意味着它已被其他东西取代。

于 2011-08-08T19:32:09.293 回答
0

您必须在有一些输出(回显、打印或其他内容)之前开始一个会话。而且您应该使用 $_SESSION 数组而不是 session_register (已弃用且不应再使用)。

于 2011-08-08T19:31:29.010 回答