Проблема HTTP-HTTPS сеанса PHP

У меня есть логин (HTTPS). php, которая остается HTTPS (т.е. после входа пользователя на панель управления учетной записью). Теперь проблема заключается в том, что пользователь во время входа в защищенную панель управления нажимает на нечувствительную страницу, например страницу (HTTP) about-us.php, сеанс не передается по HTTP, поскольку у меня есть session.cookie_secure = 1, что означает пользователь кажется вышедшим из системы на страницах HTTP.

Однако, когда пользователь возвращается на страницу панели управления или на любую конфиденциальную страницу учетной записи, мне сказали, что он все равно должен войти в систему (т.е. с HTTP обратно на HTTPS)? Однако это не тот случай, и он, кажется, тоже отключился от HTTPS-соединения?

Мне кажется, что я упустил что-то, что вызывает эту проблему. Вот мой код:

Это файл заголовка PHP, который вызывается для запуска сеанса на странице login.php:

session_start();
session_regenerate_id(true); /*avoid session fixation attempt*/

/*Create and check how long session has been started (over 5 mins) regenerate id - avoid session hijack*/
if(!isset($_SESSION['CREATED'])) 
{
    $_SESSION['CREATED'] = time();/*time created session, ie from login/contact advertiser/email_confirm only ways for new session to start*/
} 
elseif(time() - $_SESSION['CREATED'] > 300) 
{
    /*session started more than 5 mins(300 secs) ago*/
    session_regenerate_id(true); /*change session ID for the current session and invalidate old session ID*/
    $_SESSION['CREATED'] = time(); /*update creation time*/
}

/*Check if user is logged in*/
if(!isset($_SESSION['loggedin']))
{
    $_SESSION['loggedin']=1;/*used to track if user is logged in on pages*/
}

/*if return false browser supports standard ob_start();*/
if(ob_start("ob_gzhandler")){ob_start();}

Это файл заголовка PHP, который требуется на каждой странице, чтобы проверить, инициирован ли сеанс уже: LEFT JOIN posts_tags pt ON pt.post_id = p.id Итак, я получаю что-то вроде этого: p ....

Мне нужно выбрать все сообщения со всеми связанными с ними тегами:

SELECT p.*, pt.name AS tag_name, pt.id AS tag_id FROM posts p
LEFT JOIN posts_tags pt ON pt.post_id = p.id

Я получаю что-то вроде этого:

 p.id | p.name | p.content | tag_name | tag_id
  1   | Yahoo  | ...       | first    | 1
  1   | Yahoo  | ...       | second   | 2
  2   | Google | ...       | second   | 2
  2   | Google | ...       | third    | 3

Я знаю, что при выборе записей таким образом можно получить количество записей, например, через COUNT (p.id) , но я не узнал, как установить OFFSET ( сколько записей пропущено с самого начала) и LIMIT (сколько записей вообще возвращается) в соответствии с уникальным идентификатором сообщения .

Теперь он явно работает таким образом, что пропускает / ограничение количества записей, но не количества реальных сообщений ...

5
задан Radek Simko 7 May 2011 в 14:03
поделиться