运行 PHP IF 语句取决于特定的 HTML select 形式值

Running PHP IF statement depending on specific HTML select form value

我对 PHP 还是个新手,恐怕我有点不知所措。

我到处搜索,找不到匹配项。

我想做的是 运行 基于 HTML select 表单的值的 IF。谁能指出我正确的方向?

(我正在尝试设置投票系统。我可以使用不同的提交按钮更新 MySQL 数据库,但我希望改用 select 框。)

HTML:

<form action='vote_action.php' method='post'>
<select name="selectbox">
<option value=“optone”>optone</option>
<option value=“opttwo”>opttwo</option>
</select>
<input type='submit' name="submit" value=’submit’/>
</form>

PHP:

if(isset($_POST['selectbox']))
{
    if(isset($_POST[‘optone’]))
      {
        $vote_optone = "UPDATE mytable SET votes=votes+1 WHERE id=1";

        $run_optone = mysqli_query($con, $vote_optone);

        if($run_optone){

        echo “First updated“; 
                      }
        }


   if(isset($_POST[‘opttwo’]))
      {
        $vote_opttwo = "UPDATE mytable SET votes=votes+1 WHERE id=2”;

        $run_opttwo = mysqli_query($con, $vote_opttwo);

        if($run_opttwo){

        echo “Second updated“; 
                      }
        }


}
if ($_POST['selectbox']  === 'optone')

optone 和 opttwo 是值

改变

if (isset($_POST[‘optone’])) {
    // ...
}

if ($_POST['selectbox'] == 'optone')) {
    // ...
}

并对 opttwo 执行相同的操作。

请注意 PHP 中的字符串用 '" 引用,而不是 .

这不是更好的解决方案吗?

<form action="vote_action.php" method="post">
    <select name="selectbox">
        <option value="1">optone</option>
        <option value="2">opttwo</option>
    </select>
    <input type="submit" name="submit" value="submit" />
</form>

PHP:

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

$query = mysqli_query($con, "UPDATE mytable SET votes=votes+1 WHERE id=".$_POST['selectbox']."");

    if($query){
        echo "Updated"; 
    }

}

注意:这对SQL注入是有用的!

编辑:针对未按照您的意愿行事的用户进行了更新;)

$allowed_ids = array(1, 2);

if(isset($_POST['selectbox']) && in_array($_POST['selectbox'], $allowed_ids)) {

$selected = bin2hex($_POST['selectbox']);
$query = mysqli_query($con, "UPDATE mytable SET votes=votes+1 WHERE id=UNHEX('$selected')");

    if($query){
        echo "Updated"; 
    }

}