我现在有一个A页面,是直接访问的,如: http://xx.com/a.php我现在想在这个a.php中模拟出一个环境,是由另外一个页面POST提交过来的数据,包手,http_referer,还有post信息,get信息,就好像是从另外一个页面提交过来一样。请问怎么才能做到?
我现在是用$_POST['b']="bb"的方法来添加post变量,请问除了这种方法外,还有别的方法吗?
我现在是用$_POST['b']="bb"的方法来添加post变量,请问除了这种方法外,还有别的方法吗?
a.html有表单元素name,pwd,city提交到a.php后,可以在a.php处理数据,可以获得
echo $_POST['name']……
echo $_SERVER['HTTP_REFERER'] //a.html
还可以知道本页面的url地址是什么样的情况,a.php?action=add现在,我不想从a.html提交,而是直接访问a.php,在a.php中会调用一个处理方法,callback()
在callback中,是直接用$name = $_POST['name']方法来获得参数值的,包括$ref = $_SERVER['HTTP_REFERER'];现在问题是,直接访问A.PHP页面后,callback就无法获得需要处理的数据了,而且我这么做是想要做批量处理。有什么办法,能创造出来这些数据不?
如果这样的话,你可以加判断位,第一次加载的时候不做callback那句,提交时再做
while( $rs = mysql_fetch_row() )
{
//创造出post提交的环境,包括 $_POST['name'],$_POST['pwd'],$_POST['city'],$_SERVER['HTTP_REFERER'];
//还需要根据$rs['adr'] 来改变$_SERVER['SCRIPT_NAME']和QUERY_STRING
echo callback();
}function callback(){
$name = $_POST['name']……
$adr = $_SERVER['SCRIPT_NAME'];
$query= $_SERVER['QUERY_STRING']; //处理代码
}说明一下,callback实际是一个处理的类,而且是由别的程序提供的,所以不能修改那里边的代码。
$post = "name=1&pwd=2&city=3"
$fs = fsockopen('localhost',80,$errno,$errstr,1);
//写入http报头,自己google一下,主要还有content-type , content-length ,你要a.php获取http_referer,就在报头里加上Referer项
fwrite($fs,"POST /project/a.php HTTP/1.0 \r\n");
..
..
..
fwrite($fs,"\r\n");
//写入http报文
fwrite($fs,$post);
//关闭连接
fclose($fs);
谢谢,你的意思是说,我可以在另一个PHP页面中来完成
$reslut = mysql_query( "select * from auto " );
while( $rs = mysql_fetch_row() )
{
//在这里用curl来访问a.php,
}
然后在a.php中来完成处理单一的提交?
对吗