[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Способ вставки php-кода в Tinymce
make.kz
Доброе утро, МИР! )))

Сегодня утром еле как добил способ вставки PHP-кода в TINYMCE. Я сделал по своему, и этот способ я решил выложить сюда для тех, кто столкнулся с такой проблемой. Эту проблему я не смог решить с помощью поиска ответа на мучавший меня вопрос в гугле и придумал его сам. Не судите строго! По этому способу можно вызывать php-коды в любом месте страницы.

1. В tinymce открываем HTML.
2. Пишем текст, который нужен, теперь в место где Вы будете прописывать php пишете

<div id="(к примеру gallery)">1</div>

Этот div Вы можете разместить в любом месте, можете вставить его даже между строками текста, который Вы написали в редакторе.
3. Создаем в базе данных phpmyadmin таблицу php_codes с полями id (autoincrement), php_title, php_code
4. Создаем php-код галереи и вставляем в базу php_codes
php_title = gallery
php_code = Ваш php-код без <?php ?>
5. Создаем в корневой папки со всеми php-файлами файл phpfunctions.php
6. Пишем в него такой код

<?
include("./includes/database_connect.php"); //подключаемся к базе
switch ($_POST['action']){
case "showCode":
$result = mysql_query("SELECT * FROM php_codes WHERE php_title='".$_POST['php_title']."'");

$p=mysql_fetch_array($result);

$code = '<?'.$p['php_code'].'?>';
eval ('?>'.$code.'<?');
break;
}

?>

7. Теперь в файле, в котором Вы будете выводить текст из tinymce и скрипты пишете следующее.


<?
$pages = mysql_query("SELECT * FROM pages WHERE cat=".$_GET['page']."");
if(mysql_num_rows($pages)>0){
$p = mysql_fetch_array($pages);
}
echo '<p class="title">'.$p['title_rus'].' </p>'.
$p['text_rus'];
$php_codes=mysql_query("SELECT * FROM php_codes");
if(mysql_num_rows($php_codes)>0){
while ($pc=mysql_fetch_array($php_codes)){
print<<<HERE
<input id="$pc[php_title]1" type="hidden" value="$pc[php_title]">

<script type="text/javascript">
jQuery.noConflict();
jQuery("#
$pc[php_title]").ready(function(){
var php_title = jQuery("#
$pc[php_title]"+"1").val();
var page =
$_GET[page];
jQuery.ajax({
type: "POST",
url: "./phpfunctions.php",
data: { action: "showCode", page: page, php_title: php_title},
cache: false,
success: function(responce){jQuery("#
$pc[php_title]").html(responce); }
});
});
</script>

HERE;
}
}

?>


Все.

Этот способ будет работать в любом редакторе похожем на tinymce

Отвечу на любые вопросы и помогу, если никто не все понял! ;)

Удачи!



Спустя 50 минут (24.12.2011 - 06:11) Guest написал(а):
$result = mysql_query("SELECT * FROM php_codes WHERE php_title='".$_POST['php_title']."'");

$pages = mysql_query("SELECT * FROM pages WHERE cat=".$_GET['page']."");

Очень круто!

Спустя 1 час, 4 минуты, 51 секунда (24.12.2011 - 07:16) make.kz написал(а):
Цитата (Guest @ 24.12.2011 - 03:11)
$result = mysql_query("SELECT * FROM php_codes WHERE php_title='".$_POST['php_title']."'");

$pages = mysql_query("SELECT * FROM pages WHERE cat=".$_GET['page']."");

Очень круто!

$_POST['title'] передается Ajax-запросом.
$_GET['page'] - это я промах допустил, это моя переменная, я автоматически вывожу из базы html-теги и php-коды с помощью этой переменной

Извиняюсь за промах )))

Спустя 5 минут, 34 секунды (24.12.2011 - 07:21) Guest написал(а):
Без разницы чем передаются данные от пользователя, все данные должны проходить проверку.

Спустя 6 минут, 17 секунд (24.12.2011 - 07:27) make.kz написал(а):
Цитата (Guest @ 24.12.2011 - 04:21)
Без разницы чем передаются данные от пользователя, все данные должны проходить проверку.

Хорошо

$_GET['page'] - это id кнопки меню сайта в базе. Так понятней?
Я все коды храню в базе MySQL
И вывод этих страниц ведется по id-кнопки, связка кнопок сайта со страницами )))

Спустя 3 минуты, 42 секунды (24.12.2011 - 07:31) Guest написал(а):
Вообще-то я говорю о дырках в запросах.
Нужно использовать функцию mysql_real_escape_string для строковых данных и (int) для целочисленных данных поступающих от пользователя.

Спустя 2 часа, 12 минут, 21 секунда (24.12.2011 - 09:43) Revan написал(а):
А может у него есть функция, которая в самом начале программы проверяет безопасность переменных, и преобразует их в безопасный вид? Он не спрашивал о том, как защищать программу или есть ли там дыры.

Спустя 4 часа, 5 минут, 21 секунда (24.12.2011 - 13:49) make.kz написал(а):
Ребята, по защите программы Вы уж там сами как-нибудь! ))))

Я же выложил одно из решений проблемы использования tinymce и php-кодов. Чтобы можно было выводить php-коды между строками tinymce

Спустя 38 минут, 31 секунда (24.12.2011 - 14:27) inpost написал(а):
make.kz
Ты молодец, но если честно, то нафиг? Тот, кто будет вставлять ПХП код, будет работать с самими файлами напрямую через соответствующий редактор, а не через tinymce. Потому что tinymce предназначен для посетителей, клиентов и заказчиков, которые абсолютно далеки от программирования, но им хочется подправить на страничке текст более правильно.

Спустя 9 часов, 40 минут, 25 секунд (25.12.2011 - 00:08) make.kz написал(а):
Цитата (inpost @ 24.12.2011 - 11:27)
make.kz
Ты молодец, но если честно, то нафиг? Тот, кто будет вставлять ПХП код, будет работать с самими файлами напрямую через соответствующий редактор, а не через tinymce. Потому что tinymce предназначен для посетителей, клиентов и заказчиков, которые абсолютно далеки от программирования, но им хочется подправить на страничке текст более правильно.

Inpost, спасибо!
Просто обидно стало, когда делал свой движок столкнулся с проблемой tinymce редактора и php кода, начал гуглить, никто конкретно не смог дать ответ, вот сам придумал и выложил, пусть теперь люди знают.
Быстрый ответ:

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