Использование сессии и куки вместе для меня

1

На моей странице входа я использую Session и Cookies, и проверяется сессия для обычного входа и файлов cookie, когда меня помнят. Мой код для создания сеанса или настройки файлов cookie:

if(isset($_POST['login'])){ 
$username = $_POST['user_login'];
$password = $_POST['password_login'];
$stmt = $db->prepare("SELECT * FROM userss WHERE username = :username AND password = :password");
$stmt->execute(array(':username'=>$username,':password'=>$password));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$user_db = $row['username'];
$pass_db = $row['password'];
if($username == $user_db && $password == $pass_db) {  
    $_SESSION['username']=$username;
    if ($_POST['rememberme']!=NULL) {
        setcookie('username', $username,time()+31556926);
    }
    header("Location:main.php");
}

а затем на любой странице для создания пользователя fuction. Я вызываю сеанс или cookie следующим образом:

if(isset($_COOKIE['username'])||isset($_SESSION['username'])) {
    $username = $_COOKIE['username'];
    $username = $_SESSION['username'];
}

Теперь моя проблема:

  1. Даже когда я помню, я проверил сеанс сессии, а не куки, которые я тестировал, выйдя из моего браузера. Я не могу понять, где код поступил неправильно.
  2. Во втором коде if(isset($_COOKIE['username'])||isset($_SESSION['username'])) { правильно, но я не уверен, как определить имя пользователя для обеих разных ситуаций также $username = $_COOKIE['username']; дает мне undefined имя пользователя индекса. Может быть, мой способ настройки cookie поступил неправильно.
  • 1
    пара способов отладки 1) сначала проверьте, что указатель находится внутри условия, при котором вы проверяете, что $ _POST ['Rememberme']! = null 2) попробуйте использовать другое ключевое слово для cookie
Теги:
cookies
session

1 ответ

0
Лучший ответ

Замените здесь

if (isset($_POST['rememberme'])) {
setcookie('username', $username,time()+31556926);
}

И в пользовательских функциях

if(isset($_SESSION['username']) {
      $username = $_SESSION['username'];
    }
 else if(isset($_COOKIE['username']){
      $username = $_COOKIE['username'];
    }
 else
    {
     //invalid ---
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню