Но мой интерес превыше моего терпения. Вопрос следующий:
Каким образом реализовать отдачу запроса PHP скрипта для авторизованных пользователей? Cookie или другие альтернативы?
Спустя 9 минут, 51 секунда (15.02.2012 - 19:43) Игорь_Vasinsky написал(а):
а сессии? смотря как ты определяешь что юзер авторизирован, либо как все люди - по сессии (или кукам ) или как то по другому.
Спустя 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 и все
В скрипте проверь, авторизован или нет, если нет 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 написал(а):
не понял... что это было то
можно переадресовывать, модно выводить сообщение, можно просить авторизироваться или зарегистрироваться - всё зависит от полёта фантазии.
можно переадресовывать, модно выводить сообщение, можно просить авторизироваться или зарегистрироваться - всё зависит от полёта фантазии.
Спустя 3 минуты, 2 секунды (15.02.2012 - 20:17) m4a1fox написал(а):
Игорь_Vasinsky
Цитата |
можно переадресовывать, модно выводить сообщение, можно просить авторизироваться или зарегистрироваться - всё зависит от полёта фантазии. |
Ну да... а переадресация это как пример...
Спустя 1 минута, 31 секунда (15.02.2012 - 20:19) nugle написал(а):
m4a1fox
просто если ты переадресовываешь, то зачем exit() в конце тогда?
он у тебя все ушел со страницы, скрипт по-любому дальше не уйдет.
Игорь_Vasinsky
Но это да, но я думаю не нужно редирект через аякс, так как пользователь никуда не заходит в запрещенные страницы, просто отсылается запрос, в тайне от пользователя и если запрос удачен, то пользователь видет результа, а если нет, то на нет и суда нет
просто если ты переадресовываешь, то зачем exit() в конце тогда?
он у тебя все ушел со страницы, скрипт по-любому дальше не уйдет.
Игорь_Vasinsky
Но это да, но я думаю не нужно редирект через аякс, так как пользователь никуда не заходит в запрещенные страницы, просто отсылается запрос, в тайне от пользователя и если запрос удачен, то пользователь видет результа, а если нет, то на нет и суда нет
Спустя 1 минута, 31 секунда (15.02.2012 - 20:20) inpost написал(а):
nugle
Уходит дальше. И обрабатывается до конца, если не напишешь exit();
Уходит дальше. И обрабатывается до конца, если не напишешь exit();
Спустя 39 секунд (15.02.2012 - 20:21) m4a1fox написал(а):
nugle
Цитата |
просто если ты переадресовываешь, то зачем exit() в конце тогда? |
Ды так научили...
Спустя 45 секунд (15.02.2012 - 20:22) Игорь_Vasinsky написал(а):
да лан. пишется обычная аторизация и вешается аяксом.
аякс всеголишь плющечка. работает - монстр PHP
exit() вешают для подстраховки, если вдруг редирект не получился.
аякс всеголишь плющечка. работает - монстр PHP
exit() вешают для подстраховки, если вдруг редирект не получился.
Спустя 21 секунда (15.02.2012 - 20:22) m4a1fox написал(а):
Цитата |
Уходит дальше. И обрабатывается до конца, если не напишешь exit(); |
Спасибо inpost, а то я знаю как правильно делается...а почему - не знаю. Теперь то хоть знать буду, надо только запомнить это.
Спустя 59 секунд (15.02.2012 - 20:23) inpost написал(а):
Игорь_Vasinsky
exit для того, чтобы не выполнялся код ниже. А если не напишешь exit, то выполнение будет идти до конца скрипта, а если у тебя там ещё лишние данные, то из-за этого лишняя нагрузка.
exit для того, чтобы не выполнялся код ниже. А если не напишешь exit, то выполнение будет идти до конца скрипта, а если у тебя там ещё лишние данные, то из-за этого лишняя нагрузка.
Спустя 1 минута, 30 секунд (15.02.2012 - 20:25) nugle написал(а):
inpost
Ам, не в этом смысл был, а в том, что результата пользователь все равно не увидит.
Я бы просто exit() оставил без перенаправлений
Ам, не в этом смысл был, а в том, что результата пользователь все равно не увидит.
Я бы просто exit() оставил без перенаправлений
Спустя 2 минуты (15.02.2012 - 20:27) inpost написал(а):
А, ну для аякс запроса то да, зачем там переадресация нужна. Просто exit.
А проверку нельзя делать на:
if($_SESSION), надо isset или empty.
А проверку нельзя делать на:
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
Мы говорим об адекватном проекте
Игорь_Vasinsky
Если у тебя apache, или не апач, но редирект глабальный, то всё, что сделает скрипт от header() - отправит ЗАГОЛОВОК в браузер. При этом он может и другие заголовки отправлять, а ещё данные будет отправлять.
Браузер получит заголовок "переадресации" и сам включит переадресацию, если там разрешена она. И отправит новый запрос уже на новую страницу.
Так работает PHP, поэтому после заголовка продолжится дальнейшая работа скрипта.
Мы говорим об адекватном проекте
Игорь_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 и т.п)...
Не чувствую в пыхе четкости, как в других строго типизированных языках)
Я тоже потихоньку пытаюсь уйти от пыха на JAVA (jsp и т.п)...
Не чувствую в пыхе четкости, как в других строго типизированных языках)
Спустя 13 секунд (15.02.2012 - 20:37) nugle написал(а):
m4a1fox
только что же указали, что так не делается проверка if(!$_SISSION), делается проверка либо на пустоту, либо на существование, в твоем случае на существование
только что же указали, что так не делается проверка if(!$_SISSION), делается проверка либо на пустоту, либо на существование, в твоем случае на существование
Цитата |
Мы говорим об адекватном проекте |
Ну я сам то только так делаю, а то у меня всегда нотайсы были бы)
Цитата |
Так работает PHP, поэтому после заголовка продолжится дальнейшая работа скрипта. |
Мда, а если сделать к примеру редирект яваскриптом? то дальше выполняться не будет скрипт?
Спустя 2 минуты, 57 секунд (15.02.2012 - 20:40) m4a1fox написал(а):
nugle
Цитата |
в твоем случае на существование |
Ну... если нет какой, то нафиг.
Спустя 3 минуты, 12 секунд (15.02.2012 - 20:43) inpost написал(а):
nugle
Почему нет? Формируется на сервер страницы HTML, она отправляется в полноценном виде юзеру. JS обрабатывается у клиента
Вижу, хромает теория работы PHP, JS
Почему нет? Формируется на сервер страницы HTML, она отправляется в полноценном виде юзеру. JS обрабатывается у клиента
Вижу, хромает теория работы PHP, JS
Спустя 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 вообще никаким боком не поможет
Мы же всё ещё в теме
JS не поможет, потому что мы обращаемся к серверу на уровне Аякса. Редирект на JS вообще никаким боком не поможет
Мы же всё ещё в теме
Спустя 1 минута, 14 секунд (15.02.2012 - 20:49) Игорь_Vasinsky написал(а):
действительно
во как надо было
во как надо было
Цитата |
php вещь! |
Спустя 1 минута, 19 секунд (15.02.2012 - 20:51) inpost написал(а):
Игорь_Vasinsky
Спустя 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, её не существует просто напросто.
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, её не существует просто напросто. |
Спасибо. Теперь понял окончательно.