PHP表单不发布数据

时间:2014-07-23 21:27:57

标签: php html forms

我在HTML / PHP页面上有一个表单。

我在网站上的其他页面上有相同的确切代码,并且工作正常。我无法理解。

形式:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

    <input name="prize_id" type="hidden" value="<?php echo $prize_id; ?>" />

    <input name="ContestEntry" type="submit" class="submit" value="Enter me in the Raffle!" />

</form>

我查看了HTML源代码,操作填充了正确的页面,$ prize_id填充了值中的正确信息。

PHP:

if(isset($_POST['ContestEntry'])){

    //...code to enter data into form, irrelevent since it won't post anything anyway.

}

else {

    echo 'Nothing posted from form';

}

“从表单中发布的内容”始终显示,并且没有数据输入到数据库中。我已经尝试将表单名称更改为5个不同的东西,想到某个地方可能存在冲突的名称,但没有任何作用。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您发布的代码实际上适合我。

但是,如果你仍然无法使它工作,我会尝试检查是否设置prize_id而不是按钮。提交表单时执行PHP脚本。

此外,我建议您不要使用$_SERVER['PHP_SELF']作为表单操作。根据{{​​3}},这可以使攻击者轻松插入恶意数据。相反,请将操作留空。

答案 1 :(得分:1)

如果您需要检查表单是否已提交,最好检查请求类型是否为POST:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Process form
} else {
    // Nothing posted!

}

同时将提交按钮更改为:

<button type="submit">Submit</button>

看看会发生什么

答案 2 :(得分:0)

if条件无法正常工作,因为你将它放在Button上,而不是只是在表单中设置一个隐藏字段来检查表单是提交还是不像你已经提交的那样。或者为此表单制作新内容。

<input name="prize_id" type="hidden" value="<?php echo $prize_id; ?>" />

答案 3 :(得分:0)

考虑将您正在寻找的内容添加为另一个隐藏字段:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

    <input name="prize_id" type="hidden" value="<?php echo $prize_id; ?>" />
    <input name="ContestEntry" type="hidden" value="Enter me in the Raffle!" />

    <input type="submit" class="submit" />

</form>