2016-04-27 1 views
2

Я новичок в php, и я пытаюсь создать систему входа в систему, но почему-то это не работает. Я предопределяю пароль в переменной, и я создал функцию, которая проверяет, совпадает ли введенный пароль с паролем в переменной.Система регистрации с предустановленной паровой запятой

Это мой код до сих пор:

<?php $validkey = "Test" ?> 
<script type="text/javascript"> 
    function check_value() 
    { 
     var password = document.getElementById("password").value; 
     if (password == '<?php echo $validkey; ?>') 
     { 
      location.href = "tafels.html"; 
     } 
    } 
</script> 
<input type ="text" name="password" id="password" /> 
<button onclick="check_value();">Login</button> 
+2

просто не сделать это в JAVASCRIPT: о – Bobot

+0

у вас есть какие-либо идеи, то для меня, как это сделать? –

+1

Пожалуйста, используйте AJAX или обычную отправку формы и подтвердите данные на сервере –

ответ

3

Это не так, процесс Логин должен работать. Прежде всего пароль должен быть хэширован и сохранен в базе данных. NEVER хранить пароли как чистый текст. Во-вторых, проверка пароля должна выполняться на стороне сервера, в файле PHP.

Чтобы объяснить, почему это опасно для проверки пароля на переднем конце, просто проверить эту часть кода:

if(password=='<?php echo $validkey; ?>') 
{ 

    location.href = "tafels.html"; 

} 

Пока сервер обрабатывает ваш PHP скрипт, отзовется в полученный правильный пароль HTML. Затем этот HTML-код будет отправлен в браузер. Допустим, что действительный пароль «р @ $$ w0rd», если вы проверяете исходный код страницы вы собираетесь найти это:

if(password=='[email protected]$$w0rd') 
{ 

    location.href = "tafels.html"; 

} 

Сервер будет заменен следующим образом:

<?php echo $validkey; ?> 

со значением пароля. И это будет видно всем. Небезопасно.

+0

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

+0

Все еще это не очень хорошая практика. Это очень серьезный недостаток безопасности, но тот, который можно легко решить, перемещая проверку на серверную сторону – dimlucas

1

Чтобы дать вам начать, вот пример, но, пожалуйста, заботиться об этом ответе https://stackoverflow.com/a/36883388/3799829

Очень простые и лица без гражданства (без памяти/нет сессии) примера системы авторизации

Войти. PHP

<?php 

$password = 'Test'; 
$url = 'tafels.html'; 

if(isset($_POST['password']) && $_POST['password'] === $password) 
{ 
    header('Location: ' . $url); 
    exit; 
} 

?> 
<html> 
    <head> 
     <title>You need a password to continue</title> 
    </head> 
    <body> 
     <form action="" method="POST"> 
      <input type="password" name="password" placeholder="Password"><button type="submit">Go on !</button> 
     </form> 
    </body> 
</html> 
Смежные вопросы