我有一個PHP變量$ admin對應於一個複選框。當提交表單時勾選了該複選框,該值被傳遞(設置爲1)並且一切都很好,但是如果未勾選,該變量會導致未定義的索引錯誤:複選框變量導致錯誤,當未提交表單PHP MYSQL
注意:未定義索引:admin in C: ... \ admin.php的
這是查詢數據庫形式的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變量的錯誤?
我猜測,當沒有檢查框時,它發送no或NULL值。您應該首先攔截POST,然後自己手動設置變量。這樣你就知道它有一個有效的價值。 – durbnpoisn
您應該顯示腳本中處理'$ _POST'中的值的部分。很可能,這是你的問題所在。您也可以考慮不告訴用戶用戶名是否已被佔用。從安全的角度來看,這被認爲是不好的做法。 –
POST的簡單設置爲$ admin = $ _POST ['admin']; etc – ajm