2016-04-11 5 views
0

У меня есть эта строка кода, и я пытаюсь отправить сообщение об ошибке, если комбинация имени пользователя не совпадает, вещь отображается, когда я обращаюсь к странице, даже до того, как я введите имя пользователя и пароль. как я могу сделать сообщение появляться ТОЛЬКО после того, как логин завершился неудачно? Спасибо!PHP Form Login - Отправить сообщение об ошибке

<?php 
$user = $_POST['user']; 
$pass = $_POST['pass']; 

if(($user == "someusername") && ($pass == "somepassword")) 
{ 
     include("../securedfile.php"); 
} 
else{  
    $message = "Invalid User/Password - Please Try Again"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
    } 

    if(isset ($_POST)) 

    {?> 

      <div class="secure"> 
      <form method="POST" action="secure.php"> 
      username:<input class="user" type="text" name="user"></input><br/><br/> 
      password:<input class="pass" type="password" name="pass"></input><br/><br/> 


      <button class="submit" type="submit" name="submit">SUBMIT</span></button> 
      </form> 
      </div> 
    <?} 
    }  
?> 
+0

Я понятия не имею, как любой из кода работает, то есть '<' вместо ' Jek

ответ

1

Существует проблема скобки с «другими», то формой вызова secure.php вместо вызова себя, нет Исети ... Переписанный код ниже будет лучшим способом сделать это. И проверили, это работает. (Имя всего этого файла - new.php)

<div class="secure"> 
     <form method="POST" action="new.php"> 
     username:<input class="user" type="text" name="user"></input><br/><br/> 
     password:<input class="pass" type="password" name="pass"></input><br/><br/> 


     <button class="submit" type="submit" name="submit">SUBMIT</span></button> 
     </form> 
</div> 

<?php 
// checking the user 
if(isset($_POST['submit'])) 
{ 

    $user = $_POST['user']; 
    $pass = $_POST['pass']; 

if($user == "someusername" && $pass == "somepassword") 
    { 
    include("../securedfile.php"); 
    } 

else 
{ 
$message = "Invalid User/Password - Please Try Again"; 
echo "<script type='text/javascript'>alert('$message');</script>"; 
} 
} 
?> 
+0

Большое вам спасибо! Оно работает! Теперь мне нужно скрыть форму, когда включен «securefile.php». – paboca

+0

Я просто добавил ' 'вверху" securefile.php ", чтобы он спрятал форму. Является ли это занятием. Спасибо!! – paboca

+0

Нет проблем. И вы должны принять ответ с зеленым тиком, так что тема закрыта/ответила. –

0

Я бы уточнил, установлены ли значения имени пользователя и пароля.

также, используя отдельную переменную для управления, если срабатывает ошибка или нет.

$user = $_POST['user']; 
$pass = $_POST['pass']; 

$error = false; 

if(isset($_POST['user'] && isset($_POST['pass'])){ 
    $error = true; 
} 

if(isset($_POST['user'] && isset($_POST['pass'])){ 
    if($user == "someusername" && $pass == "somepassword") 
    { 
    include("../securedfile.php"); 
    $error = false; 
    } 
} 

if($error = true){ 
    $message = "Invalid User/Password - Please Try Again"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} 
Смежные вопросы