[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод из БД html кода, замена [body] на include
BesTime
Борюсь со следующей проблемой, надеюсь здесь найду решение.
В ячейке таблицы Mysql находится следующее:
user posted image
в php документе на сервере вывожу все их ячейки(см. рис выше) мне нужно заменить слово [BODY}, на include("index.php"); Так чтобы ХТМЛ код весь выполнялся, а там где [BODY] выполнялось php действие include.

Подскажите пожалусто как это сделать, очень долго бьюсь над проблемой. Include не хочет выполняться только выводит его как HTML " include("index.php" )"
user posted image



Спустя 8 минут, 41 секунда (4.02.2012 - 10:40) YVSIK написал(а):
это дорого будет !! 5 р!!
вот подсказка!
<body>
<?php include 'index.php';?>
</body>

Спустя 13 минут, 22 секунды (4.02.2012 - 10:53) BesTime написал(а):
YVSIK Вы думаете я этот способ не пробывал? Так вообще нечего не выводит

Спустя 12 минут, 19 секунд (4.02.2012 - 11:06) YVSIK написал(а):
покажи название файла+(.раширение) и его содержание , а вообщем тут неразбери-пойми что это все значит ? для тех у кого плохо со зрением? может!
и сервер работает вообще?
и что есть в базе ? может там тоже ничего, для начала вот это отлично может подойти (по случаю!) пример как красиво все расписано и каждый оператор видно что делает, в коментариях
если ничего не работает надо не кучу разбирать, а наращивать каждый новый оператор и смортреть что работаеет и как работает
ну на худой конец так напиши
<body>
<?php echo '$aboutauthor';?>
</body>

Спустя 1 минута, 55 секунд (4.02.2012 - 11:08) nugle написал(а):
BesTime
так кавычки убери

Спустя 21 минута, 26 секунд (4.02.2012 - 11:29) BesTime написал(а):
user posted image

Спустя 3 минуты, 21 секунда (4.02.2012 - 11:32) BesTime написал(а):
nugle кавычки убирал и ставил, и че только не делал, не выполняет всеравно команду инклюд только выводит ее на экран

Спустя 1 минута, 15 секунд (4.02.2012 - 11:34) BesTime написал(а):
тут подсказывают еще метод eval() но в ячейке должен быть только php код для его работы а мне надо и хтмл и пхп

Спустя 32 секунды (4.02.2012 - 11:34) inpost написал(а):
Эх, советнички... стыдно должно быть, чего голову пудрите человеку :)
Вот:
$var = 'echo 123';

Мне нужно вывести не $var, а 123, как обработать данные, вспоминаем функцию :)

... опоздал... eval называется. :)

Спустя 1 минута, 33 секунды (4.02.2012 - 11:36) inpost написал(а):
BesTime
Начинаешь eval с ?> , а для обработки пишешь НЕ include, а <?php include ''; ?> , в этом и разница.

А в целом, мне не нравится твой подход шаблонизации. Особенно идея хранения СТАТИКИ в БД... это абсурд smile.gif Кто учил - выкинуть того надо... всмысле не человека, а учебник!

Спустя 5 минут, 34 секунды (4.02.2012 - 11:41) YVSIK написал(а):
ну примерно хоть что-то понятно !!
для начала надо изучить вот эти кнопки в редакторе
user posted image
научиться ими работать оформлять свои коды тут а не скинами прикреплять

а что до базы что в базе есть то и выведено, в базе же написано вот это!
<body>
[BODI]
</body>

ВОТ ОНО И ВЫВЕДЕНО !!
не)) лучше начни учить вот это Для самых маленькихтак целый раздел называется это не ругательное название это так тема зовется

Спустя 38 секунд (4.02.2012 - 11:42) BesTime написал(а):
смысл в том что я хочу сделать чтобы пользователь мог полностью изменить шаблон своейй страницы, этим самым в ячейке будет храниться хтмл код его страницы, который он сможет в любой момент менять, да я не по учебникам, мне че взбредет в голову то и делаю=)))

Спустя 1 минута, 6 секунд (4.02.2012 - 11:43) nugle написал(а):
inpost
вот, смотрим
<?php

$text = 'вот короче [body]';

echo $text.'<br />';

$str = str_replace('[body]', include('upload.php'), $text);

echo $str;

upload.php

<?php


return 1;

что видим на экране? правильно, вот короче 1
может я не так задачу понял?

Спустя 3 минуты, 18 секунд (4.02.2012 - 11:46) BesTime написал(а):
Цитата
Начинаешь eval с ?>

этот момент не понял

Спустя 2 минуты, 34 секунды (4.02.2012 - 11:49) inpost написал(а):
1.php
<?php
include '2.php';
$var = 'TEXT {body} TEXT2';
$var = str_replace('{body}', include '2.php',$var);
echo $var;



2.php
<?php
echo '255';


Проверяй.

Спустя 1 минута, 8 секунд (4.02.2012 - 11:50) inpost написал(а):
Выведет:
255255TEXT 1 TEXT2

А должен:
255TEXT 255 TEXT2



Спустя 1 минута, 3 секунды inpost написал(а):
Ну для начала надо попробовать функцию eval smile.gif А так же в строку в начале добавить '?>'.$var
smile.gif

Спустя 6 минут, 5 секунд (4.02.2012 - 11:56) BesTime написал(а):
вы похоже меня не правильно понимаете расскажу на словах.
В test2.php находится
print("example");


Когда в ячейке бд находится только PHP код
include(test2.php);
;

то при отоброжение на странице сайта отображается
example


еслиже в ячейке бд находится html и php коды
<body>аха <br>include("test2,php);</body>


на странице сайта отображается
<body>include("test2,php);</body>


а нужно чтобы отображался и хтмл и пхп
Аха
example

Спустя 48 секунд (4.02.2012 - 11:57) inpost написал(а):
BesTime
Ну так я же говорю, сделай так, как я сказал вместе с функцией eval.

Спустя 9 секунд (4.02.2012 - 11:57) nugle написал(а):
inpost
проверяй)
<?php
$var = include 'upload.php';
echo $var;
$var = 'TEXT {body} TEXT2';
$var = str_replace('{body}', include 'upload.php',$var);
echo $var;


upload.php
<?php
return '255';

Спустя 28 секунд (4.02.2012 - 11:58) BesTime написал(а):
сколько сразу вариантов, начал проверять=)

Спустя 48 секунд (4.02.2012 - 11:58) inpost написал(а):
nugle
upload.php
        <table width="100%" cellpadding="0" cellspacing="0" border="0">
<
tr>
<
td>

</
td>
<
td>

</
td>
</
tr>
</
table>

<
div id="polotno">
<?php echo $content; ?>
<div><?php echo @nl2br($pages_data['pdf']); ?></div>
</
div>
<
div id="komplekt" style="width:1000px; background-color:white; display:none" align="center">


Проверяй! return - неподходит, потому что необходимо СТРАНИЦУ вывести, а не лишь return.

Спустя 2 минуты, 19 секунд (4.02.2012 - 12:01) inpost написал(а):
BesTime
Если тебе не цифру вывести надо, а нормальную страницу, то метод nugle не подходит вообще.
А подходит мой метод через eval.
Настоящий программист, если не умеет пользоваться функцией, учится и читает мануалы по ней. Потом тестирует функцию, а только потом приходит с проблемой, что у него не работает. За 5 минут после получения eval ты написал, что это не подходит, уже успел мануал почитать, протестировать и т.д. и т.п.? Не верю, да и в любом случае мою подсказку тоже не проверил(!!!).
Не жди готовых решений, а пробуй сам. Ответ я выше уже дал.

Спустя 1 минута, 23 секунды (4.02.2012 - 12:02) inpost написал(а):
Ну а если уже пробовал, то показывай код, как ты пробовал.

Спустя 55 секунд (4.02.2012 - 12:03) nugle написал(а):
inpost
а в чем собственно проблема?
 ob_start();  
$content = ob_get_contents();
ob_end_clean();
return $content;

Спустя 53 секунды (4.02.2012 - 12:04) BesTime написал(а):
воо наконецто меня поняли=)))inpost написал как ты сделал вроде все заработало, только однерку какуюто еще выдает

Спустя 52 секунды (4.02.2012 - 12:05) inpost написал(а):
nugle
Вопрос №1. Ты собираешься весь сайт в такой стиль переписывать?
Вопрос №2. А если страница уже где-то ранее используется? И там нет буферизации, а просто всё через echo реализуемо.

Спустя 2 минуты, 9 секунд (4.02.2012 - 12:07) nugle написал(а):
inpost
мда. спорить бесполезно с тобой. Я просто показываю варианты решений.
А если засунуть все в переменную, не прибегая к буферизации, а потом вернуть через return?

Спустя 1 минута, 19 секунд (4.02.2012 - 12:08) BesTime написал(а):
inpost Зря вы так думаете что эту проблему я не пытался решить сам, второй день уже ей озабочен, много функций перепробывал, и как вы видете всеже нашел eval но не смог правильно применить, Вижу в итоге что в str_replace не правильно команду инклюд прописывал. А что насчет хранения данных в бд вы говорили? Что не так?

Спустя 2 минуты, 7 секунд (4.02.2012 - 12:10) inpost написал(а):
nugle
Независимую страницу можно подключить через eval куда проще, не трогая её содержание вообще. Твоим способом через буферизацию тоже можно, проблема лишь в том, что придется разграничивать и создавать лишние правила на внутренних страницах, ставить условие, открыто ли оно адекватным путём, или вот таким кривым через str_replace.
Теперь представь, что у тебя сайт крупный, там 500 страниц, ты в каждую из страниц будешь в начало и конец строки пихать этот код? Не задолбаешься забивать сайт лишним содержанием?
Я уверен, что ты такое не используешь в своих проектах, поэтому сказал так, чтобы решить, а не решить оптимальнее.

BesTime
Ну так покажи, как через eval делал.

Спустя 4 минуты, 24 секунды (4.02.2012 - 12:15) BesTime написал(а):
пытался просто то что получил из бд допустим
$examle=$row["exapmle"];
;

$example=str_replace("{body}","include("test2.php");","$example&q uot;);

eval($example);

Спустя 1 минута, 39 секунд (4.02.2012 - 12:16) inpost написал(а):
Так я выше показал, как исправить. Попробуй сделать то, что я сказал.

Спустя 2 минуты, 12 секунд (4.02.2012 - 12:19) BesTime написал(а):
inpost я же написал выше что все получилось, большое спасибо всем за помощь кто отреогировал на мою тему

Спустя 3 минуты, 29 секунд (4.02.2012 - 12:22) nugle написал(а):
inpost
конечно я так не делаю)
но просто как у ТС написано, что [body], логичнее догадаться,что напрямую его открывать не будут)

Спустя 4 минуты, 58 секунд (4.02.2012 - 12:27) BesTime написал(а):
только не пойму он мне выводит текст из документа и еще цифру 1 пишет

Спустя 6 минут, 32 секунды (4.02.2012 - 12:34) nugle написал(а):
Напиши полностью весь код, я у себя посмотрю
только в переменные строчки забей

Спустя 1 минута, 24 секунды (4.02.2012 - 12:35) BesTime написал(а):
короче косяк сначало выводит пхп код а потом только хтмл
1.php

<?php
include '2.php';
$var = 'TEXT {body} TEXT2';
$var = str_replace('{body}', include '2.php',$var);
echo $var;





2.php

<?php
echo '255';


lДолжен вывести
TEXT 255 TEXT2


а выводит
 255 TEXT 1 TEXT2

Спустя 1 минута, 48 секунд (4.02.2012 - 12:37) BesTime написал(а):
<?php
$var = "TEXT {body} TEXT2";
$var = str_replace('{body}', include 'test2.php',$var);
echo $var;
?>


test2.php
echo 123;

Спустя 3 минуты, 39 секунд (4.02.2012 - 12:40) nugle написал(а):
BesTime
тебе вместо нужно использовать return, использовать файл как функцию
<?php
$var = 'TEXT {body} TEXT2';
$var = str_replace('{body}', include '2.php',$var);
echo $var;

2.php

<?php
return '255';

Спустя 5 минут (4.02.2012 - 12:45) BesTime написал(а):
но мне в тесте2 ненадо использовать только числа, там еще один include

Спустя 2 минуты, 56 секунд (4.02.2012 - 12:48) nugle написал(а):
положи его в переменную и верни переменную через return

Спустя 4 минуты, 10 секунд (4.02.2012 - 12:52) BesTime написал(а):
так?
$one="include(\"/home/users1/b/bestime/domains/work-link.ru/blogbody.php\");"
return"$one";

если да то не работает
Parse error: syntax error, unexpected T_RETURN in /home/users1/b/bestime/domains/lol.work-link.ru/blogbody.php on line 4

Спустя 5 минут, 51 секунда (4.02.2012 - 12:58) inpost написал(а):
Я устал... хочешь готовенькое не думая, вот, получай
$var = str_replace('{body}', '<?php include \'2.php\'; ?>',$var);

Сложно? Я выше написал, чтобы ты сделал именно так...
А ещё выше написал, чтобы ты eval($var) написал не так, а так: eval('?>'.$var)...

Спустя 2 минуты, 47 секунд (4.02.2012 - 13:01) BesTime написал(а):
а без реторнов никак нельзя? а то у меня большая цепочка инклюдов

Спустя 1 минута, 44 секунды (4.02.2012 - 13:03) YVSIK написал(а):
Свернутый текст
ой мама)) user posted image

Спустя 5 минут, 5 секунд (4.02.2012 - 13:08) inpost написал(а):
BesTime
Ты пиши, кому ты обращаешься. Потому что в моём примере ритёны не нужны.

Спустя 2 минуты, 6 секунд (4.02.2012 - 13:10) BesTime написал(а):
inpost хорошо извеняюсь, я в твоем примере ненашел где ты писал eval()

Спустя 18 минут, 46 секунд (4.02.2012 - 13:29) BesTime написал(а):
ААА во все гуд, спасибо

Спустя 6 минут, 30 секунд (4.02.2012 - 13:35) inpost написал(а):
BesTime
А теперь первую страницу и там как раз этот ответ есть smile.gif

Спустя 2 минуты, 27 секунд (4.02.2012 - 13:38) BesTime написал(а):
да я туплю=) просто один одно пишет, другой другое, вот и тупка начинается че к чему=)

Спустя 3 часа, 53 минуты, 54 секунды (4.02.2012 - 17:32) johniek_comp написал(а):
если я правильно понял: что юзер будет изменять хтмл своей страницы...
так а если пользователь напишет:
<script>
alert('Вы все любители булочек!');
</
script>

и htmlspecialchars() не поможет, слетит все
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.