2015-03-19 3 views
1

Я создал страницу входа. В то время как iam не удалось связать ее со следующей страницей после нажатия кнопки отправки. Я хочу проверить и перенаправить на следующую страницу.ie home.php.Kindly help я узнаю, что мне не хватает.Подтверждение и ссылка на другую страницу

signin.php

<!DOCTYPE html> 
    <html> 

    <head> 
<script> 
function val() 
{ 
var a=document.signin.user.value; 
var b=document.signin.password.value; 
if (a == "admin" && b == "rec"){ 
alert ("Login success"); 
window.location = "home.php"; 
return false; 
} 
else{ 
alert("login failed") 
} 
} 
</script> 
    <meta charset="UTF-8"> 

    <title>LIBRARY </title> 

    </head> 

    <body> 

    <div class="body"></div> 
    <div class="grad"></div> 
    <div class="header"> 
    <div>REC<span>LIBRARY</span></div> 
    </div> 
    <br> 
<br> 
<br> 
    <div class="login"> 
<form name="signin" method="post" onsubmit="val();"> 
    <input type="text" placeholder="username" name="user"><br> 
    <input type="password" placeholder="password" name="password"><br> 

<input type="submit" id="mybutton" value="login"></form> 
    </div> 



    </body> 

    </html> 
+0

К сожалению о моей tag.I просто нужно проверить, а затем перенаправить. –

+0

Возможно, это глупый вопрос. Если кто-то будет смотреть на источник страницы, не будет ли им предоставлен свободный доступ к правильному имени пользователя и паролю администратора и rec? –

ответ

5

Проблема заключается в onsubmit событие не имея false вернулся к нему, поэтому отправляет форму нормально, после того, как ваш JavaScript закончил. Даже в случае успешного входа в систему и выполнения перенаправления форма все равно будет отправлена, и она переопределит перенаправление.

Во-первых, переместите свой return false; в конец функции, чтобы он всегда выполнялся.

Во-вторых, измените свой onsubmit="val();" на onsubmit="return val();". Это означает, что событие onsubmit всегда будет возвращено false и не будет пытаться опубликовать форму.


Сторона примечания: это отнюдь не безопасная система. Любой посетитель может просто наблюдать за источником HTML, чтобы найти пароль, или просто перейти непосредственно к home.php. Для безопасной системы вам необходимо выполнить аутентификацию на стороне сервера (в PHP).

+0

Thankyou..It работает сейчас –

1

Вы можете использовать метод preventDefault() Event без использования onsubmit = val(), как показано ниже.

document.getElementById("signin").addEventListener("submit", function(e){ 
    e.preventDefault() 
// actual code to validate 
}); 

или

можно попробовать грязную работу на стороне сервера непосредственно закрывал часть Validation

<?php 
ob_start(); 
session_start(); 
loginForm(); 
$userinfo = array(
       'admin'=>'0b2c082c00e002a2f571cbe340644239' 
       ); 
if(isset($_POST['username'])){ 
    if($userinfo[$_POST['username']] == md5($_POST['password'])){ 
     $_SESSION['username'] = $_POST['username']; 
     header('Location: home.php'); 
     exit(); 
    }else{ 
     ?> 
     <script type="text/javascript"> 
       alert("Oops.... User name or Pasword is worng, Please try again"); 
     </script> 
     <?php 
    } 
} 
function loginForm() 
{ 
?> 
     <form name="login" action="" method="post"> 
      Username: <input type="text" name="username"> <br><br> 
      Password: <input type="password" name="password"><br> 
         <input type="submit" value="login"> 
     </form> 
<?php 
} 
?> 
Смежные вопросы