我在upload.php中有一个php上传处理程序,在那里,我必须关注
<? setcookie("test",100,time()+3600); ?>
但是,当我检查设置的cookie时,我根本看不到任何“测试”cookie。
你能帮我设一个上传文件的cookie吗?为什么这个上传脚本与浏览器访问的任何普通脚本有什么不同?
这是我的代码
<?php
if (!empty($_FILES)) {
if(move_uploaded_file($tempFile,$targetFile))
{
setcookie("targetPath",$targetPath,time() + 3600,'/');
print $_COOKIE['targetPath']; // prints fine here
echo 1;
}
else
echo -1;}
else
{
//print_r($_COOKIE);
print "start cookie >> ";
print $_COOKIE['targetPath']; // does not print when I call upload.php standalone
print " << end cookie";
}
?>
答案 0 :(得分:2)
这可能会或可能不会解决您的问题,但我认为我应该指出:
$_FILES["pictures"]["tmp_name"][0]
使用setcookie设置的Cookie在下一页加载之前不会显示。是的,这是PHP手册中的documented:
一旦设置了cookie,他们就会 可以在下一页加载上访问 使用$ _COOKIE或$ HTTP_COOKIE_VARS 阵列。
这意味着这段代码:
setcookie(“targetPath”,$ targetPath,time()+ 3600,'/'); print $ _COOKIE ['targetPath']; //在这里打印好
应该打印cookie的旧值。
如果setcookie失败,则返回false。您可能想要检查该返回值。
答案 1 :(得分:0)
尝试指定域名?
<?php
setcookie( 'test', 100, time()+3600, '/', '.sitename.com' );
您是否使用$_COOKIE['test']
PS - 你不应该使用短标签。将<?
替换为<?php
。
答案 2 :(得分:0)
您是否在检查是否在upload.php中设置了Cookie,即。您设置相同的脚本?如果是这样,我不希望它们被设定。客户端在收到upload.php。
中的cookie后,将在下一个HTTP请求中发送cookie答案 3 :(得分:0)
setcookie有“path”参数。如果未指定:“默认值是设置cookie的当前目录。” 因此,您很可能尝试为www.youdomain.com/actions/upload.php等设置cookie,在这种情况下,将为/ actions / path设置cookie。
同时检查调用setcookie是否已完成 >>脚本中的任何输出