Я хочу, чтобы PHP показывал определенный диапазон, когда вводился неправильный пароль или имя пользователя, иначе он должен быть скрыт. Как я могу заставить это случиться? Я пробовал все, но я на самом деле новичок в PHP и нашел этот код в Интернете.
здесь мой jsfiddle
и вот мой код:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
session_start();
$username = $_POST['username'];
$passwort = $_POST['passwort'];
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
// Benutzername und Passwort werden überprüft
if ($username == 'admin' && $passwort == 'admin') {
$_SESSION['angemeldet'] = true;
// Weiterleitung zur geschützten Startseite
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
if (php_sapi_name() == 'cgi') {
header('Status: 303 See Other');
}
else {
header('HTTP/1.1 303 See Other');
}
}
header('next.php');
exit;
}
}
?>
<div class="contactForm" id="contactForm" style="width: 500px;
margin: auto; float: left;">
<form name="myform" method="post" action="login.php">
<p class="form" style="width: 245px; height: 116px; margin-right: 10px;">
<input class="field" type="text" name="username" placeholder="Name" />
<input class="field" type="password" autofocus name="passwort"
placeholder="Passwort" />
<button class="button" name="Submit" >Login</button><br>
<span class="certainDiv" style="color:red;">This div should actually come
up when PW or User is wrong!</span>
</p>
</form>
</div>
Довольно легко исправить, если вы замените
<span class="certainDiv" style="color:red;">This div should actually come up when PW or User is wrong!</span>
С
<?php
if(isset($wrong)){
echo '<span class="certainDiv" style="color:red;">This div should actually come up when PW or User is wrong!</span>';
}
?>
И затем под
exit;
В строке 28 замените остальную часть кода в тегах PHP на
} else {
$wrong = true;
}
Это должно отлично работать с этими изменениями :)
Один из вариантов - просто окружить его "если",
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST'): ?>
<span class="certainDiv" style="color:red;">This div should actually come up when PW or User is wrong!</span>
<?php endif; ?>
Кроме того, вы можете попробовать http://phpfiddle.org/в следующий раз для вопросов PHP.
Вы можете установить переменную, если учетные данные неверны, и использовать ее в html-части, как показано ниже.
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
session_start();
$username = $_POST['username'];
$passwort = $_POST['passwort'];
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
// Benutzername und Passwort werden überprüft
if ($username == 'admin' && $passwort == 'admin') {
$_SESSION['angemeldet'] = true;
// Weiterleitung zur geschützten Startseite
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
if (php_sapi_name() == 'cgi') {
header('Status: 303 See Other');
}
else {
header('HTTP/1.1 303 See Other');
}
}
header('next.php');
exit;
} else {
//means the username or password is incorrect at this point
$invalidLogin = true;
}
}
?>
<div class="contactForm" id="contactForm" style="width: 500px; margin: auto; float: left;">
<form name="myform" method="post" action="login.php">
<p class="form" style="width: 245px; height: 116px; margin-right: 10px;">
<input class="field" type="text" name="username" placeholder="Name" />
<input class="field" type="password" autofocus name="passwort" placeholder="Passwort" />
<button class="button" name="Submit" >Login</button><br>
<?php
if(isset($invalidLogin) && ($invalidLogin)){
echo '<span class="certainDiv" style="color:red;">This div should actually come up when PW or User is wrong!</span>';
}
?>
</p>
</form>
</div>