.load и запрет от прямого доступа

192
19 сентября 2018, 06:40

Хочу подгрузить php файл, но данный файл у меня закрыт глобальной переменной от прямого доступа.

Если ее убрать, то все прекрасно работает. Возможно ли изменить переменную перед открытием?

<div class="litebox_here">  
</div>
<script>  
$(".open").click(function(){
    $('.litebox_here').load('/lightbox/page.php');
});  
</script>

page.php

<?php defined('STOP') or die('No access to the file.') ?>
Answer 1

Вызывайте из корневого файла, если закрываете внутренние.

index.php:

define(STOP, true);
if($_GET['ajax'] == "page"){
    include_once('/lightbox/page.php');
    die;
}
...

И вызов тогда будет /index.php?ajax=page

Или не закрывайте те файлы вообще, которые используются для подгрузки AJAX, поскольку раз они должны вызываться, значит и пользователь может зайти на файл напрямую. Тут уже обрабатывайте файл так, чтобы пользователь не увидел чего-то лишнего или не мог навредить.

Если Вы хотите всё же, чтобы строго файл по AJAX открывался, можете поставить ворота в поле (Ваш файл page.php):

<?php
if($_GET['ajax'] != "true"){
    defined('STOP') or die('No access to the file.');
}
...

Но это не вариант. Те, кому нужно будет, раскопают код и допишут параметр, а следовательно и получат доступ к просмотру.

READ ALSO
PHP DateTime локальное время

PHP DateTime локальное время

Подскажите как установить локальное время в библиотеке DateTime

170
WordPress виджет сохранение значения select

WordPress виджет сохранение значения select

Значения в Select (вижете) считываются с файлаjson

159