php скрипт обработки ajax запроса.

savsoft

Всем привет,

Есть простая таблица. В которой есть выпадающий список для смены статуса. Запись происходит через запрос ajax/jquery в php скрипт. В php авторизация сделана через сессии и в каждом скрипте в начале вызывается функция проверки авторизации, в которой стоит редирект на страницу ввода пароля, если сессия завершилась. И в таком случае ajax запрос ошибку не возвращает, и запись в базу не происходит. Как лучше исправить?

1. Сделать в php скриптах, которые обрабатывают ajax запросы, проверку авторизации без редиректа на страницу авторизации;
2. Сделать при авторизации чекбокс — запомнить меня, и как это реализовать?

Толкните в нужном направлении.

Спасибо.

 

ADSoft

непонятно что именно вы хотите исправить, но судя по то п 2. — у вас проблема с реализацией авторизации, она у вас сессию не использует )))

 

savsoft

Использует, и в сессии хранится идентификатор пользователя. При каждом выполнении скрипта вызывается функция проверки, и если сессия завершилась, то перекидывает на страницу входа на сайт. Я так везде делал, но если скрипт вызывается через ajax, то переход на страницу логина обрывает выполнение скрипта, и ошибки нет. Но в базу ничего не пишется.

 

ADSoft

Ну логично…
ajax скрипт не должен ничего никуда редиректить — он всегда должен ответ давать

покажите кусок кода в ajax скрипте, который у вас проверяет авторизацию.

По п.2 — нужное направление — куки

 

savsoft

Вызов этой функции в начале каждого скрипта

Код (Text):
  1.  
  2.   function confirm_logged_in() {
  3.      global $connection;
  4.    
  5.      if (!isset($_SESSION[«user_login»])) {
  6.        redirect_to(«login.php»);
  7.      }
  8.    
  9.    }

Если скрипты вызывается не через ajax, то все работало. А тут начал использовать ajax и наступил на грабли. Думаю попробовать переделать функцию в

Код (Text):
  1.   function confirm_logged_in($mode=null) {
  2.      global $connection;
  3.  
  4.      if (!isset($_SESSION[«user_login»])) {
  5.        if ($mode == 1) {
  6.          return 1;
  7.        } else {
  8.          redirect_to(«login.php»);
  9.        }
  10.      } else {
  11.        return 0;
  12.      }
  13.  
  14.   }

И вызывать функцию из скриптов, вызываемых через ajax с параметром 1, и если функция возвращает ошибку, то возвращать ошибку, типа сессия устарела, перелогинтесь.

 

ADSoft

направление верное

 

savsoft

Спасибо

 

spartacusss

ребят помогите на буксе есть доска почета при размещении своего аватара он выдает такую ошибку помогите я уже весь интернет облазил не знаю что делать и к кому обращаться вот скрин шот https://prnt.sc/zggl04 не судите строго я не знаю даже в какую тему с этим обращаться

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *