在winsock下用http协议递交cookie,
首先是我post了自己的用户名和密码,得到这么一个文件头:HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:44:45 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Connection: close
Content-Type: text/html; charset=GB2312下面是成功了的正确回答的网页源文件。
这个不带cookie的post是成功的,但是似乎是两个php的会话cookie。
然后我用get方法get其中某个地址:
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
Accept: */*
Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; PHPSESSID=3bf6e92925d476034c9426a73ab14fd0就被提示出错了:
HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:47:57 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=GB2312<script>alert('请登陆');window.location='http://www.XXXXXXXXX.com/index.php';</script>
不知道是不是因为两个cookie名字相同?所以就出错了???

解决方案 »

  1.   

    另外我看了一下,我起初登录的那个php。
    它抬头就是三句:<?
    session_start();
    session_destroy();
    session_start();
    是不是因为这个原因所有产生了两个cookie?
    但是我单单把第二个传过去也提示错误啊?
      

  2.   

    youngfly0137 (杨):
    你说的 “
    然后我用get方法get其中某个地址:
    GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
    Accept: */*
    Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; PHPSESSID=3bf6e92925d476034c9426a73ab14fd0

    这种HTTP包是通过IE发送出来的吗?我现在有一个问题,希望你能帮我看看:
    我做HTTP的协议解析的时候,很少看到HTTP的包头里URL的内容是这种形式的
    GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
    一般都是
    GET /XXXXXX.php HTTP/1.0
    Host: www.XXXXXX.com这两种URL的形式在RFC2616中也有说明,但我一直都只看到过
    GET /XXXXXX.php HTTP/1.0
    Host: www.XXXXXX.com
    这种形式的,就想知道怎样才能发出
    GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
    这种形式的HTTP包头。
    谢谢!MSN:[email protected]