Как сохранить текущий идентификатор URL в сеансе, а затем обновить его при просмотре следующей отправки - PullRequest
1 голос
/ 23 июня 2011

После обновления http://mydomain.com, будет сгенерирован случайный идентификатор для отображения на странице.

Например, http://mydomain.com генерирует 54 в первый раз, а при перезагрузке 112 и т. Д.

Я бы хотел сохранить каждый из случайно сгенерированных идентификаторов в сеансе, поэтому каждый раз, когда он перезагружается, я могу вернуться к последнему. Например, когда он впервые сохраняет 54 в сеансе, и когда http://mydomain.com перезагружается и генерирует 112, я могу вернуться к 54.

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

    if(empty($_SESSION['lastURL'])) {
        $_SESSION['lastURL'] = $submissionId; // $submissionId is randomly generated
            } else {
        echo $_SESSION['lastURL'];
    }

Это мой текущий код. Где я должен обновить сеанс, чтобы сохранить следующий идентификатор?

Оказывается, причина, по которой он продолжал давать сбои, заключалась в том, что он продолжал запускать дополнительный запрос ajax, поэтому я каждый раз получал случайно сгенерированный идентификатор.

Я (с помощью друга) выяснил, используя следующий код, и устанавливая его перед тем, как он будет запускаться случайным образом каждый раз:

    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'){
    // Not an ajax request - just a normal page load
    $_SESSION['lastid'] = $_SESSION['currentid'];
    $_SESSION['currentid'] = $submissionId;
}

Ответы [ 3 ]

2 голосов
/ 23 июня 2011

Вы устанавливаете $_SESSION['lastURL'] только один раз, потому что это только empty() один раз.Вам нужно будет обновлять это значение всякий раз, когда вы генерируете новый идентификатор (таким образом, делая его новым "старым").

1 голос
/ 23 июня 2011

Если вы хотите сохранить все идентификаторы, вам нужно поместить их в массив:

if (!isset($_SESSION['url_list']))
{
  $_SESSION['url_list'] = array();
}

$_SESSION['url_list'][] = $submissionId;

// see all entries
var_dump($_SESSION['url_list']);

Теперь у вас есть история всех идентификаторов с начала сеанса.

1 голос
/ 23 июня 2011

Не забудьте иметь session_start() вверху файла, в котором хранятся сессии, и читать их, чтобы иметь полный доступ к ним

...