大家否知道php可以利用header('Location')实现get请求跳转。
php利用curl可以实现模拟post请求。
但是却找不到php现成的实现post跳转。
那么问题来了,如果有这个需求该怎么实现呢?
今天在这里,利用form+js跟大家攒一个php的post跳转的方法。
index.php(发起跳转页面)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?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
.=
"<input name='{$key}' type='text' value='{$value}'/>"
;
}
//构造表单并跳转
$content
=<<<EOF
<form style=
'display:none'
name=
'submit_form'
id=
'submit_form'
action=
'{$actionUrl}'
method=
'post'
>
{
$formItemString
}
</form>
<script type=
"text/javascript"
>
document.submit_form.submit();
</script>
EOF;
exit
(
$content
);
|
action.php(跳转目标页面)
1
2
3
|
<?php
//打印post接收到的数据
echo
print_r(
$_POST
,true);
|
无图无真相,各位看官都来瞧瞧。
get访问:
http://yoururl/index.php?name=jack&age=100&sex=boy&no=001
真相在这!自动post跳转到了目标页面,且可以在目标页面里面获取到post值。
本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1951810,如需转载请自行联系原作者