2010-12-29 4 views
0

Я хочу что-то сделать в jquery, если пользователь хочет что-то проголосовать, и они не вошли в систему или не зарегистрировались, вы предложите им сделать что-то подобное, например, stackoverflow, когда появляется оранжевый pop up thingy, но я был интересно, как вы работаете с jquery и сессиями! я просто хочу толчок в правильном направлении! :))подскажите пользователю зарегистрироваться с помощью jquery?

+0

У JavaScript нет сеансов. Вы можете использовать файлы cookie, но данные там небезопасны (каждый может их редактировать). Вам понадобятся настоящие серверные сессии. – jwueller

ответ

0

Не зная, какая у вас настройка (т. Е. Если вы используете фреймворк и т. Д.), Трудно дать наилучший ответ; Однако, в общих чертах, вы просто должны сделать следующее:

  1. Проверьте, установлен ли сеанс установлен и
  2. Если запустите яваскрипта всплывающее окно.

Допуская информация Логин сеанса хранится в слоте под названием «имя пользователя», вы могли бы сделать:

if (!isset($_SESSION['username'])) { 
    print(" 
     <script type type=\"text/javascript\"> 
     alert('Please login first.'); 
     </script> 
    "); 
} 

Я рекомендую смотреть в jQuery UI для больших способов сделать вещи выглядят более привлекательными.

0

Сессии управляются на сервере и не имеют ничего общего с jQuery.

Вы можете использовать jQuery, чтобы создавать приятные модальные диалоги для экранов входа, но это просто причудливый HTML.

2

Вам нужно установить в вашем коде переменную javascript, в которой указывается, зарегистрирован ли пользователь. Это может быть из сеансов поддержки или из установленного вами cookie-файла браузера. Вы определенно не хотите, чтобы это была единственная мера против голосования, если они не вошли в систему, хотя. Проверьте это и на сервере.

Если вы хотите использовать сессии, вы можете сделать что-то вроде этого:

<script type="text/javascript"> 
    var userLoggedIn = <?php =$_SESSION['logged_in']; ?> 
</script> 

$_SESSION['logged_in'] должны быть установлены либо true или false. Затем вы просто проверяете эту переменную (userLoggedIn) каждый раз, когда пользователь хочет выполнить какое-либо действие. Также проверьте это на стороне сервера, как я сказал выше.

SO, похоже, использует этот метод. Если вы посмотрите в коде, есть строка var isRegistered = true, что означает, что я в настоящий момент вошёл в систему.

Другой способ, которым вы могли бы это сделать, - удалить все функции голосования, если они не вошли в систему, и добавить их, когда они находятся. Это сэкономит время загрузки для тех, кто не авторизовался.

Смежные вопросы