Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнение кода полученного из запроса к БД 
:(
    Опции темы
ShamanVoodoo
Дата 25.10.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: -1
Всего: -3



При получении кода из бд мне требуется его выполнить, скрипту должны быть видны внешние переменные.
в общем нужен какой-то аналог include(), но только чтобы результат не выводился тут же на экран а записывался в файл
PM MAIL ICQ   Вверх
vasac
Дата 25.10.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



eval, ob_start, мануал, мануал, мануал...
PM WWW   Вверх
ShamanVoodoo
Дата 25.10.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: -1
Всего: -3



а можно пример? smile 

Допустим я получил вот такой код из БД в переменую $str:
Код

<? 
echo "тестим...<br>"; 
$k="43434";
echo "$k<br>pages_head-".$inf_mas['pages_head'];
?>


$k-внутренняя
$inf_mas['pages_head']-внешняя переменная

как выполнить этот запрос и вывести его на экран?

Это сообщение отредактировал(а) ShamanVoodoo - 25.10.2007, 16:14
PM MAIL ICQ   Вверх
ShamanVoodoo
Дата 25.10.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: -1
Всего: -3



Цитата(Starikan @  25.10.2007,  16:11 Найти цитируемый пост)
Используй cookies

это тут причем? smile 

PM MAIL ICQ   Вверх
chiffa
Дата 25.10.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



извращенный метод, но как вариант можешь использовать. сделай свои метки, например <noecho></noecho> и скриптом обрабатый их. Все что между ними не выводится. Но это как послдний вариант, вообще было бы неплхо если бы ты описал чидею, может кто подскажет как все можно реализовать более удачно...
PM MAIL   Вверх
ShamanVoodoo
Дата 25.10.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: -1
Всего: -3



у меня в бд есть таблицы, в одной хранится шаблон страницы вида:
Код

<html>
<head>
<title>[:HEAD:]</title>
</head>
<body >
<p>[:BODY:]</p>
</body>
</html>

в другой сами тексты страниц(причем не только статичные страницы html, но и с php кодом)

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

собственно такую систему я уже сделал, но тексты страниц грузятся из текстовых файлов,а в таблице бд хранится лишь ссылка на файл. можно конечно извратиться и сделать так,чтобы скрипт генерил файл вставлял его и удалял потом, но это  помоему полный изврат.

Добавлено через 3 минуты и 8 секунд
Цитата(Starikan @  25.10.2007,  16:28 Найти цитируемый пост)
при том что в cookies информация поступает по линии через браузер пользователя... И совместимость с Бд в данном случае присутствует 

это я прекрасно знаю, но вот как это мне это может помочь понять не могу, тот кусок кода что ты привел вообще к делу отношения не имеет
PM MAIL ICQ   Вверх
ShamanVoodoo
Дата 25.10.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: -1
Всего: -3



что никто с подобным не сталкивался?
PM MAIL ICQ   Вверх
sTa1kEr
Дата 26.10.2007, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



ShamanVoodoo, вам же vasac уже ответил. Eval() для выполнения кода, Output Control для буферизации вывода и вставки его в нужное место шаблона.
Код

$inf_mas = array("pages_head" => "test");
$str = <<< EOF
echo "тестим...<br>"; 
\$k="43434";
echo "\$k<br>pages_head-".\$inf_mas['pages_head'];
EOF;

ob_start();
eval($str);
$contents = ob_get_clean();

echo "<html><head></head<body>$contents</body></html>";
// <html><head></head<body>тестим...<br>43434<br>pages_head-test</body></html>


Но у такого подхода очень много недостатков. 

Безопасность очень сильно страдает - выполнение кода с неизвестным содержанием... Я считаю, что пользоваться eval-ом стоит только в том случае, когда сам выполняемый код находится/генерируется в том же скрипте без использования внешних данных.

Производительность тоже страдает. Eval выполняется значительно медленнее. Дополнительная нагрузка на БД.

Буферизация вывода... если будете ее использовать в самом скрипте, то надо проверять используется ли она, сбрасывать в какую нить буферную переменную, а затем обратно выводить в буфер. Хотя тут можно просто вместо echo, возвращать результат, тогда не нужна будет буферизация.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.