Обнаружить новую переменную $ _SESSION без обновления. Может быть AJAX? - PullRequest
0 голосов
/ 13 октября 2010

В настоящее время я создаю веб-сайт, который извлекает видео с YouTube и изображения Flickr и позволяет пользователям комментировать их на веб-сайте. Имея собственную систему комментирования, веб-сайт также имеет возможность войти в систему с помощью youtube / flickr, чтобы комментировать youtube или flickr со своими именами пользователей.

Я делаю это, открывая всплывающее окно (реальное всплывающее окно, а не всплывающее окно jquery), закрывая всплывающее окно после входа в систему и сохраняя свои токены в PHP $ _SESSION. Вопрос в том, что у меня довольно много вещей, происходящих с jQuery, и я хотел бы позволить им переключаться между комментариями в качестве посетителя сайта и комментариями на Flickr / YouTube после того, как они войдут без обновления.

По сути, мне нужен способ определить, когда всплывающее окно закрывается, чтобы я мог затем сделать запрос к файлу PHP, который сообщит мне, есть ли у пользователя токен, сохраненный в $ _SESSION, или скрыть Имя и адрес электронной почты из формы комментария, так как им потребуется только поле ввода.

Другим способом было бы вызвать setInterval (), когда они открывают всплывающее окно и проверяют, например, $ _SESSION каждые 2/3 секунды, но я не думаю, что это лучший способ. В идеале я хотел бы что-то, что работает, как только пользователь закрывает всплывающее окно.

Подробнее: Я использую http://swip.codylindley.com/popupWindowDemo.html для отображения всплывающих окон Сценарий обратного вызова для обеих функций выполняет self.close () после сохранения токена в $ _SESSION Пользователи могут войти в систему как с Flickr, так и с YouTube (но я не думаю, что это больше имеет значение). Разница между комментариями в качестве посетителя и пользователя Flickr / Youtube заключается в том, что у вас есть три поля (имя, адрес электронной почты, сообщение) в качестве посетителя и только одно - в противном случае (сообщение) Я проверяю, когда страница загружается, поэтому, если пользователь обновляет страницу в этот момент, все в порядке, но мне бы хотелось, чтобы он не делал этого или хотя бы обновлялся автоматически.

Наконец, я могу использовать и другие варианты, если пользователю не нужно покидать страницу, обновлять себя, чтобы переключаться между посетителем и вошедшим в систему пользователем. Использование jQuery на странице, так что, если это решение на основе jQuery, даже лучше.

Извините за длинный пост, не смог найти способ сделать его короче.

Спасибо за помощь, ребята!

EDIT

setInterval () с функцией, которая вызывает PHP-скрипт для проверки переменной $ _SESSION, работает как чудо, совсем не так плохо с точки зрения производительности или взаимодействия с пользователем, как я ожидал. Тем не менее, если кто-то может придумать лучшее решение, я готов его принять.

Спасибо!

1 Ответ

0 голосов
/ 22 декабря 2010

Вы можете разместить в всплывающем окне HTML-код:

<body onunload="window.opener.location.href = 'http://check.session.com/path/to/file.php'">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...