PHP curl 保持会话 100
网站是基于http1.1版本采用Connection:keep-alive,会话模式。当单次会话超时或者断开,就不能继续访问了,我使用的是PHP,求助各位是否有异步保持这...
网站是基于 http 1.1 版本 采用 Connection: keep-alive ,会话模式。当单次会话超时或者断开,就不能继续访问了,我使用的是PHP ,求助各位是否有 异步保持 这个会话的方式,因为有验证码,。
PHP --> 模拟登陆 --> 收到验证码图片 --> 提交给用户 --> 用户回复验证码 -->服务器继续执行登陆
PHP CURL 在模拟登陆的时候保持这个会话不断。
模拟登陆网站
http://sms.huhutv.com.cn/rtcrm-clientweb/npage/obim/staff/loginmng/initLogin.do
提供测试账号
账号A-08
密码Bb654321
使用变成语言 PHP 展开
PHP --> 模拟登陆 --> 收到验证码图片 --> 提交给用户 --> 用户回复验证码 -->服务器继续执行登陆
PHP CURL 在模拟登陆的时候保持这个会话不断。
模拟登陆网站
http://sms.huhutv.com.cn/rtcrm-clientweb/npage/obim/staff/loginmng/initLogin.do
提供测试账号
账号A-08
密码Bb654321
使用变成语言 PHP 展开
展开全部
楼主的思路问题不大,但是服务端不支持你想什么办法都没用,最好是服务端能支持令牌(token)模式,否则在安全机制的作用下用curl是维持不了你所说的长连接的。
关于会话模式,通常所说的回话模式并不等同于持久连接,php发起的curl会话的生命周期是当前的php进程而已。这么打个比方吧,你通过a.php完成了登录,然后b.php想使用刚才拿到的认证继续工作,相当于在ie窗口登录,然后在firefox浏览器继续工作,服务器端当然不认可了。
何况我用你提供的账号实验了一下,登录之后会进入到 http://sms.huhutv.com.cn/rtcrm-clientweb/npage/base/pub/pub0010/Pub0010Controller-initMainPage.gv 这个页面,然后关掉页面并打开一个新的标签页,粘贴这个地址后直接就报错了,说 “非法进入系统”,可是偏偏重新登录的时候又提示您的账号已经登录。
呵呵,服务端自己的登录/认证处理都工作不正常,你搞curl持久连接又怎么可能成功。
关于会话模式,通常所说的回话模式并不等同于持久连接,php发起的curl会话的生命周期是当前的php进程而已。这么打个比方吧,你通过a.php完成了登录,然后b.php想使用刚才拿到的认证继续工作,相当于在ie窗口登录,然后在firefox浏览器继续工作,服务器端当然不认可了。
何况我用你提供的账号实验了一下,登录之后会进入到 http://sms.huhutv.com.cn/rtcrm-clientweb/npage/base/pub/pub0010/Pub0010Controller-initMainPage.gv 这个页面,然后关掉页面并打开一个新的标签页,粘贴这个地址后直接就报错了,说 “非法进入系统”,可是偏偏重新登录的时候又提示您的账号已经登录。
呵呵,服务端自己的登录/认证处理都工作不正常,你搞curl持久连接又怎么可能成功。
追问
在PC程序下是可行的,保持TCP连接不断或者端口不变就能做到,但是换到了PHP,就没有办法登陆,我不指望能搞跨页面登陆,我只需要在一次页面访问下达到登陆成功的效果即可也就是单进程或者单线程模式下登陆成功即可。。
追答
PHP也可以这样,但是开销比较大。可以参考php聊天室的代码,这个应该能解决你的问题。但是实际上用处不大,用错误的思路解决问题会发现问题越解决新问题越多。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询