Member 3722539 Ответов: 1

Задавать значение cookie в текстовое поле


У меня есть этот код ниже, я пытаюсь отменить сеанс и куки-файлы.Мне интересно, Как заполнить поля имени пользователя и пароля на основе значения файла cookie после выхода из системы

Что я уже пробовал:

<?php
 session_start();
 ob_start();

 if (isset($_COOKIE['name']) and isset($_COOKIE['pass'])) {
     $c_name = $_COOKIE['name'];
     $c_pass = $_COOKIE['pass'];
     echo "<script>
   document.getElementById('u_name2).val='$c_name';
    </script>";
 }

?>




<?php


if (isset($_SESSION['login'])) {
    header('location:welcome.php');
} else {
    if (isset($_POST['submit'])) {
        $name = $_POST['username'];
        $pass = $_POST['password'];

        $db = new PDO('mysql:host=localhost;dbname=testing;charset=utf8', 'root', '');
        $query = $db->prepare('select * from users where username=? and password=?');
        $query->execute([$name, $pass]);
        $count = $query->rowCount();
        if ($query->rowCount()) {
            $_SESSION['login'] = true;
            $_SESSION['username'] = $name;
            if (isset($_POST['remember'])) {
                setcookie('name', $name, time() + 60 * 60 * 6);
                setcookie('pass', $pass, time() + 60 * 60 * 6);
            }
            header('location:welcome.php');
        }
    } else {
        ?>
<form action="" method="post">
UserName <input type="text" name="username" id="u_name"><br>
 Password   : <input type="text" name="password" id="u_pass"><br>
 Remember Me :<input type="checkbox" name="remember" >
 <br>
 <input type="submit" name="submit"><br>



</form>
    <?php
    }
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>
<?php

1 Ответов

Рейтинг:
10

Richard Deeming

Просто: не надо.

НИКОГДА храните учетные данные пользователя в файле cookie. Это было бы серьезным нарушением безопасности и, скорее всего, привело бы к тому, что вам или вашей компании пришлось бы заплатить солидный штраф.

Каждый браузер включает в себя встроенный безопасный менеджер паролей. Это позволит пользователю выбрать запоминание и автоматическое заполнение своих учетных данных. Не пытайтесь повторить или переопределить это в своем коде.

Трой Хант: как построить (и как не построить) безопасную функцию “Запомни меня” [^]


На аналогичной ноте вы храните пароли в обычном тексте. Не делай этого!
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

PHP даже включает в себя встроенные функции, которые помогут вам сделать все правильно:
PHP: password_hash[^]
РНР: функцию password_verify[^]