#session #codeigniter
#сеанс #codeigniter
Вопрос:
существует php-файл, который я вызываю с помощью ajax через представление. xmlhttp.open(«ПОЛУЧИТЬ»,»/my/path/to/background_file.php «);
этот php-файл выполняет какой-то фоновый процесс, и, следовательно, мне не нужен какой-либо контроллер / представление для этого файла. это независимый файл.
учитывая, что мне не нужен никакой контроллер / представление для этого php-файла, могу ли я получить доступ к переменным сеанса там? как?
где я должен хранить такого рода php-файлы, которым не нужен какой-либо view / controller?
заранее спасибо. я использую CodeIgniter 1.7.2
разработка
Ответ №1:
Если вы хотите получить доступ к объектам в массиве сеансов Codeigniters, я бы посоветовал сделать ваш файл ajax контроллером. Довольно часто создается ajax-контроллер, чтобы вы могли получить доступ к функциональности Codeigniter. Конечно, вам не нужно представление, подключенное к контроллеру, вы просто повторяете json_encode ($data), чтобы вернуть любые требуемые данные.
Комментарии:
1. Я попробую это… и как мне указать путь к этому контроллеру из javascript? …на данный момент я использую этот mlhttp.open(«GET»,»/my/path/to/background_file.php «); … есть ли правильный способ при вызове файла контроллера через javascript?
2. ОК. таким образом, его можно вызвать с помощью ‘<?php echo base_url(); ?>’ ‘/ контроллер / функция’
3. Да, это совершенно верно, при условии, что javascript находится в представлении CI. Если javascript находится в отдельном файле .js, <?php?> не будет работать. Я решаю эту проблему, помещая одну строку javascript в мой вид заголовка: var base_url = ‘<?php echo bse_url(); ?>’; , затем, если у вас есть внешние файлы .js, вы можете использовать base_url ‘контроллер / функция’ для доступа к контроллеру.