Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Автоматическое обновление {include file="blablabla.php"}

Автоматическое обновление {include file="blablabla.php"}


     03.03.2013    Общие вопросы по PHP    2912

вопрос
Здравствуйте, имеется php скрипт вставлен на главную через {include file="blablabla.php"} нужно чтобы файл blablabla.php обновлялся каждые 30 сек.

На в файле стоит if( ! defined( 'DATALIFEENGINE' ) ) { die( "Ops!" ); }, если не через инклуд и без защиты то можно это сделать через JS:
function show(){$.ajax({url:"blablabla.php",cache:false,success:function(html){$("#cont").html(html)}})}$(document).ready(function(){show();setInterval('show()',30000)});
Подскажите пожалуйста как сделать что представлено в JS только для инклуд. Или посоветуйте другой вариант защиты файла blablabla.php

Ответа пока нет


Комментарии пользователей (1)

BR0kEN
163

235 | 275

BR0kEN - 3 марта 2013 14:31 - Эксперт

Если файл находиться в /engine/modules/, то советовал бы переместить в /engine/ajax/ и удалить из него строку:
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Ops!" ); }
Затем, в начале файла разместить:
@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE);

define('DATALIFEENGINE', true);
define('ROOT_DIR', substr(dirname(__FILE__), 0, -12));
define('ENGINE_DIR', ROOT_DIR . '/engine');

if (!defined($_POST['define'])) die('Hacking attempt!');
И в запросе передавать доп. параметр define, с установленным значением константы (в нашем случае - DATALIFEENGINE).
function show(){
    $.ajax({
        type:'POST',
        url:"file.php",
        data:{define:'DATALIFEENGINE'},
        cache:false,
        success:function(data){
            $('#cont').html(data);
        }
    });
}

jQuery(document).ready(function($){
    show();
    setInterval('show()', 30000);
});
Также важно не забывать инклудить необходимые компоненты системы, данные из которых понадобятся для полноценной работы вашего расширения.

Кстати, если JS код ваш, то рекомендую пользоваться точкой с запятой (;) ибо отсутствие этого знака порождает уйму проблем в дальнейшем.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы