按照我的想法,虽然动态页面用了个静态页面的地址,但是里面的动态程序仍然是执行的
但是咋可以读取数据写入数据,COOKIE的操作却不成功呢?所以这里求下高手,到底是什么问题,我也知道在.htaccess里面有个写入COOKIE的规则(CO=NAME:VAL:DOMAIN[:lifetime[:path]]),具体不是很明白,网上好像也很少有讲这个东西的,都是一笔带过。是否伪静态写入cookie需要加入其他的东西?
不考虑JS,一是不是很熟练,然后用起来自己也不是很会,而且很多操作使用PHP更加方便。cookie写入$id = $_get['id'];
setcookie("id",$id);
//写入没有太复杂,用个简单点的,在<html>之前输出,没有问题,动态页面访问没有问题
//cookie读取,不在当前页面,只是写一下
echo $_cookie['id'];
伪静态页面是   没有限定路径/没有限定路径/【id值】没有限定字符/
实际页面       news.php?id=1.htaccess
RewriteRule ^[^/]*/[^/]*/(\d)?[^/]*/$ news.php?id=$1 [L]动态测试没有问题,cookie读取写入都成功
换成伪静态地址访问,就写入不了cookie,但是奇怪的是在当前页刷新却是看的到cookie的
请教大侠,搜索了很多,都没有找到答案,不知是否有对此有经验的人

解决方案 »

  1.   

    第一次echo $_cookie['id'];没东西? 第二次echo $_cookie['id'];有东西?
      

  2.   

    你说的这个情况是当前页写入cookie,然后当前页读取cookie出现的问题吧,现在不会出现这种简单的错误了
    我是用伪静态访问的时候写入不了,静态的时候写入是成功的
      

  3.   

    $_COOKIE $_POST $_GET$_SESSION  大小写
      

  4.   

    上一个说错的,是用实际存在的动态页面写入cookie是没有问题的,其实在提问的描叙里面都说的很清楚了。不知道有多少人有这方面的经验,也可以自己写下试试,只写2个简单的页面便知
      

  5.   

    把rewriterule的cookie规则注释掉试试,这个不太常用的——
      

  6.   

    把我的测试结构贴出来,供大家分析分析
    //URL_WRITE部分
    RewriteEngine on
    ##RewriteCond %{REQUEST_URI} /ad.php
    RewriteRule ^(\w+).html$ $1.php//实际访问地址http://domain/ad.html(指向http://domain/ad.php)//访问文件代码(.php)
    setcookie("id", 123);
    echo $_COOKIE['id'];
    //实际情况:第一次没有东西(正常),第二次有东西(也正常)
    //所以不会是伪静态的原因
      

  7.   

    你试试在另外页面获取一下,我也是本页可以获取,另外页获取不到,我还用 print_r($_COOKIE) 打印所有的cookie也是为空我在提问的时候就写了,当前页确实刷新可以获取到,但是其他页是获取不到,你再试试可以不。我在本地测试是这种情况,服务器上面也是这种情况,本地用的XAMPP,服务器是windows主机,但是问题应该不会出在伺服器上吧
      

  8.   

    结贴了,我写的也没有错误,排错排了3天,代码都精简的不能精简了,估计什么狗屁香港服务器用的windows主机导致的问题什么的。在那里都是用的asp的伪静态写法。应该在Linux主机上对PHP支持的应该更好更全面一点。
    感谢详细解答还自己写了测试页,分都给你了。