【发布时间】:2020-03-21 11:00:18
【问题描述】:
谁能告诉我为什么<?php echo $userPasswordError; ?> 行在我输入包含超过 1 个字符的密码时不返回任何内容(空)而不是 <div class="invalid-feedback">Too long.</div>?
如果我更改此行:$userPasswordError = '<div class="invalid-feedback">Too long.</div>';
有了这个$userPasswordError = 'Too long.';,它就可以工作了!输出为“太长”。
<?php
$user = $userPassword = '';
$userError = $userInvalid = $userPasswordError = $userPasswordInvalid = '';
$isvalidOrInvalidUser = $isvalidOrInvalidUserPassword = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Verify username.
if (!empty($_POST["user"])) {
if (strlen($_POST["user"]) <= 32) {
$user = $_POST["user"];
$userError = '<div class="valid-feedback">Correct.</div>';
$isvalidOrInvalidUser = 'is-valid';
}
else {
$userInvalid = $_POST["user"];
$userError = '<div class="invalid-feedback">Too long.</div>';
$isvalidOrInvalidUser = 'is-invalid';
}
}
else {
$userError = '<div class="invalid-feedback">Please, add username.</div>';
$isvalidOrInvalidUser = 'is-invalid';
}
// Verify password.
if (!empty($_POST["userpassword"])) {
if (strlen($_POST["userpassword"]) <= 1) {
$userPassword = $_POST["userpassword"];
$userPasswordError = '<div class="valid-feedback">Correct.</div>';
$isvalidOrInvalidUserPassword = 'is-valid';
}
else {
$userPasswordInvalid = $_POST["userpassword"];
$userPasswordError = '<div class="invalid-feedback">Too long.</div>';
$isvalidOrInvalidUserPasword = 'is-invalid';
}
}
else {
$userPasswordError = '<div class="invalid-feedback">Please, add password.</div>';
$isvalidOrInvalidUserPassword = 'is-invalid';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<div class="form-row">
<div class="col-md-3 mb-3">
<label for="user">Username :</label>
<input type="text" class="form-control <?php echo $isvalidOrInvalidUser; ?>" id="user" name="user" placeholder="User here" value="<?php echo $user.$userInvalid; ?>">
<?php echo $userError; ?>
</div>
<div class="col-md-3 mb-3">
<label for="userpwd">User password :</label>
<input type="password" class="form-control <?php echo $isvalidOrInvalidUserPassword; ?>" id="userpassword" name="userpassword" value="<?php echo $userPassword.$userPasswordInvalid; ?>">
<?php echo $userPasswordError; ?>
</div>
</div>
<button class="btn btn-primary" type="submit">Add</button>
</form>
</body>
</html>
【问题讨论】:
-
你的代码对我来说很好3v4l.org/GYMqD 也许
invalid-feedback类有一个display: none? -
显示器没有:无。如果我输入一个大于 32 个字符的用户名(调用相同的“div 类”),它可以正常工作。我不明白为什么...
标签: php html bootstrap-4