大家否知道php可以利用header("Location")实现get请求跳转。
php利用curl可以实现模拟post请求。
但是却找不到php现成的实现post跳转。
那么问题来了,如果有这个需求该怎么实现呢?
今天在这里,利用form+js跟大家攒一个php的post跳转的方法。
index.php(发起跳转页面)<?php
//定义post处理页面url
$actionUrl="./action.php";
//获取当前页面的url
$url="http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"];
//解析url
$parseInfo=parse_url($url);
//获取url中的参数部分
$queryString=$parseInfo["query"];
//将querycan参数解析到数组变量
$queryArr=[];
parse_str($queryString,$queryArr);
//循环拼接表单项
$formItemString="";
foreach($queryArr as $key=>$value){
$formItemString.="";
}
//构造表单并跳转
$content=<<
{$formItemString}
document.submit_form.submit();
EOF;
exit($content);
action.php(跳转目标页面)<?php
//打印post接收到的数据
echo print_r($_POST,true);
无图无真相,各位看官都来瞧瞧。
get访问:
真相在这!自动post跳转到了目标页面,且可以在目标页面里面获取到post值。