表格未正确提交

时间:2017-07-26 18:37:40

标签: php html mysql form-submit

因此,每次更改选择时,我都会尝试使select元素更新MYSQL记录。但是我成功触发PHP代码的唯一方法是通过输入按钮,而不是下面显示的内容。我需要能够使用隐形输入提交来触发PHP代码。

重点是通过select元素而不是按钮来更新PHP记录。

<form id="signin-form_id" class="panel" method="POST" style="margin-bottom: 0px;">
    <div class="input-group">
        <span class="input-group-addon">
            Coin
        </span>
        <select class="form-control" name="cointype" onchange="this.form.submit()">
            <option value="0" selected>Bitcoin</option>
            <option value="1">Litecoin</option>       
        </select>
    </div>
    <noscript><input type="submit" name="ReferralCoin"></noscript>
</form>

提交按钮假设在PHP中触发POST事件: 不要对MYSQL注入漏洞发表评论。

<?php
if (isset($_POST['ReferralCoin']))
{
    $cointype = $_POST['cointype'];
    if($cointype == "0") 
    {
        $odb->exec("UPDATE users SET `coin` = '$cointype' WHERE `ID` = '$userid'");
    } 
    elseif($cointype == "1")
    {
        $odb->exec("UPDATE users SET `coin` = '$cointype' WHERE `ID` = '$userid'");
    }
}
?>

问题是如果我使用输入按钮它工作正常并触发php POST代码,但是当使用不可见输入提交时它不会触发PHP POST代码。如果有人能帮助我找到我的错误,我们非常感激!

1 个答案:

答案 0 :(得分:3)

您正在检查提交按钮:

if (isset($_POST['ReferralCoin']))

但是如果没有点击提交按钮(因为您通过JavaScript代码提交表单),那么它不包含在POST值中。因此$_POST['ReferralCoin']未设置。

您需要完全取消支票,或检查其他一些条件。 (例如是否设置了$_POST['cointype']。)