我有一个PHP / HTML表单,当按下提交表单按钮时,应该更改数据库并将页面重定向到另一个URL以查看表单详细信息。下一页需要通过GET接收两个变量才能从数据库加载信息。
我在提交表单后使用以下代码行重定向页面:
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . $PostingID . '&UserID=' . $UserID . '"/>';
问题在于,当它重定向时,会添加两个分号,如下所示:
http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=7;%20&UserID=33;
分号添加结尾可防止页面正确加载。我可以手动删除它,它会工作,但普通用户不知道这样做。
如何让元刷新不添加分号?
答案 0 :(得分:0)
您应该清理GET变量以防止XSS(跨站点脚本)攻击。如果两者都是整数,则可以强制执行。
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&UserID=' . intval($UserID) . '"/>';
注意我也改变了&amp;到&
,这是正确的HTML编码。