swfupload在上传的时候,cookie不能提交,然后找了下资料后,发现可以通过post_params 传值过去。我是整合的DiscuzX 1.5,然后发现就算把原来的cookie提交过去了,仍然还是没有登录,然后我查看了下未登录时的cookie,发现那个 sid 的cookie不一样,问题应该是在这里。我也试过直接修改这些的值,也不能正常登录。只有我用浏览器直接打开的时候就会显示登录了,用swfupload登录不了。请教下各位,整合DISCUZ的话应该怎么解决。

解决方案 »

  1.   

    通过post_params传递的内容任然是$_POST获取的内容,而不是$_COOKIE获取的内容
    你可以看提交的请求(通过ff+firebug)是否带的header信息和浏览器直接请求的header信息是否一致!sid基本上要靠浏览器代理等hedaer信息来编码的!
      

  2.   

    跟踪了下DZ的认证部分,发现认证的时候有个authkey,而这个key是根据一些特定的字符串来生成的,其中包括了HTTP_USER_AGENT,我用swfupload post_params把HTTP_USER_AGENT 和 正常登陆生成的auth字符串 传递过去,然后赋到原来的cookie和变量可以正常登陆。现在又有个问题了,如果我直接把HTTP_USER_AGENT 放到html里面传递过来,然后在程序里面直接修改,会不会有什么安全隐患呢。我自己想的是应该没有,因为浏览器的HTTP_USER_AGENT 可以随意获取到,关键就是在我程序里面直接修改的这而了。
      

  3.   

    HTTP_USER_AGENT 没有什么影响,这些参数每个人可能都不一样,仅仅是靠HTTP_USER_AGENT来标志:
    如果这次和上一次用的相同的HTTP_USER_AGENT ,可能会是同一个人,接着就要靠那个auth串了!