【问题标题】:mysql update from html select option error从html选择选项错误的mysql更新
【发布时间】:2014-11-12 19:10:32
【问题描述】:

我有一个简单的选择选项来更新用户信息,但它似乎没有在 mysql 中更新它。

看看我的代码。

session_start();
$UserID = $_GET['id'];
$UserID = preg_replace("[^0-9]", "", $UserID);

$result = mysql_query("SELECT first_name, last_name, active FROM users WHERE UserID='$UserID' LIMIT 1");
$row = mysql_fetch_assoc($result);

if (isset($_POST['submit'])) {
    $active = $_POST["active"];
    $sql= mysql_query("UPDATE users SET active = '$active' WHERE UserID='$UserID' LIMIT 1");
        $succesMsg .= "<div class='alert alert-success alert-dismissable'>
            <i class='fa fa-ban'></i>
            <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>x</button>
            Account gegevens gewijzigd
            </div>";
    $_SESSION['succes'] = $succesMsg;
    header("Location: ".DEFAULT_URL_ADMIN."/user/");
} 

HTML

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="active_user" class="standerdForm">
                            <div class="box-body">
                                <div class="form-group">
                                        <label>Selecteer</label>
                                        <select class="form-control" id="active" name="active">
                                          <option value="0" <?php if($row['active'] == 0) {echo 'selected';} ?>>Deactiveren</option>
                                          <option value="1" <?php if($row['active'] == 1) {echo 'selected';} ?>>Activeren</option>
                                        </select>
                                </div>
                            </div>
                            <div class="box-footer">

                            <center>
                                <a href="<?=DEFAULT_URL_ADMIN?>/user/" class="btn btn-default marginRight_20">Annuleren</a>
                                <input type="submit" name="submit" id="submit" class="btn btn-primary" value="Opslaan">
                            </center>

                            </div>  
                        </form>

【问题讨论】:

  • 你试过调试这个吗?您是否获得了$_GET['id']$_POST['submit']$_POST["active"] 的值?什么是$_SERVER['PHP_SELF'],上面有id=123吗?
  • 请注意,但这段代码非常不安全。将active 设置为0' -- 之类的简单POST 到您的站点,您的数据就消失了。查找有关 MySQLi 和参数化查询的信息。
  • 我得到了 $_GET['id'] 的值,因为我试图回应它。但是如何调试和查看 POST 的错误?
  • 嗯,很好。 $_POST 呢?如果你var_dump($_POST);,你会看到什么?
  • 谢谢rock,我知道了,我可以过滤了。

标签: php mysql select option


【解决方案1】:

我需要改变

<?=$_SERVER['PHP_SELF']

$_SERVER['REQUEST_URI']

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 2018-02-24
    • 2011-11-08
    • 2011-11-07
    • 2017-05-28
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多