[英]Twitter Bootstrap HTML form radio button not working with PHP POST
[英]PHP POST missing radio button from HTML form
它是如此簡單的代碼,但是我無法弄清楚它到底出了什么問題。 除單選按鈕外,表單中的所有其他輸入都存在。
這是我的表格:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"
method="POST">
<div class="form-group">
<label>Username</label>
<input class="form-control" type="text" name="username">
<span class="errorMsg"> <?php echo $usernameErr; ?></span>
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="password" name="password1">
<span class="errorMsg"> <?php echo $passwordErr; ?></span>
<label>Confirm Password</label>
<input class="form-control" type="password" name="password2">
<span class="errorMsg"> <?php echo $confirmPasswordErr; ?></span>
</div>
<hr>
<div class="form-group">
<label>E-mail</label>
<input class="form-control" type="email" name="email">
<span class="errorMsg"> <?php echo $emailErr; ?></span>
</div>
<div class="form-group">
<label class="radio-inline">
<input type="radio" name="gender" value="m"> Male
</label>
<label class="radio-inline">
<input type="radio" name="gender" value="f"> Female
</label>
<span class="errorMsg"> <?php echo $genderErr; ?></span>
</div>
<div class="form-group">
<button class="btn btn-default" type="submit" name="submitted">Submit</button>
</div>
</form>
這是PHP部分:
<?php
if (isset($_POST['submitted'])) {
$min = 5;
$max = 10;
$username = $_POST['username'];
$password = $_POST['password1'];
$confirmPassword = $_POST['password2'];
$email = $_POST['email'];
$gender = $_POST['gender'];
echo "----------------------";
print_r($_POST);
}
?>
它顯示了什么:
array(5) { ["username"]=> string(0) "" ["password1"]=> string(0) "" ["password2"]=> string(0) "" ["email"]=> string(0) "" ["submitted"]=> string(0) "" }
為什么在其中看不到[“ gender”]?
沒有錯誤。 必須檢查單選按鈕以發送其值。
嘗試檢查默認情況下的單選按鈕之一,它應該在$ _POST中可用。
<input type="radio" name="gender" value="m" checked="checked">
您可以執行以下操作來測試選中了哪個單選按鈕:
if (isset($_POST['gender']) && $_POST['gender'] == 'm') {
// Male checked
} elseif (isset($_POST['gender']) && $_POST['gender'] == 'f') {
// Female checked
}
我想通了。 我提交的內容沒有任何值,這意味着未對單選按鈕進行選擇。 結果,“性別”字段並未真正創建,因此$ _POST中不存在“性別”屬性。
另一個提示:您不執行任何形式的表單驗證,也不應直接訪問$ _POST數組值,您應該首先過濾它們,因為用戶可能會輸入一些混亂的內容。 例如,對於用戶名輸入,請使用以下過濾:
$login = mysqli_real_escape_string(trim((filter_input(INPUT_POST, 'login', FILTER_VALIDATE_EMAIL))));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.