PHP показывает определенный <span>, когда PW или Пользователь не прав

0

Я хочу, чтобы 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>
Теги:

3 ответа

0
Лучший ответ

Довольно легко исправить, если вы замените

<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;
}

Это должно отлично работать с этими изменениями :)

  • 0
    звучит хорошо, но это не работает! Я просто загрузил его, ввел неправильный имя пользователя и пароль и нажал на кнопку «Вход», затем страница обновилась, и я не перенаправлен, но не отображается «sureDiv» ..
  • 0
    Извините, забыл добавить обновленный код - теперь должно работать :)
Показать ещё 2 комментария
0

Один из вариантов - просто окружить его "если",

<?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.

0

Вы можете установить переменную, если учетные данные неверны, и использовать ее в 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>
  • 0
    Dreamweaver говорит, что есть синтаксическая ошибка в if (isset ...
  • 0
    Первая скобка должна быть закрыта для предложения if. Я редактировал код сейчас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню