php - 未以 PHP MYSQL 形式提交时导致错误的复选框变量

标签 php html mysql forms checkbox

我有一个 PHP 变量 $admin 对应于一个复选框。当提交表单并勾选复选框时,值被传递(设置为 1)并且一切都很好,但是如果它没有被勾选,变量会导致 undefined index 错误:

注意:未定义索引:C:...\admin.php 中的 admin

这是查询数据库的表单的 php 部分:

  if($row == 1)
    {
        echo '<div id="errormsg">This username is already taken</div>';
    }
    else

    {
    $add = mysqli_query($dbcon, "INSERT INTO users (id, firstname, lastname, username, password, admin) VALUES
    (null, '$fname', '$lname', '$user', '$pass', '$admin') ") or die ("Can't insert data");
    echo '<div id="create-success">Successfully added user!</div>';
    }

和 HTML 表单:

  <form action="admin.php" method="post" onSubmit="return validate(this)">
<fieldset>
    <label class="reg">Username *</label> <input type="text" name="user" /><br />
    <label class="reg">Password *</label> <input type="password" name="pass" /><br />
    <label class="reg">Repeat Password *</label> <input type="password" name="rpass" /><br />
    <label class="reg">First name:</label> <input type="text" name="fname" /><br />
    <label class="reg">Last name:</label> <input type="text" name="lname" /><br />
    <label class="reg">Admin?:</label> <input type="checkbox" value="1" name="admin" /><br/>
</fieldset>
    <input type="submit" name="submit" value="Create User" />
</form>

有没有人知道为什么不选中该框会导致特定于 $admin 变量的错误?

最佳答案

复选框只有在被选中时才会实际传递给脚本。

所以你需要检查你的 php 代码是否存在,像这样:

if ( $_POST && isset( $_POST['admin'] ) {
    $admin = $_POST['admin'];
} else {
    $admin = 0;
}

编辑:

在你的脚本中我会这样做

if($row == 1) {
    echo '<div id="errormsg">This username is already taken</div>';
} else {
    $admin = ( $_POST && isset( $_POST['admin'] ) ? $_POST['admin'] : 0;
    $add = mysqli_query($dbcon, "INSERT INTO users 
               (id, firstname, lastname, username, password, admin) 
         VALUES(null, '$fname', '$lname', '$user', '$pass', '$admin') ") or die ("Can't insert data");
    echo '<div id="create-success">Successfully added user!</div>';
}

关于php - 未以 PHP MYSQL 形式提交时导致错误的复选框变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23118060/

相关文章:

javascript - 图片 "jumps"进入网格?如何停止跳跃效果?

php - 单击时将日期和时间保存到 mysql

php - SQL 查询将多个值匹配到 select 语句中的一个字段

php - 从 jQuery 代码中的 WordPress 短代码获取 URL

php - 如何制作电线 :loading for every components

php - Yii url 区分大小写

php - $_SERVER ['HTTP_HOST' ] 也包含端口号 =/

javascript - 需要onclick事件,让div淡出 "THEN"删除div

javascript - 除了正文外,还打印了链接

mysql - 如何在 MYSQL 中更新/使 View 可更新