<?php
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION["$name"];//输出 1.NAME:cycker2
if (session_is_registered($name))
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
}
?>
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION["$name"];//输出 1.NAME:cycker2
if (session_is_registered($name))
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
}
?>
就可以了
所以较新的版本都默认设为register_globals=off了。
有什么办法吗?具体原因是什么?我的英文不是很好,谁能帮我解析一下,谢谢
还是会有warning啊,就是在第一次运行该页面的时候。
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION[$name];
if (session_is_registered($name))
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
$_SESSION[$name]=$value;}
?>
可不可以
<?
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION[$name];
if (session_is_registered($name))
{
$_SESSION[$name] = $value ;
}
else
{
//session_register($name);
$_SESSION[$name]=$value;}
?>
把其中一个设置成off我想你的waring可以关掉的。
session_start()不一定要放在第一行的,只是在它之前不能有输出
再楼主有没有试过把那两个参数中的其中一个设置成off的结果?
<?php
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION["$name"];//输出 1.NAME:
if (session_is_registered("$name"))
{
$_SESSION["$name"] = $value ;
}
else
{
session_register("$name");
}
echo "<br>2.$name:".$_SESSION["$name"];//输出 1.NAME:cycker2?>
$name = "NAME";
$value = "cycker2";
$$name = $value;
session_start();
echo "<br>1.$name:".$_SESSION[$name];
if (session_is_registered($name))
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
}
{
$_SESSION[$name] = $value ;
}
else
{
session_register($name);
}
===>
if (isset($_SESSION[$name]))
{
$_SESSION[$name] = $value ;
}
else
{
$_SESSION[$name] = $name ;
}不要去改动php.ini的默认设置,在你租用的空间里,你并无修改的权限。
必要时,需把你的php.ini修改成和你租用的空间里的php.ini一样问题产生的原因是你使用了旧版的session函数——session_register
在PHP 4.2.3以后请不要再使用session函数库,而将对session的操作由使用session函数改为对$_SESSION数组的操作。其实这要比用session函数要简单多了。