Php 元刷新标记将分号添加到URL(;)

Php 元刷新标记将分号添加到URL(;),php,forms,refresh,meta,Php,Forms,Refresh,Meta,我有一个PHP/HTML表单,当按下SubmitForm按钮时,它应该更改数据库并将页面重定向到另一个URL以查看表单详细信息。下一页需要通过GET接收两个变量,以便从数据库加载信息 在提交表单后,我使用以下代码行重定向页面: echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . $

我有一个PHP/HTML表单,当按下SubmitForm按钮时,它应该更改数据库并将页面重定向到另一个URL以查看表单详细信息。下一页需要通过GET接收两个变量,以便从数据库加载信息

在提交表单后,我使用以下代码行重定向页面:

echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . $PostingID . '&UserID=' . $UserID . '"/>';
分号add The end阻止页面正确加载。我可以手动删除它,它会工作,但普通用户不知道怎么做


如何使元刷新不添加分号?

您应该清理get变量以防止XSS(跨站点脚本)攻击。如果两者都是整数,则可以强制执行

echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&amp;UserID=' . intval($UserID) . '"/>';
echo';

注:我还将&to
&
这是正确的HTML编码。

标题字段中的属性应该被引用,如
0;URL='http://'
@mario,内容是属性,而不是meta中的URL。@Devon规定的内容仍然适用于HTML meta标记的上下文。(即使OP有垃圾输入变量,也仍然相关。)成功了!非常感谢你!我不知道如何清理GET变量。那么你应该研究跨站点脚本。如果任何输出(HTML)包含$\u GET值,您应该对其进行清理,以保护用户不受Javascript注入的影响。请将此标记为已解决,因为它解决了您的问题。好的,我将对此进行检查。非常感谢你!
echo '<META HTTP-EQUIV="refresh" Content="0;URL=http://grserviceswap.isys489.com/dev/Abraham/providerViewsAPost.php?SPPostingID=' . intval($PostingID) . '&amp;UserID=' . intval($UserID) . '"/>';