За последние 24 часа нас посетили 62090 программистов и 1788 роботов. Сейчас ищут 855 программистов ...

Почему не обрабатывает php ф-ии

Тема в разделе "Прочие вопросы по PHP", создана пользователем Verbal, 25 янв 2012.

  1. Verbal

    Verbal Активный пользователь

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    Дело в том что как бы php файлы читает ну если ток видет в них <? такие символы либо игнорит либо выводит без обработки, что надо сделать если написан вот такой движок что бы обробатывало норм php сессии
    index.php
    Код (Text):
    1. <? 
    2.     // --- Отсечение TRACE метода и глобальных параметров
    3.     if($_SERVER['REQUEST_METHOD'] == 'TRACE'){ die('Bad Request.'); }
    4.     if(isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])){ die('Bad Request.'); }
    5.     if(!is_array($GLOBALS)){ die('Bad Request.'); }
    6.  
    7.     # - Подключаем API функции
    8.     include('core/api.php');
    9.  
    10.     # - Подключение менеджера шаблонов
    11.     include('core/template.php');
    12.     $_TPL = new clsTemplateManager();
    13.    
    14.    
    15.    
    16.     # - Получаем имя запрашиваемой страницы
    17.     $RQST_PAGE = isset($_GET['page']) ? $_GET['page'] : 'index';
    18.    
    19.     # - Фильтруем имя страницы
    20.     $RQST_PAGE = str_replace('..', '', $RQST_PAGE);
    21.     if(!file_exists('pages/'.$RQST_PAGE.'.php')) $RQST_PAGE = 'index';
    22.    
    23.     # - Читаем страницу.
    24.     $PageBuffer = API_ReadFile('pages/'.$RQST_PAGE.'.php');
    25.        
    26.     # - Получаем положение страницы из первой строчки и отрезаем её от файла контента
    27.     $NewLinePos = strpos($PageBuffer, "\n");
    28.     $Location   = substr($PageBuffer, 0, $NewLinePos);
    29.     $PageBuffer = substr($PageBuffer, $NewLinePos);
    30.    
    31.     # - Собираем страницу и отдаём пользователю
    32.     echo $_TPL->assembleTemplateEx(array(
    33.         'site.title'    => 'IT-News',               # - Заголовок сайта
    34.         'site.content'  => $PageBuffer,                     # - Контент страницы
    35.         'site.location' => ($Location),     # - Строка места нахождения
    36.     ), 'index');
    37.  
    38. ?>
    api.php
    Код (Text):
    1. <?php
    2.  
    3.     // ------------------------------------------------------
    4.     // --- Функция обработки строки перед выводом
    5.     // ------------------------------------------------------
    6.     function API_EscapeString($Buffer, $NewLine = false){
    7.         $Buffer = phpspecialchars(stripslashes($Buffer));
    8.         return $NewLine ? nl2br($Buffer) : $Buffer;
    9.     }
    10.  
    11.     // ------------------------------------------------------
    12.     // --- Чтение файла
    13.     // ------------------------------------------------------
    14.     function API_ReadFile($FileName){
    15.         $Buffer = '';
    16.         if(file_exists($FileName)):
    17.             $hFile = @fopen($FileName, 'r');
    18.             if($hFile):
    19.                 $Buffer = fread($hFile, filesize($FileName));
    20.                 fclose($hFile);
    21.             endif;
    22.         endif;
    23.         return $Buffer;
    24.     }
    25.    
    26.  
    27.    
    28. ?>
    template.php
    Код (Text):
    1. <?php
    2. /**
    3.  * Класс управления дизайном
    4.  *
    5.  */
    6. class clsTemplateManager{
    7.        
    8.     var $_ModName = '';     # - Имя модуля
    9.    
    10.     /**
    11.      * Загрузка шаблона
    12.      *
    13.      * @param String $TemplateName
    14.      * @return String
    15.      */
    16.     function loadTemplate($TemplateName, $FromModule = true){
    17.         $TemplateName = str_replace('..', '', $TemplateName);
    18.         $Buffer = API_ReadFile('design/'.(!empty($this->_ModName) && $FromModule ? 'modules/'.$this->_ModName.'/' : '').$TemplateName.'.tpl');
    19.         return empty($Buffer) ? 'Template not found or empty' : $Buffer;
    20.     }
    21.  
    22.     /**
    23.      * Сборка шаблона из строки
    24.      *
    25.      * @param String $Pattern
    26.      * @param String $Buffer
    27.      */
    28.     function assembleTemplate($Pattern, $Buffer){
    29.         foreach ($Pattern as $Key => $Value):
    30.             $Buffer = str_replace('{'.$Key.'}', $Value, $Buffer);
    31.         endforeach;
    32.         return $Buffer;
    33.     }
    34.    
    35.     /**
    36.      * Сборка шаблона с загрузкой из файла
    37.      *
    38.      * @param String $Pattern
    39.      * @param String $FileName
    40.      */
    41.     function assembleTemplateEx($Pattern, $FileName, $FromModule = true){
    42.         return $this->assembleTemplate($Pattern, $this->loadTemplate($FileName, $FromModule));
    43.     }
    44.    
    45.    
    46.     /**
    47.      * Установка активного модуля
    48.      *
    49.      * @param String $Name
    50.      */
    51.     function setMod($Name){
    52.         $this->_ModName = $Name;
    53.     }
    54.    
    55. }
    56. ?>
    Если что там все везде пояснино что такое и для чего надо, может все же подскажите что сделать что бы не просто обробатывал php файлы а ещё и сессии в них?
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    В этих трёх приведённых файлах никакой работы с сессиями не вижу. Ты имеешь в виду, что если в шаблон написать
    <?php
    // и тут PHP код
    ?>
    то не работает? Или о чём ты вообще?
     
  3. Verbal

    Verbal Активный пользователь

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    да, вот какую ф-ию надо вести что бы заработали сессии в шаблонах, можно как-то это сделать и исправить?