мой код ...PHP: If-заявление и форма
<?php
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$passwordr = mysql_real_escape_string($_POST['passwordr']);
$email = mysql_real_escape_string($_POST['email']);
if(empty($username) || empty($password) || empty($passwordr) || empty($email)) {
echo '<div class="alert alert-danger">Bitte fülle alle Felder aus.</div>';
}
elseif(!preg_match('/^[a-zA-Z0-9-_^#]{4,15}$/', $username)) {
echo '<div class="alert alert-danger">Bitte gebe einen gültigen Usernamen ein.<br />Der Username muss mindestens 4 und maximal 15 Zeichen lang sein und darf nur folgende Sonderzeichen enthalten: -_^#</div>';
}
elseif(!preg_match('/^[a-zA-Z0-9-_*^#?!.,;@€]{8,20}$/', $password)) {
echo '<div class="alert alert-danger">Bitte gebe ein gültiges Passwort ein.<br />Das Passwort muss mindestens 8 und maximal 20 Zeichen lang sein und darf nur folgende Sonderzeichen enthalten: -_*^#?!.,;@€</div>';
}
elseif($passwordr != $password) {
echo '<div class="alert alert-danger">Die Passwörter stimmen nicht überein.</div>';
}
elseif(!preg_match('/^[a-zA-Z0-9-_.][email protected][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/', $email)) {
echo '<div class="alert alert-danger">Bitte gebe eine gültige E-Mail Adresse ein.</div>';
}
else {
die("have a n1 day");
}
?>
каким-то образом, я всегда получаю <div class="alert alert-danger">Bitte fülle alle Felder aus.</div>
, даже если формы не пусты.
Почему?
вот моя форма ...
<div class="row">
<form method="POST">
<fieldset>
<div class="col-lg-5">
<div id="username-group" class="form-group">
<label for="username">Username</label>
<input type="text" name="username" id="username" class="form-control" placeholder="Username">
</div>
<div id="password-group" class="form-group">
<label for="password">Passwort</label>
<input type="password" name="password" id="password" class="form-control" placeholder="Passwort">
</div>
<div id="passwordr-group" class="form-group">
<label for="passwordr">Passwort wiederholen</label>
<input type="password" name="passwordr" id="passwordr" class="form-control" placeholder="Passwort wiederholen">
</div>
<div id="email-group" class="form-group">
<label for="email">E-Mail</label>
<input type="email" name="email" id="email" class="form-control" placeholder="E-Mail">
</div>
<input type="submit" name="submit" id="submit" class="btn btn-default" value="Registrieren">
</div>
</fieldset>
</form>
</div>
я использую самозагрузки, но я не думаю, что это проблема. , и код выглядит отлично.
Похоже, что ваше сообщение в основном кода; добавьте еще несколько деталей.
Где находятся ваши переменные? Можете ли вы предоставить разметку своей формы? –
Сначала проверьте, что вы действительно возвращаете значения из формы, вы можете использовать: print_r ($ _ REQUEST); die; , Затем покажите еще один код, в котором вы фактически назначаете это значение из $ _POST (или $ _GET) в эти переменные. вы не используете экстракт, не так ли? – Mahakala
Вы понимаете, что имя не волшебным образом превращается в '$ username', но' $ _POST ['username'] ' – adeneo