PHP解决模拟from表单get跳转时,浏览器提示不安全问题

文章提供了一个PHP函数用于构建请求表单并进行POST或GET方式的数据提交,但指出这种方式在某些浏览器中可能引发网址不安全提示。作为改进,建议使用`header()`函数结合`http_build_query()`进行安全的URL跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原代码:

<?php
/**
 * 建立跳转请求表单
 * @param string $url 数据提交跳转到的URL
 * @param array $data 请求参数数组
 * @param string $method 提交方式:post或get 默认post
 * @return false show 显示或者隐藏
 */
function buildRequestForm($url, $data, $method = 'post', $show = false) {
    $html = "<form id='requestForm' name='requestForm' action='" . $url . "' method='" . $method . "'>";
    foreach ($data as $key => $val) {
        $html.= "<input type='hidden' name='" . $key . "' value='" . $val . "' />";
    }
    $display = $show ? "style='display:block;'" : "style='display:none;'";
    $html.= "<input type='submit' value='确定' " . $display . "></form>";
    $html.= "<script>document.forms['requestForm'].submit();</script>";
    return $html;
}

//调用示例:
echo buildRequestForm($return_url, $postdata,'get');
exit;

改进方案:

<?php
 //使用header跳转,因为模拟Form表单跳转,部分浏览器会提示网址不安全
$return_url = $url."?".http_build_query($data);
header("Location:".$return_url);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值