Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2014, 00:36   #1
Eudgene
Новичок
Джуниор
 
Регистрация: 03.08.2014
Сообщений: 1
По умолчанию Выдает комментарий вместо php

Здравствуйте!

Помогите решить проблему.

codes.php
PHP код:
<?php  
$defa 
'Да';
include 
$_SERVER['DOCUMENT_ROOT']."/admin/settings/db_connect.php";
$db mysql_connect ($dbhost$dbusername$dbpass);
mysql_select_db ($dbusername,$db);
  
$query "SELECT `id`, `dir`, `def` FROM `templates` WHERE def='$defa'"
  
$res mysql_query$query ); 
  
$item mysql_fetch_array$res ); 
  
// загрузка в переменные, в виде строк, содержимого страниц и меню
  
$LOGOHEADER file_get_contents('admin/settings/tpl/'.$item['dir'].'/scripts/LOGOHEADER.php');
  
$MENUHEADER file_get_contents('admin/settings/tpl/'.$item['dir'].'/scripts/MENUHEADER.php');
  
$MENULEFT file_get_contents('admin/settings/tpl/'.$item['dir'].'/scripts/MENULEFT.php');

// функция по перемещению и замене строк в частях шаблона на содержимое переменных 
function repl ($path)
{
// определение глобальных переменных
global $LOGOHEADER,$MENUHEADER,$MENULEFT;

// чтение файла в виде строки в переменную $temp
$temp file_get_contents($path);
 
// перемещение участков в строке загруженной в $temp 
$temp str_replace "%LOGOHEADER%"$LOGOHEADER$temp );
$temp str_replace "%MENUHEADER%"$MENUHEADER$temp );
$temp str_replace "%MENULEFT%"$MENULEFT$temp );

// вывод измененной строки содержащейся в переменной $temp
echo ("$temp");
}
?>
php/header.php
PHP код:
<?php
$defa 
'Да';
include 
$_SERVER['DOCUMENT_ROOT']."/admin/settings/db_connect.php";
$db mysql_connect ($dbhost$dbusername$dbpass);
mysql_select_db ($dbusername,$db);
  
$query "SELECT `id`, `dir`, `def` FROM `templates` WHERE def='$defa'"
  
$res mysql_query$query ); 
  
$item mysql_fetch_array$res ); 
  
// Строка для уменьшения уровня предупреждений сервера Denwer
Error_Reporting(E_ALL & ~E_NOTICE);

// строки необходимые для выполнения любых операций по методам Get и Post
if(isset($_GET)) {foreach ($_GET as $key=>$val) {$$key=$val;}}
if(isset(
$_POST)){foreach ($_POST as $key=>$val){$$key=$val;}}


include(
$_SERVER['DOCUMENT_ROOT'].'/admin/settings/tpl/'.$item['dir'].'/php/codes.php');
repl ($_SERVER['DOCUMENT_ROOT'].'/admin/settings/tpl/'.$item['dir'].'/tpl/header.php');
?>
tpl/header.php
PHP код:
<div class="header_a clearfix">
<
div id="logo">
%
LOGOHEADER%
</
div>
<
div id="menu">
%
MENUHEADER%
</
div>
</
div
script/LOGOHEADER.php
PHP код:
<?php
include $_SERVER['DOCUMENT_ROOT'].'/admin/settings/db_connect.php';
$db mysql_connect ($dbhost$dbusername$dbpass);
mysql_select_db ($dbusername,$db);
  
$query 'SELECT `url`, `alt` FROM `logo` WHERE 1'
  
$res mysql_query$query ); 
  
$logo mysql_fetch_array$res ); 
  echo (
'<a href="http://'.$_SERVER['SERVER_NAME'].'"><img src="'.$logo['url'].'" alt="'.$logo['alt'].'"></a>');
?>
По сути это шаблонизатор (готовый, например smarty и т.п, использовать не вариант)

Все работает до тех пор, пока не происходит вывод LOGOHEADER.php. PHP код почему то интерпретируется как комментарий к html (т.е. <!--?php ... -->)

Помогите найти ошибку.
Eudgene вне форума Ответить с цитированием
Старый 03.08.2014, 15:33   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

В ДНК
Если хотите чтоб выполнялся php - include, request и иже с ними.
То что вы содержимое php файлов прочли и вывели через echo - он и поймет толькоикак вывод текста!!!!! Не более
ADSoft вне форума Ответить с цитированием
Старый 03.08.2014, 21:09   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
вывод текста!!!!! Не более
Тихо, тихо, друже, отдышись)))
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 10.08.2014, 03:54   #4
Аlex
Форумчанин
 
Регистрация: 16.11.2006
Сообщений: 175
По умолчанию

чувак, я ж тебе на ответах писал в чоЪм ошибка ) )
чайник юзеру не товарищ, а сам себе враг...
Аlex вне форума Ответить с цитированием
Старый 10.08.2014, 11:35   #5
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

опять пишут ГК все таки mysql инъекции то не дремлют, дай мне url сайта

хотя если $defa не используется в пост или get запросе то не чего страшного но я бы так не стал писать, и вам не советую

Последний раз редактировалось wanes101; 10.08.2014 в 11:47.
wanes101 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вместо русского текста символы - после переустановки Windows в файлах мусор вместо русских букв. МАРИННН Windows 14 13.10.2013 08:53
GetNameInfo() выдает мусор вместо IP хоста malor Работа с сетью в Delphi 1 22.10.2012 00:44
комментарий // c++ taip Помощь студентам 1 15.06.2010 21:00
JS вместо PHP Asteroid JavaScript, Ajax 1 05.12.2008 15:44