Cookie Генерируется, когда установлен флажок [closed]

Добрый день

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

Однако при отправке формы cookie создается, но удаляется при перенаправлении.

Я вижу, что файл cookie создается путем комментирования перенаправления.

Это код для страницы login.php:

//start session management
 //connect to the database
<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> My Shopping list | Login </title>
    <!-- Bootstrap -->
    <link href="" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">  
    <link rel="stylesheet" href="css/shopping.css">
    <script defer src=""></script>
    <h1 id= head> My Shopping list</h1>
    <!-- As a link -->
    <nav class="navbar navbar-light bg-light mb-3">
        <div class="container-fluid">
        if( isset($_SESSION['user']) == true ) { 
            // grant access to the authorised areas if logged in
           echo "<a class="navbar-brand" href="">My Shopping list</a>" ;
           echo "<a class="navbar-brand" href="addItem.php">Add Item</a>";
            <a class="navbar-brand" href="destroy.php">Logout</a>
    <div class="container">
        <div class="card" id="loginCard">
            <form id="loginForm" action="../controller/authentication.php" method="post">
                <h3 class="card-title">Welcome back, please Login</h3>
                <div class="mb-3">
                    <label for="username" class="form-label">Username</label>
                    <input type="text" class="form-control" id="username" aria-describedby="emailHelp" name="username" 
                    <?php if (isset($_COOKIE['remember_me'])) {echo "value="$_COOKIE{"remember_me'}'";} else {echo "value=""";} ?> required>
                <div class="mb-3">
                    <label for="password" class="form-label">Password</label>
                    <input type="password" name="password" class="form-control" id="password" required>
                <div class="mb-3 form-check">
                    <input type="checkbox" name="remember" class="form-check-input" id="remember" value="1">
                    <label class="form-check-label" for="remember">Remember me</label>
                <button type="submit" name="submit" class="btn btn-primary">Login</button>
                <p>Do you need to <a href="register.php">register?</a></p>
                if(isset($_GET['mssg'])) {
                    $mssg = $_GET['mssg'];
                    echo '<p style="color:red;text-align:center; text-shadow: 1px 1px black;">' . $mssg . '</p>';

                    //display a user message if there is an error
                        echo '<div class="error">';
                        echo '<p style="color:red;text-align:center; text-shadow: 1px 1px black;"><i class="far fa-thumbs-down"></i>' . $_SESSION['error'] . '</p>'; 
                        echo '</div>';
                        //unset the session named 'error' else it will show each time you visit the page
                    //display a user message if action is successful
                        echo '<div class="success">';
                        echo '<p style="color:green;text-align:center;  text-shadow: 1px 1px black;"><i class="far fa-thumbs-up"></i>' . $_SESSION['success'] . '</p>'; 
                        echo '</div>';
                        //unset the session named 'success' else it will show each time you visit the page

И это код для authentication.php:

    //start session management
    //connect to the database
    //retrieve the functions
    //retrieve the username and password entered into the form
    $username = $_POST['username'];
    $password = $_POST['password']; 

    if($_POST['remember'] == '1' || $_POST["remember"]=='on'){
        $cookie_name = "remember_me";
        $cookie_value = $username;
        $year = time() + 31536000;
        setcookie($cookie_name, $cookie_value, $year);

    if(empty($username) || empty ($password)) {
         echo '<script type="text/javascript">alert("All fields are required.")</script>' ;
        // Redirect the browser window back to the add customer page
         echo "<script>setTimeout("location.href="";",2000);</script>";
    } else {
    //call the retrieve_salt() function
    $result = retrieve_salt($username);
    //retrieve the random salt from the database
    $salt = $result['salt'];

    //generate the hashed password with the salt value
    $password = hash('sha256', $password.$salt); 
    //call the login() function
    $count = login($username, $password);

    //if there is one matching record
    if($count == 1)
        //start the user session to allow authorised access to secured web pages
        $_SESSION['user'] = $user;
        //if login is successful, create a success message to display on the products page
        $_SESSION['success'] = 'Hello ' . $username . '. Have a great day!';
        //redirect to products.php
    //if login not successful, create an error message to display on the login page
    $_SESSION['error'] = 'Incorrect username or password. Please try again.';
    //redirect to login.php

Я также заметил, что cookie создается, несмотря на то, что флажок установлен или отключен.

Как вы думаете, в чем может быть проблема?

Спасибо за вашу помощь.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *