2016-12-07 4 views
0

Я пытаюсь написать процедуру входа в систему, где я могу отображать сообщения об ошибках. Моя форма Войти в HTML выглядит следующим образом:Сообщение об ошибке при входе в систему (HTML и php)

<form id="login" action="data/login.php" method="post"> 
    <H2>Rgister</H2> 
    Your login and password: 
    <br><br> 
    <div id="login-name" style="margin-top:20px;">Login:</div><div id="login-fld" style="margin-top:20px;"><input name="username" class="form-login" title="Username" value="" size="30" maxlength="2048" /></div> 
    <div id="login-name">Pass:</div><div id="login-fld"><input name="password" type="password" class="form-login" title="Password" value="" size="30" maxlength="2048" /></div> 
    <br><br><br> 
    <input type="image" src="obr/login-klw.png" alt="Submit" width="103" height="42" style="margin-left:90px;"> 
    <br><br> 

    <?php if ($_GET["log_err"]) { if ($_GET["rsn"] == "pass") { ?> 
    <html><body><h3>Error no 1</h3></body></html> 
    <?php } else { ?> 
    <html><body><h3>Error no 2</h3></body></html> 
    <?php } exit; } ?> 
</form> 

и PHP код, который:

... [ question to the database and return in $result object ] ... 

     if ($result->num_rows == 0) { 
      setcookie('logged_in', false, time() + 600, '/'); 
      die(header("location:../index.html?log_err=true&powod=pass")); 
     } 
     else { 
      setcookie('logged_in', $_POST['username'], time() + 600, '/'); 
      header("Location: /AAA/app.html"); 
     } 
    } 
    else { 
     setcookie('logged_in', false, time() + 600, '/'); 
     die(header("location:../index.html?log_err=true&powod=empty")); 
} 

и оба сообщения («не Ошибка № 1» и «не Ошибка № 2») Я вижу каждый раз, когда я загружаю этот страница. Я не знаю, почему и как отлаживать эту часть кода. Кто-нибудь может мне помочь?

Проблема заключается в том, что эта форма выглядит следующим образом: enter image description here

Я вижу массажи ошибки в течение всего времени.

+0

пожалуйста, вставьте весь код – Blueblazer172

+0

, почему вы использовали $ _GET? –

+1

Вы ставите ' .....' внутри '

'. – Banzay

ответ

0

Решено: первое имя файла должно быть "index.php" не "index.html", второй на месте:

<?php if ($_GET["log_err"]) { if ($_GET["rsn"] == "pass") { ?> 

должно быть:

<?php if (isset($_GET['log_err'])) if ($_GET["log_err"]) { if ($_GET["rsn"] == "pass") { ?> 

В приложении начать там было no $ _GET, так что это присутствие должно быть первым. Спасибо за ответы.

+0

Остановить использование '$ _GET', вместо этого использовать СЕССИИ. – Martin

0

Это проблема, с которой вы столкнетесь снова и снова. Когда в режиме dev вы научитесь выгружать переменные на экран, чтобы видеть внутри того, что понимает сервер.

В его простейшей форме все, что вам нужно сделать, это под вашим кодом.

<?php var_dump($_GET); ?>

Тогда, может быть, var_dump($_GET["log_err"]); и так далее.

Другие правильные ответы не выдерживают, и, о, убедитесь, что у вас нет инструкций var_dump(), которые сохраняются до публикации вашего кода.

Удачи.

+0

Благодарим за информацию – Tad

Смежные вопросы