|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 06.12.2024 - 01:03:19
Страницы: 1 Использование <HTML> в ответе.Объявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
Валеронус •
В гость
|
Ребят,подскажите-как и что сделать,чтобы можно было в ответном сообщении вставлять html код или скрипт.Заранее спасибо. | |
|
Сообщение # 1 |
15.11.11 - 12:27:20
| | Йазь •
Й гость
|
Валеронус, что-то подобное делал пользователь КОТ. Вот его руководство. Часть №1.
Код: Вставка HTML кода в сообщения. Внимание! Код вставляется любым пользователем в любое сообщение и может содержать вредоносные скрипты. Поэтому предусмотрено ограничение вставляемого кода по длине и предусмотрен вывод предупреждающего сообщения.
А) Вставить кнопку HTML в сообщение. Блок вставки кнопок начинается следующим кодом: <input type=button class=button value='B' style='font-weight:bold; width:30px' onclick=\"DoSmilie(' ');\" title='Жирный текст'> <input type=button class=button value='RB' style='font-weight:bold; width:30px; color:red' onclick=\"DoSmilie(' ');\" title='Жирный текст красного цвета'> <INPUT type=button class=button value='Цитировать выделенное' style='width: 180px' onclick='REPLIER.msg.value += \" Цитата:\"+(window.getSelection?window.getSelection():document.selection.createRange().text)+\" | \"' title='Скопировать текст со страницы форума и оформить его как цитату'> <input type=button class=button value=' Код ' onclick=\"DoSmilie(' Код: ');\" title='Текст в блоке выводится моноширинным шрифтом'> <input type=button class=button value=' IMG ' style='font-weight:bold; color:navy' onclick=\"DoSmilie('[img][/img]');\" title='Вставить рисунок'> <input type=button class=button value=' URL ' style='font-weight:bold;' onclick=\"DoSmilie ('[url][/url]');\" title='Вставить ссылку'> <input type=button class=button value=' MP3 ' style='font-weight:bold; color:green' onclick=\"DoSmilie('[mp3][/mp3]');\" title='Вставить проигрыватель mp3. Необходима прямая ссылка на mp3-файл'> Вставляем строку: <input type=button class=button value=' HTML ' onclick=\"DoSmilie('[html][/html]');\" title='Вставить код, например - видео'>
Б) Меняем функцию очистки кода function replacer ($text). Она находится почти в начале файлов index.php и admin.php. После изменения функция приобретает вид: function replacer ($text) { // ФУНКЦИЯ очистки кода $maxlencode=600;//допустимая длина кода. Настройку этой переменной можно вставить в админку. //if (strpos($text,"[html]")) {//строка не подходит - не учитывает расположение [html] в начале строки сообщения if (strstr($text,"[html]")) { //разбиваем строку на массив $arr=explode("[html]", $text); //выделяем из каждого элемента неизменяемую часть, все остальное меняем рекурсией $arr[0]=replacer($arr[0]); for ($iaa=1; $iaa<count($arr); $iaa++) { $arrsub=explode("[/html]", $arr[$iaa]); if (strlen($arrsub[0])>$maxlencode) { $arrsub[0]="<font color='red'> В этом месте сообщения был вставлен код HTML, который превышал максимальную длину разрешенного кода в символах - $maxlencode. Код удален. </font>"; } for ($ibb=1; $ibb<count($arrsub); $ibb++) { $arrsub[$ibb]=replacer($arrsub[$ibb]); } $arr[$iaa]=implode($arrsub, "[/html]"); } $text=implode($arr,"[html]"); } else { $text=str_replace(" ",' ',$text); $text=str_replace(">",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"",'"',$text); $text=preg_replace("/\n\n/",'<p>',$text); $text=preg_replace("/\n/",' ',$text); $text=preg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\',$text); // если magic_quotes включена - чистим везде СЛЭШи в этих случаях: одиночные (') и двойные кавычки ("), обратный слеш (\) if (get_magic_quotes_gpc()) { $text=str_replace("\"",'"',$text); $text=str_replace("\'",'\'',$text); $text=str_replace("\\",'\',$text); } $text=str_replace("\r\n"," ",$text); $text=str_replace("\n\n",'<p> ',$text); $text=str_replace("\n",' ',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); } return $text; } Что делает функция ясно – оставляет нетронутыми фрагменты кода в сообщениях между тегами «[html][/html]». Если код превышает заданную длину, то он заменяется сообщением: «В этом месте сообщения был вставлен код HTML, который превышал максимальную длину разрешенного кода в символах - $maxlencode. Код удален.».
| | |
|
Сообщение # 2 |
15.11.11 - 23:07:11
| | Йазь •
Й гость
|
Часть №2
В) Вставка кода в сообщение осложняется тем, что метод POST снабжает кавычки обратным слешем и в таком неработоспособном виде сообщение записывается в файл форума. Но с этим можно бороться при выводе сообщения на форуме. Находим блок, начинается с коммента «Если разрешена публикация УРЛов». После этого блока начинается блок «считываем в память данные по пользователю». Между двумя этими блоками встраиваем код: //удаляем слеши перед кавычками в html-скриптах, вставленные методом POST if (strstr($msg,"[html]")) { $attention=1;//флаг вывода предупреждения о наличии встроенного кода. Настройку этой переменной можно вставить в админку. //разбиваем строку на массив $arr=explode("[html]", $msg); for ($iaa=1; $iaa<count($arr); $iaa++) { $arrsub=explode("[/html]", $arr[$iaa]); $arrsub[0]=str_replace('\"','"', $arrsub[0]); if ($attention) { $mesattfirst=" Внимание! В сообщение встроен html-код. "; $mesattsecond=" <sup>Конец html-кода. Если Вы не видите работу кода, например видео-плеер, не исключено, что в страницу встроен вредоносный код. Обратитесь, пожалуйста, к администратору или модератору.</sup> "; } else { $mesattfirst=""; $mesattsecond=""; } $arrsub[0]=$mesattfirst.$arrsub[0].$mesattsecond; $arr[$iaa]=implode($arrsub, ""); } $msg=implode($arr,""); } //$msg=str_replace("[html]","", $msg); //метки удалили в цикле, функции лишние //$msg=str_replace("[/html]","", $msg); //конец удаления слешей После этого HTML-код в переменной $msg становится работоспособным.
Только я не гарантирую его работоспособность, так как форум мог изменить (отфильтровать) некоторые символы! | |
|
Сообщение # 3 |
15.11.11 - 23:08:43
| | Валеронус •
В гость
|
|
Сообщение # 4 |
28.11.11 - 11:33:53
| | проба •
П гость
|
Код: <p><?php echo "Hello, world!"; ?></p> | | |
|
Сообщение # 5 |
27.05.14 - 20:42:27
| | лл •
Л гость
|
<p><?php echo "Hello, world!"; ?></p> | |
|
Сообщение # 6 |
27.05.14 - 20:44:39
| | Страницы: 1
|