谁知道cookie是由浏览器写入的,还是由php的函数setcookie写入的?

handong2004 2006-02-06 11:24:26
遇到个难题:

文件cookie.php内容如下:

<?
setcookie("aaa","1231ad",time()+60*60);
echo "ok";
?>



文件read.php内容如下:

<?
print_r(file('http://192.168.10.114/cookie.php'));
print_r($_COOKIE);
?>

在浏览器中执行http://192.168.10.114/read.php这个的时候能显示出ok.可是cookie并没有写入.
有什么办法能用非浏览器运行cookie.php文件将cookie写入呢?
...全文
331 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gu1dai 2006-02-07
  • 打赏
  • 举报
回复
cookie是在http头部被发送到浏览器。浏览器将之写入本地。
用fsockopen模拟通信过程是完全可行的。

通信过程中发送头部。正确的头部字符串必须由你自己构造。
构造出这个就可以了。
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Mon, 06 Feb 2006 06:59:10 GMT
X-Powered-By: PHP/5.1.1
Set-Cookie: aaa=1231ad; expires=Mon, 06-Feb-2006 07:59:10 GMT; path=/; domain=192.168.10.114
Content-type: text/html ok
gu1dai 2006-02-07
  • 打赏
  • 举报
回复
你需要先启动session.
<?
session_start();//
setcookie("aaa","1231ad",time()+60*60);
echo "ok";
?>

ok.
kirk_tongyao 2006-02-07
  • 打赏
  • 举报
回复
其实写Cookie的是客户端浏览器..
helloyou0 2006-02-06
  • 打赏
  • 举报
回复
用非浏览器运行cookie.php文件将cookie写入

-------------------------------

你想把cookie写到哪里?
cookie是保存在客户端的。
mrshelly 2006-02-06
  • 打赏
  • 举报
回复
准确地讲,应该是 PHP 命令 客户端的 浏览器 写Cookie

ice_berg16 2006-02-06
  • 打赏
  • 举报
回复
其中:Set-Cookie: aaa=1231ad这个就是我要写的cookie可是我怎么才能模仿ie把他写到客户端的机器中供同域中的其他程序使用呢!

将cookie的值读出,(字符串切分+正则操作),
然后再setcookie( $name, $value );
即为从别的域读取的cookie以你的域的形式发送给客户端
Meteorlet 2006-02-06
  • 打赏
  • 举报
回复
PHP运行在服务器端,你模仿什么IE?写入cookie就是setcookie(),cookie是有域名的,不可能能在不同域之间写来写去
handong2004 2006-02-06
  • 打赏
  • 举报
回复
ice_berg16说的没错,用fsockopen我确实的到了cookie内容.程序是这样的:

<?
$fp=fsockopen("192.168.10.114",80);
fputs ($fp,"GET /cookie.php HTTP/1.0\r\n\r\n");
while(!feof($fp)) {
echo fgets ($fp,128);
}
fclose ($fp);
?>

结果是:
HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Mon, 06 Feb 2006 06:59:10 GMT X-Powered-By: PHP/5.1.1 Set-Cookie: aaa=1231ad; expires=Mon, 06-Feb-2006 07:59:10 GMT; path=/; domain=192.168.10.114 Content-type: text/html ok

其中:Set-Cookie: aaa=1231ad这个就是我要写的cookie可是我怎么才能模仿ie把他写到客户端的机器中供同域中的其他程序使用呢!
ice_berg16 2006-02-06
  • 打赏
  • 举报
回复
file('http://192.168.10.114/cookie.php');
这样其实就已经得到了cookie.php被解释后的内容,
这个时候cookie已经被正确发送给客户端了,只是你取不到罢了。
要想取到这个值用fsockopen处理原始数据,模拟HTTP客户端即可。
handong2004 2006-02-06
  • 打赏
  • 举报
回复
谢谢,那这么说想实现这个功能有没有其它办法?
当然是写在客户端了,cookie还能写在别的地方?

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧