Сценарий:
1) логин. php проверяет имя пользователя и пароль и устанавливает сеанс с идентификатором пользователя
$_SESSION['id'] = $id;
2) datatables / jquery вызывает действие . php файл для заполнения таблицы данными
"ajax":{
url:"action.php",
type:"POST",
data:{action:'listTable'},
dataType:"json"
},
3) действие. php файл вызывает функцию listTable ()
include('table.php');
$table = new table();
$table->listTable();
4) функцию listTable ( таблица. php) возвращает все данные, которые попадают в таблицу данных
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => $numRows,
"recordsFiltered" => $numRows,
"data" => $tableData
);
echo json_encode($output);
5) данные были выбраны с помощью команды sql и помещены в переменную tableData
В этом случае все работает нормально.
Идеи:
Я хотел получить доступ к переменной сеанса в команде sql select. Это невозможно из-за действия jquery /. php api. Это полные разные файлы и не имеют доступа к этому сеансу. Можно установить идентификатор пользователя в скрытом поле формы, но это не безопасно и легко манипулировать. Файл cook ie также редактируется пользователем. Кроме того, Javascript не может прочитать переменные сеанса на стороне сервера.
Вопрос:
Как я могу использовать / получить доступ к этой php переменной сеанса в этом сценарии?
Обновление:
Это тоже не работает: /
обзор. php
$userID = $_SESSION['id'];
data. js
"ajax":{
url:"action.php",
type:"POST",
data:{userID:userID, action:'listTable'},
dataType:"json"
},
table. php
$userID = $_POST["userID"];