Форум скриптов PHP

Форум скриптов PHP

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

Главная сайта php скриптовГлавная сайта скриптов   ПоискПоиск  
Сегодня: 21.03.2019 - 22:01:26
Страницы:  1  
Форум скриптов PHP » WR-Forum Professional » Использование <HTML> в ответе.
Объявление - WR-Scriptы в UTF-8 кодировке

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

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

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

Валеронус

В
гость

Ребят,подскажите-как и что сделать,чтобы можно было в ответном сообщении вставлять 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
Форум скриптов PHP » WR-Forum Professional » Использование <HTML> в ответе.
Извещение робота о сообщении, а его - нет!!!!? :Предыдущая темаСледующая тема: Проблема с кодировкой.
Страницы:  1  

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

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

Смайлы:

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