[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AJAX запрос для авторизированных пользователей
EkleP
Вчера взялся за изучения AJAX. Основы уже как ясны.
Но мой интерес превыше моего терпения. Вопрос следующий:
Каким образом реализовать отдачу запроса PHP скрипта для авторизованных пользователей? Cookie или другие альтернативы?



Спустя 9 минут, 51 секунда (15.02.2012 - 19:43) Игорь_Vasinsky написал(а):
а сессии? смотря как ты определяешь что юзер авторизирован, либо как все люди - по сессии (или кукам dry.gif ) или как то по другому.

Спустя 2 минуты, 24 секунды (15.02.2012 - 19:46) EkleP написал(а):
Представим виде сессии. Это запрос на прямую к PHP. Как скрипт запросит сессию из javascript?

Спустя 4 минуты, 5 секунд (15.02.2012 - 19:50) Игорь_Vasinsky написал(а):
сессия создаётся и храниться на сервере. причём здесь JS??? и о каком запросе напрямую к PHP идёт речь?

Спустя 5 минут, 36 секунд (15.02.2012 - 19:55) EkleP написал(а):
Допустим не авторизованный пользователь обратится к скрипту и запросит личную информацию он ее сможет получить? Если мы используем сессию?

Спустя 2 минуты (15.02.2012 - 19:57) m4a1fox написал(а):
EkleP
Как у Лермонтова... "...смешались кони. люди."

Спустя 24 секунды (15.02.2012 - 19:58) Игорь_Vasinsky написал(а):
причём тут аякс?

при авторизации пользователя на сайте - открываешь сессию и хранишь в ней, например - логин (если он уникален) - и при сёрфинге по сайту - смотришь - есть ли что в сессии, стартовали ли она - и в зависимости от этого решаешь пускать куда нить юзера или нет.

Спустя 37 секунд (15.02.2012 - 19:58) m4a1fox написал(а):
ИМХО.... Я бы порекомдовал бы вам с маленького начать.... а то как по мне, так вы уж слишком далеко запулили.

Спустя 36 секунд (15.02.2012 - 19:59) Игорь_Vasinsky написал(а):
Цитата
Как у Лермонтова... "...смешались кони. люди."

в яблочко. я думал народ в ногу с технологиями идёт, а тут полное осутствие азов.

Спустя 57 секунд (15.02.2012 - 20:00) m4a1fox написал(а):
Игорь, кстати, может ты в курсе. сколько значений в сессию можно положить... массивов и остального.. много наверно...?

Спустя 3 минуты (15.02.2012 - 20:03) EkleP написал(а):
Я пытаюсь выяснить, как происходит AJAX запрос к PHP скрипту если пользователь не авторизован. И в скрипте стоит проверка на сессию. То есть как избежать отдачу информации всем не авторизованным?

Спустя 3 минуты, 13 секунд (15.02.2012 - 20:06) Игорь_Vasinsky написал(а):
в PHP нет ограничений на размер данных в сессиии, но сессии храняться файлами во временной директории и весят в памяти - значит есть ограничение по выделенной памяти на один скрипт, например 128 мб, 64 мб..

я так считаю.

Цитата
как происходит AJAX запрос к PHP скрипту если пользователь не авторизован

точно так же как и у авторизированного.

аякс - технология клиент-серверная, работает как php на сервере + как JS у клиента.

причём здесь авторизированный и не авторизированный - я не понимаю.

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

Спустя 1 минута, 13 секунд (15.02.2012 - 20:07) nugle написал(а):
EkleP
В скрипте проверь, авторизован или нет, если нет exit и все

Спустя 32 секунды (15.02.2012 - 20:08) m4a1fox написал(а):
в php файле

if(!$_SESSION){
header("Location: ./index/php");
exit();
}

Спустя 3 минуты, 6 секунд (15.02.2012 - 20:11) EkleP написал(а):
Спасибо всем! Суть уловил. Тема закрыта.

Спустя 45 секунд (15.02.2012 - 20:12) nugle написал(а):
m4a1fox
а редирект то зачем?

Спустя 35 секунд (15.02.2012 - 20:12) m4a1fox написал(а):
EkleP
Цитата
Спасибо всем! Суть уловил. Тема закрыта.

Серёжа маладец.

Спустя 39 секунд (15.02.2012 - 20:13) m4a1fox написал(а):
nugle
Цитата
а редирект то зачем?

Ну типа переадресовываем если че. А как по другому?

Спустя 1 минута, 22 секунды (15.02.2012 - 20:14) Игорь_Vasinsky написал(а):
ph34r.gif не понял... что это было то biggrin.gif


можно переадресовывать, модно выводить сообщение, можно просить авторизироваться или зарегистрироваться - всё зависит от полёта фантазии.

Спустя 3 минуты, 2 секунды (15.02.2012 - 20:17) m4a1fox написал(а):
Игорь_Vasinsky
Цитата
можно переадресовывать, модно выводить сообщение, можно просить авторизироваться или зарегистрироваться - всё зависит от полёта фантазии.

Ну да... а переадресация это как пример...

Спустя 1 минута, 31 секунда (15.02.2012 - 20:19) nugle написал(а):
m4a1fox
просто если ты переадресовываешь, то зачем exit() в конце тогда?
он у тебя все ушел со страницы, скрипт по-любому дальше не уйдет.

Игорь_Vasinsky
Но это да, но я думаю не нужно редирект через аякс, так как пользователь никуда не заходит в запрещенные страницы, просто отсылается запрос, в тайне от пользователя и если запрос удачен, то пользователь видет результа, а если нет, то на нет и суда нет

Спустя 1 минута, 31 секунда (15.02.2012 - 20:20) inpost написал(а):
nugle
Уходит дальше. И обрабатывается до конца, если не напишешь exit();

Спустя 39 секунд (15.02.2012 - 20:21) m4a1fox написал(а):
nugle
Цитата
просто если ты переадресовываешь, то зачем exit() в конце тогда?

Ды так научили...

Спустя 45 секунд (15.02.2012 - 20:22) Игорь_Vasinsky написал(а):
да лан. пишется обычная аторизация и вешается аяксом.

аякс всеголишь плющечка. работает - монстр PHP wink.gif



exit() вешают для подстраховки, если вдруг редирект не получился.

Спустя 21 секунда (15.02.2012 - 20:22) m4a1fox написал(а):
Цитата
Уходит дальше. И обрабатывается до конца, если не напишешь exit();

Спасибо inpost, а то я знаю как правильно делается...а почему - не знаю. Теперь то хоть знать буду, надо только запомнить это.

Спустя 59 секунд (15.02.2012 - 20:23) inpost написал(а):
Игорь_Vasinsky
exit для того, чтобы не выполнялся код ниже. А если не напишешь exit, то выполнение будет идти до конца скрипта, а если у тебя там ещё лишние данные, то из-за этого лишняя нагрузка.

Спустя 1 минута, 30 секунд (15.02.2012 - 20:25) nugle написал(а):
inpost
Ам, не в этом смысл был, а в том, что результата пользователь все равно не увидит.
Я бы просто exit() оставил без перенаправлений

Спустя 2 минуты (15.02.2012 - 20:27) inpost написал(а):
А, ну для аякс запроса то да, зачем там переадресация нужна. Просто exit.
А проверку нельзя делать на:
if($_SESSION), надо isset или empty.

Спустя 33 секунды (15.02.2012 - 20:27) Игорь_Vasinsky написал(а):
Цитата
А если не напишешь exit, то выполнение будет идти до конца скрипта, а если у тебя там ещё лишние данные, то из-за этого лишняя нагрузка.


мал я ещё.. не видел в оочую больших нагрузок.

токая не понял зачем обрабатывается весь код???

если по логики - скрипт выполняется последоватеьно - и в момент редиректа - уводить пользователя должен.

Спустя 1 минута, 30 секунд (15.02.2012 - 20:29) nugle написал(а):
Цитата
if($_SESSION), надо isset или empty.

Ну это смотря какой уровень вывода ошибок стоит. Можно поставить минимальный уровень, т.е. нотайсы убрать и ошибок не будет)

Цитата
если по логики - скрипт выполняется последоватеьно - и в момент редиректа - уводить пользователя должен.

Такой же вопрос возник)

Спустя 3 минуты, 27 секунд (15.02.2012 - 20:32) inpost написал(а):
nugle
Мы говорим об адекватном проекте smile.gif

Игорь_Vasinsky
Если у тебя apache, или не апач, но редирект глабальный, то всё, что сделает скрипт от header() - отправит ЗАГОЛОВОК в браузер. При этом он может и другие заголовки отправлять, а ещё данные будет отправлять.
Браузер получит заголовок "переадресации" и сам включит переадресацию, если там разрешена она. И отправит новый запрос уже на новую страницу.

Так работает PHP, поэтому после заголовка продолжится дальнейшая работа скрипта.

Спустя 20 секунд (15.02.2012 - 20:32) m4a1fox написал(а):
Мдя.... уже в привычку вошло.... А ведь точно... переадресация там не нужна...

if(!$_SESSIOn['login']){
exit();
}

Спустя 2 минуты, 15 секунд (15.02.2012 - 20:35) Игорь_Vasinsky написал(а):
Цитата
Так работает PHP, поэтому после заголовка продолжится дальнейшая работа скрипта.

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

Спустя 1 минута, 45 секунд (15.02.2012 - 20:36) m4a1fox написал(а):
Игорь_Vasinsky
Цитата
ужасно... перехожу на питона. это была последняя капля, сначала выяснилось что там нотисы, потом узнал про варнинги...щас ещё это дело..не.всё. с меня хватит.

Стоп машина!!!! Ты чего так? Думаешь на питоне проще...?

Спустя 10 секунд (15.02.2012 - 20:37) sharki написал(а):
Игорь_Vasinsky
Я тоже потихоньку пытаюсь уйти от пыха на JAVA (jsp и т.п)...
Не чувствую в пыхе четкости, как в других строго типизированных языках)

Спустя 13 секунд (15.02.2012 - 20:37) nugle написал(а):
m4a1fox
только что же указали, что так не делается проверка if(!$_SISSION), делается проверка либо на пустоту, либо на существование, в твоем случае на существование

Цитата
Мы говорим об адекватном проекте

Ну я сам то только так делаю, а то у меня всегда нотайсы были бы)

Цитата
Так работает PHP, поэтому после заголовка продолжится дальнейшая работа скрипта.

Мда, а если сделать к примеру редирект яваскриптом? то дальше выполняться не будет скрипт?

Спустя 2 минуты, 57 секунд (15.02.2012 - 20:40) m4a1fox написал(а):
nugle
Цитата
в твоем случае на существование

Ну... если нет какой, то нафиг.

Спустя 3 минуты, 12 секунд (15.02.2012 - 20:43) inpost написал(а):
nugle
Почему нет? Формируется на сервер страницы HTML, она отправляется в полноценном виде юзеру. JS обрабатывается у клиента smile.gif
Вижу, хромает теория работы PHP, JS smile.gif

Спустя 26 секунд (15.02.2012 - 20:43) Игорь_Vasinsky написал(а):
да, не php вещь.

Спустя 2 минуты, 32 секунды (15.02.2012 - 20:46) nugle написал(а):
inpost
Цитата
Вижу, хромает теория работы PHP, JS

Да ты меня просто с этим header в ступор ввел, ну значит надо если делать редирект, то через джаваскрипт
Цитата
Ну... если нет какой, то нафиг.

Поставь error_reporting со значением E_ALL и поймешь, по всему сайту вылезут нотайсы

Цитата
да, не php вещь.

Ахах, что это за ответ, запятые угарно расставлены)

Спустя 2 минуты, 14 секунд (15.02.2012 - 20:48) inpost написал(а):
nugle
JS не поможет, потому что мы обращаемся к серверу на уровне Аякса. Редирект на JS вообще никаким боком не поможет smile.gif
Мы же всё ещё в теме smile.gif

Спустя 1 минута, 14 секунд (15.02.2012 - 20:49) Игорь_Vasinsky написал(а):
действительно biggrin.gif

во как надо было

Цитата
php вещь!

Спустя 1 минута, 19 секунд (15.02.2012 - 20:51) inpost написал(а):
Игорь_Vasinsky
biggrin.gif

Спустя 26 секунд (15.02.2012 - 20:51) m4a1fox написал(а):
inpost
Цитата
Мы же всё ещё в теме

Да да да...

Цитата
Поставь error_reporting со значением E_ALL и поймешь, по всему сайту вылезут нотайсы

С чего это????
А если так?

if(!isset($_SESSION['login'])){
exit();
}

Спустя 1 минута, 17 секунд (15.02.2012 - 20:52) inpost написал(а):
m4a1fox
так уже норм.

Спустя 2 минуты, 1 секунда (15.02.2012 - 20:54) nugle написал(а):
inpost
я конечно верю, но когда поставлю винду сам проверю)

Спустя 59 секунд (15.02.2012 - 20:55) m4a1fox написал(а):
inpost
Так, что бы в основах разобрался....
Вот это

if(!$_SESSIOn['login']){
exit();
}

не равно

if(!isset($_SESSIOn['login'])){
exit();
}

Спустя 3 минуты, 1 секунда (15.02.2012 - 20:58) inpost написал(а):
if($var) - проверка на БУЛЕАН. $var должна быть либо TRUE, либо FALSE. В ввиду отсутствия её у тебя проверка становится такой: if() - и ошибка.
isset() - возвращает TRUE || FALSE в зависимости от существования переменной, и тогда в условие попадает уже: if(isset($var)) == if(true) || if(false).
С empty тоже самое, функция возвращает true-false, а условие IF и делает проверку на БУЛЕАН.
Если переменной не существует, то она не может быть ни TRUE, ни FALSE, её не существует просто напросто.

Спустя 2 минуты, 52 секунды (15.02.2012 - 21:01) m4a1fox написал(а):
inpost
Цитата
if($var) - проверка на БУЛЕАН. $var должна быть либо TRUE, либо FALSE. В ввиду отсутствия её у тебя проверка становится такой: if() - и ошибка.
isset() - возвращает TRUE || FALSE в зависимости от существования переменной, и тогда в условие попадает уже: if(isset($var)) == if(true) || if(false).
С empty тоже самое, функция возвращает true-false, а условие IF и делает проверку на БУЛЕАН.
Если переменной не существует, то она не может быть ни TRUE, ни FALSE, её не существует просто напросто.

Спасибо. Теперь понял окончательно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.