PHP模拟提交到JAVA,很有难度,必须大神才能解决! 问题解决追加分
我现在有两台服务器分别一台服务器一个域名,一台是PHP,一台是JAVA。我现在是需要PHP登录后,JAVA也能识别。我用COOKIE已经可以成功跨域名。但是JAVA不是用...
我现在有两台服务器分别一台服务器一个域名,一台是PHP,一台是JAVA。我现在是需要PHP登录后,JAVA也能识别。我用COOKIE已经可以成功跨域名。但是JAVA不是用COOKIE,而是用SESSION来识别,而SESSION是保存在服务器端的,没有办法,想到了用PHP模拟提交的方法,刚模拟提交的方法也成功了。但是SESSION的值没有保存。在JAVA上登录是自动保存SESION,但是用PHP模拟提交后JAVA上没有保存的SESSION值,依然需要输入用户名和密码~~求解决方法~~
贴出来模拟提交的代码:
$url = "网站地址"
$p = "username=tianlinzhi&password=tianlin863";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//CURLOPT_FOLLOWLOCATION 启用时会将服务器服务器返回的"Location: " 放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS 可以限定递归返回的数量。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
$result = curl_exec ($ch);
curl_close ($ch);
echo($result); 展开
贴出来模拟提交的代码:
$url = "网站地址"
$p = "username=tianlinzhi&password=tianlin863";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//CURLOPT_FOLLOWLOCATION 启用时会将服务器服务器返回的"Location: " 放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS 可以限定递归返回的数量。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
$result = curl_exec ($ch);
curl_close ($ch);
echo($result); 展开
3个回答
展开全部
我觉得你可以这样 分别用PHP和java单独写个加密的类 php这边登陆后将起身份信息加自己密加一个随机数字发给java这边同时存入数据库,java这边接受信息后比对传过来的值和数据库中额值是否一致,是一致的怎么是合法登陆用户,如果不一致就是非法用户或者php这么已经注销
当然php这边如果注销或者重新登陆都会去修改存入数据库的那个值。
这样既可以防止非法用固定代码登陆 有保证合法用户不受到影响
当然php这边如果注销或者重新登陆都会去修改存入数据库的那个值。
这样既可以防止非法用固定代码登陆 有保证合法用户不受到影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你java那边不要用户名和密码,
你可以参考第三个登录的来做,
传一个key过去,然后验证就行了,
这样就很简单了,第三方登录都是这样做的。
key->value可以放缓存来做,这样又快又简单。
你可以参考第三个登录的来做,
传一个key过去,然后验证就行了,
这样就很简单了,第三方登录都是这样做的。
key->value可以放缓存来做,这样又快又简单。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把登录信息记录到文件或者数据库,这样你两个系统都可以用它来验证是否登录,不要用php和java本身的session。
loading balance的多台服务器间共享登录信息也是这样做的
loading balance的多台服务器间共享登录信息也是这样做的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询