84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我在A页面通过表单向B页面通过POST方法传递了一个值,比如$_POST['test'] = "learn"B页面接收到这个值以后,我想把这个值传递到C页面,同样用POST方法。我之前的做法是在B页面做一个<form>,里面的元素都是hidden类型,把从A页面得到的$_POST['test']再赋给这个表单,再通过POST方法传递到C页面。但是觉得这样太麻烦,有没有什么好的办法,可以在B页面不使用表单,把POST的值传递到C页面?
$_POST['test'] = "learn"
$_POST['test']
传递post值需要进行post模拟,可以有三种方式进行POST模拟:
curl
socket
file_get_contents
这三种方式的原理类似,都是模拟HTTP访问,并且将POST数据提交到服务器页面上。
curl进行post提交示例代码如下:
$ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_URL,$postUrl);//指定post网页地址 curl_setopt($ch, CURLOPT_HEADER, 0);//设置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且返回输出 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//运行curl curl_close($ch);
其中$curlPost为post字段,可以是字符串或者数组,字符串为 arg1=a&arg2=b&arg3=c 这样,数组类似 array('arg1' => 'a', 'arg2' => 'b', 'arg3' => 'c') 这样。
这个很简单,你可以用session来传递值,这样就保证了数据的持续可传递;同时页面也可以获取信息
1.我建议还是用memcache 或者 redis 缓存 存储
session,cookie都可以
用session或者cookie.当然你把数据写入数据库然后在另一个页面取出来也行。
session的话,先调用session_start()开启session。之后,一个页面对$_SESSION数组的某个键赋值,在另一个页面就能取出来。就好像$_SESSION这个数组能跨页面似的。
用localStorage吧。A页面把数据保存到localStorage中,B页面,C页面,只要在同域下的页面,都可以读取到。
使用session 或者用ajax
如果是做跳转,想提交到B页面时,B跳转到C,然后C可以接收到post数据那么B跳转到C时可以用307状态码跳转
header("xxxx",307);
传递post值需要进行post模拟,可以有三种方式进行POST模拟:
curl
socket
file_get_contents
这三种方式的原理类似,都是模拟HTTP访问,并且将POST数据提交到服务器页面上。
curl进行post提交示例代码如下:
其中$curlPost为post字段,可以是字符串或者数组,字符串为 arg1=a&arg2=b&arg3=c 这样,数组类似 array('arg1' => 'a', 'arg2' => 'b', 'arg3' => 'c') 这样。
这个很简单,你可以用session来传递值,这样就保证了数据的持续可传递;同时页面也可以获取信息
1.我建议还是用memcache 或者 redis 缓存 存储
session,cookie都可以
用session或者cookie.
当然你把数据写入数据库然后在另一个页面取出来也行。
session的话,先调用session_start()开启session。
之后,一个页面对$_SESSION数组的某个键赋值,在另一个页面就能取出来。
就好像$_SESSION这个数组能跨页面似的。
用localStorage吧。A页面把数据保存到localStorage中,B页面,C页面,只要在同域下的页面,都可以读取到。
使用session 或者用ajax
如果是做跳转,想提交到B页面时,B跳转到C,然后C可以接收到post数据
那么B跳转到C时可以用307状态码跳转