gpt4 book ai didi

PHP session 副作用警告 - 如何解决?

转载 作者:行者123 更新时间:2023-12-04 06:39:05 26 4
gpt4 key购买 nike

我对 php 还很陌生,我确信这很容易,但我想以正确的方式来做。我有这个脚本:

<?php
if ($_POST["username"]=="") {
include($_SERVER['DOCUMENT_ROOT'] ."/login.inc.php");
} else {
$username=$_POST["username"];
$password=$_POST["password"];
session_start();
if ($username=="bob" AND $password=="123"){ $permission="yes";}
$username=$_POST["username"];
session_register("permission");
session_register("username");

if ($permission=="yes"){
// Show stuff
}
}
?>

请原谅我的代码格式古怪 - 似乎无法正确显示。

所以,我不断收到此错误:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0



我假设这意味着我需要更改我的变量名之一,这样它就不会与 session 变量发生冲突,对吗?这就是我阅读的内容,但我不确定要更改哪一个。

任何人都可以帮助/告诉我吗?

谢谢

大须

最佳答案

它的发生是因为

session_register("username");  

不推荐使用,自 PHP 5.3 起弃用。

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.



Source .

众所周知, register_globals很糟糕,应该始终关闭。

注册 session 变量的最常见方法是使用 $_SESSION超全局,即
$_SESSION['username'] = $username;

关于PHP session 副作用警告 - 如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com