Эквивалент сессий PHP в JavaScript - PullRequest
2 голосов
/ 27 июня 2011

Я собирался спросить о том, как реализовать сеансы в JS, я нашел несколько функций, которые можно использовать, как в этом примере:

String exforsys = request.getParameter("test"); 
session.setAttribute("test", exforsys);

А потом просто используйте session.getAttribute( exforsys);

Но нет ответа, я думаю, он используется только в сервлетах или чем-то еще.

Во всяком случае, я решил, что, возможно, у кого-то есть другой способ, кроме использования сессий. Я пытаюсь щелкнуть ссылку на одной странице, и в зависимости от того, какая ссылка была нажата, я загружу различную информацию.

Поскольку это функция onclick, я застрял с JS!

Так что мне нужно передать эту информацию на вторую страницу, куки работают хорошо, потому что они могут легко обрабатываться как с PHP, так и с JS, но некоторые компьютеры удаляют куки, и это было бы не очень хорошо!

Какие-либо предложения или другие способы, которыми я могу достичь того, что я хочу, но без использования сессий?

Ответы [ 7 ]

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

Сессии - это переменные сервера.Таким образом, JavaScript не может использоваться.

Однако вы можете извлечь переменные сеанса с помощью запроса ajax.

Script (jQuery)

//This portion will be triggered once the DOM is loaded and is ready
$(document).ready(function() {
    $.post("getsession.php",
       { "variable" : "yourneededsessionvariable" }, 
       function(data) {
         //data contains your session data
       }
    );
});

PHP

//getsession.php
<?PHP
session_start();
echo $_SESSION[$_POST['variable']];
?>
2 голосов
/ 31 мая 2012

Использовать локальное хранилище или контролируемые клиентом куки. . Sessions использует контролируемые сервером куки. Файлы cookie - это просто небольшие файлы, которые находились на клиенте.

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

Добавьте данные, которые вы хотите, чтобы следующая страница отображалась в строке запроса.

<a href="foo.html?bar=123">123</a>
<a href="foo.html?bar=456">456</a>

Затем в файле foo.html вы можете просмотреть location.href, чтобы увидеть, что было передано. Нет необходимостипеченье здесь.

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

Сеанс обычно означает «Некоторые данные, хранящиеся на сервере и связанные с пользователем с помощью токена, хранящегося в cookie». Вы не можете сделать это с помощью клиентского JavaScript (по понятным причинам).

Вы можете хранить данные непосредственно в cookie-файле.

Если вы готовы пожертвовать поддержкой широкого браузера, вы можете увеличить объем хранилища, используя один из механизмов хранения на стороне клиента, представленный в HTML 5 и Friends.

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

Просто ссылка на разные страницы.

некоторые компьютеры удаляют куки, и это было бы нехорошо

Если они удаляют все файлы cookie, сеанс также не будет работать.

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

Дескриптор сеанса хранится в файле cookie.Если файлы cookie не принимаются, сервер добавит идентификатор сессии в URL.Если у вас нет cookie-файлов, вы не можете сохранять ничего, кроме URL.

Почему «onclick» мешает вам использовать сеансы?Вы можете ajax вещи на сервер и добавить их в сеанс onclick

0 голосов
/ 27 июня 2011

PHP - это язык сервера, а javascript - это язык конца клиента. вы не можете буквально делать сессии в javascript

0 голосов
/ 27 июня 2011

Почему бы просто не использовать параметры запроса? т.е. http://yourserver.com/page.php?link=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...