php 设置cookie并传递其它变量

来源:百度知道 编辑:UC知道 时间:2024/07/02 16:33:57
网站升级,低版本php升级到php5,不再支持 xxx.php?var=value 这种传递变量的方式。
原来有一段代码是

...
setcookie(...);
...
header("Location:xxx.php?var=$var0");
...

现在的问题是,如果不改动,xxx.php得不到var的值(=$var0);如果在前面添加一个隐藏表单提交var又不能设置cookie,请问这个问题该怎样解决?
谢谢!
to huizi103:
php5 里面把 xxx.php?var=value这种形式的传递方式给禁了,只能在xxx.php中写(如果表单中用的是method="post")

$var=$HTTP_POST_VARS["varname"];

所以无法通过重定向提交表单,好像是为了更安全。
cookie的值在其它页面中还要用到,所以也不想写进表单。
不知道有没有两全其美的办法?
to womanv:
可能我的问题没有说清楚。下面再具体一些:
有三个页面,一个(form.php)用来生成表单,用户需在表单中填写用户名和电话号码等个人信息;另一个(action.php)用来将个人信息存储到站点的文件里;最后一个(cookie.php)用来设置cookie。
原来的工作方式是:
form.php把表单数据(<form method=post action=cookie.php>...</form>)传递给 cookie.php, cookie.php中先使用setcookie函数将用户名写入一个cookie的变量,紧接着通过header(Location:action.php?UserName=$name&TelNumber=$telephone")
重定向到action.php来处理表单数据.
现在action.php?UserName=$name&TelNumber=$telephone不能用了,在h

得不到var的值吗???
把cookie的值通过表单提交过来啊,可能没有理解你的意思。。。

那在得到要设置cookie变量的时候就设置cookie,或者session,并设置过期时间,这样你每个页面都可以用了。。。

我是php5,可是一直用$_POST['var']啊
你只要做一下处理,这样是可以的啊。。。

if(PHP_VERSION < '4.1.0') {
$_GET = &$HTTP_GET_VARS;
$_POST = &$HTTP_POST_VARS;
$_COOKIE = &$HTTP_COOKIE_VARS;
$_SERVER = &$HTTP_SERVER_VARS;
$_ENV = &$HTTP_ENV_VARS;
$_FILES = &$HTTP_POST_FILES;
}else{
$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_COOKIE_VARS = &$_COOKIE;
$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_ENV_VARS = &$_ENV;
$HTTP_POST_FILES = &$_FILES;
}

不太明白
为什么xxx.php?var=value这样就不安全,那百度也是这样的,安全不?

关键不在这里
$var=$HTTP_POST_VARS["varname"];
这种写法也是不推荐的
$var = $_POST['varname'];

要记住setcookie()之前不能用任何输出,不然,你的设置是无效的(这点经常有人犯错)