Форум техподдержки бесплатных PHP скриптов

Форум техподдержки бесплатных PHP скриптов

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 09.08.2020 - 08:19:23
Страницы:  1  
Объявление - WR-Scriptы в UTF-8 кодировке

Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.

На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий!
Работы продолжаются и в 2020 году. Ура!

АвторСообщение

Валеронус

В
гость

Ребят,подскажите-как и что сделать,чтобы можно было в ответном сообщении вставлять 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  

Сообщение
Имя E-mail
Сообщение

Нажмите на точку возле имени для обращения к участнику

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.2.2