igrok54 |
Отправлено: 11 ноября 2011 — 13:01 • Тема: Непонятные проблемы с UTF-8 • Форум: HTML |
Ответов: 33 Просмотров: 24387
 |
Ваш сервер в заголовках отдает, что страницы в кодировке Windows-1251. Браузеры, в случае, если сервер передает какую-либо кодировку плюют на то, что указано в метатегах. Либо надо в настройках сервера исправить кодировку, либо в файл .htaccess добавить строку: CODE:AddDefaultCharset UTF-8 |
igrok54 |
Отправлено: 27 октября 2011 — 14:50 • Тема: регистрация пользователя • Форум: Настройка форума |
Ответов: 18 Просмотров: 14488
 |
BON пишет:igrok54, если в письме придет такая бодяга: <iframe src="/vzlom.js">А тут текс письма</iframe> не сработает код???
Суть дополнения в том, что можно сделать выборочный вариант с отправкой писем с форума, для каких-то писем разрешить html, для остальных - только текст. А уж на усмотрение админа форума, вносящего изменения с данным вариантом, решить, какие письмо с его форума могут содержать html-код...
В функцию добавлена возможность того, что отправка html возможна, но требуется, чтобы для писем с кодом, чтобы они читались как html, был получен дозволяющий параметр: $list[5]=TRUE. Без этого параметра письмо будет передавать в заголовках, что в нем содержиться только текст и код будет выводиться как текст, в виде именно таком: "<iframe src="/vzlom.js">А тут текст письма</iframe>"...
А вторая часть кодов (изменения в register.php) предназначена конкретно для Никелы. Другие пользователи могут при желании увидеть в кодах, как требуется изменить команды на отправку писем, чтобы в данных письмах разрешалось html (дописать в конец еще один параметр TRUE).
Во второй части кодов описано, какие изменения потребуется внести в файл register.php для того, чтобы после регистрации юзер получал письмо с форматированием. А текст этих писем лежит в файле lang_front_register.php, и в него теперь можно внести html-форматирование. Этот текст же редактировать может только админ, поэтому для данного случая все вполне безопасно. |
igrok54 |
Отправлено: 27 октября 2011 — 01:02 • Тема: регистрация пользователя • Форум: Настройка форума |
Ответов: 18 Просмотров: 14488
 |
BON пишет:igrok54, если как ты говоришь любое письмо, то тогда в этом письме можно будет отослать любой джава скрипт который выполнится при прочтении письма. ТАк же получается?
Да я именно об этом и говорю. Получается любой же зарегенный юзер имеет право отправить через форум другому юзеру письмо, содержащее html-код, который может быть вредоносным. А потом все шишки админу сайта, через который заслали...
Надо какой-то фильтр добавить, проверку, на то, что в данном типе писем разрешен html.
Можно добавить еще один параметр при отправке письма (их было 5, добавляем шестую переменную $list[5] (отсчет с 0, а не с 1) и пропишем условие, что если эта шестая переменная в аргументах получена и она равна TRUE, то html в этом типе писем разрешен...
Не проверял, но должно работать:
CODE:function _SendMail($list) {
// До формирования письма проверим и установим тип письма:
if(isset($list[5]) && $list[5]===TRUE) {$mailtype='text/html';} // Если разрешен в данном письме html
else {$mailtype='text/plain';}
// Затем формируем заголовки письма подставляя определенную ранее переменную с типом письма:
$headers = 'From: '.$list[0].' <'.$list[1].">\n";
$headers .= 'Reply-To: '.$list[1]."\n";
$headers .= 'Return-Path: '.$list[1]."\n";
$headers .= "MIME-Version: 1.0\nContent-type: ".$mailtype."; charset=windows-1251\nContent-Transfer-Encoding: 8bit\nDate: " . gmdate('D, d M Y H:i:s', time()) . " UT\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\n";
Тогда в командах на отправку писем, где html разрешаем, нужно будет добавить этот шестой аргумент, дописав в их конец еще один: TRUE
Для случая Nikela - это изменения еще в файле register.php
Номера строк по сборке Электрона, у Вас могу отличаться! Но где-то рядом...
Строку 186:
CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->input['emailaddress'],$subject,$email);
Заменить на:CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->input['emailaddress'],$subject,$email, TRUE);
Строку 248:
CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->input['emailaddress'],$fm->LANG['RegThanks'],$email);
Заменить на:CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->input['emailaddress'],$fm->LANG['RegThanks'],$email, TRUE);
Две одинаковых строки 260 и 358:
CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->exbb['adminemail'],$subject,$email);
Каждую заменить на:CODE:$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$fm->exbb['adminemail'],$subject,$email, TRUE); |
igrok54 |
Отправлено: 26 октября 2011 — 13:14 • Тема: регистрация пользователя • Форум: Настройка форума |
Ответов: 18 Просмотров: 14488
 |
Nikela пишет:CODE:...
$headers .= "MIME-Version: 1.0\nContent-type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit\nDate: " . gmdate('D, d M Y H:i:s', time()) . " UT\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\n";
Да, в этой строке и нужно заменять text/plain на text/html.
Но! Должен предупредить, что в этом случае ЛЮБОЕ ПИСЬМО, отправляемое через форум получит возможность содержать html-код. Как это будет с точки зрения безопасности? У кого какие мысли на этот счет? |
igrok54 |
Отправлено: 23 октября 2011 — 19:17 • Тема: регистрация пользователя • Форум: Настройка форума |
Ответов: 18 Просмотров: 14488
 |
Nikela, ищем в php-файле отправляющем письмо передающиеся заголовки. В заголовках определяется формат письма. У вас формат, вероятнее всего text/plain, надо заменить на text/html, тогда будут работать html-теги вида <b></b> (не BB-коды, те вообще нет возможности использовать).
text/plain - это обычный текст;
text/html - это html.
Т.Е. в php-файле, который отправляет письмо ищем строку, в которой что-то типа: Цитата:$headers .= 'Content-Type: text/plain; и заменяем ее на: Цитата:$headers .= 'Content-Type: text/html;
Разберетесь? |
igrok54 |
Отправлено: 16 октября 2011 — 19:34 • Тема: Права в общих настройках конференции • Форум: Установка и обновление |
Ответов: 12 Просмотров: 10727
 |
roma1 пишет:Может там так же изменить на 777?
Вообще-то, 777 - это чаще всего права на папку. Хотя на разных серверах настройка прав может отличаться, требуется уточнять у хостера.
Если скрипт может закачать файлы в папку uploads, значит папка uploads имеет права на запись. Права на файлы в ней вы, насколько я помню, изменить не сможете (т.к. не являетесь их владельцем), если только скачать файлы на свой комп, затем удалить их из папки uploads, затем заново залить их по FTP со своего компа. Тогда вы будете владельцем этих файлов и сможете менять их права - но тогда и операция перемещения не вызовет проблем при правах на перемещаемые файлы 0644.
Вообще то Вам стоит попробовать файлы, которые Вы предполагаете в дальнейшем перемещать в другие папки заливать не скриптом, а по FTP. Если же их добавляют пользователи форума - то:
1. либо Вы их лучше не перемещайте,
2. либо рассмотрите вариант со сменой хостинга (еще надо будет угадать, что бы не попасть на аналогичный вариант настроек хостинга на новом месте),
3. либо Вам придется делать вышеописанные операции (бэкап, удаление с сервера, восстановление из бэкапа) при необходимости перемещения... |
igrok54 |
Отправлено: 16 октября 2011 — 13:24 • Тема: Права в общих настройках конференции • Форум: Установка и обновление |
Ответов: 12 Просмотров: 10727
 |
roma1 пишет:Как понять два владельца там где 633629 я могу права коректировать, там где 9999 не имею прав. Фото прилагаю.
Суть в том, что одни файлы залиты по FTP - у них прописываешься владельцем ты, другие файлы созданы скриптом, на многих хостингах для таких файлов прописывается владельцем что-нибудь типа "интернет". Такими файлами нельзя управлять по FTP, но ими можно управлять с помощью опять же скриптов (скриптом их можно удалить, переместить и т.п.). Для этого потребуется скрипт из разряда "файлового менеджера" - гуглить запросом "скрипт файловый менеджер". Например этот.
(Добавление)
Или известный elFinder |
igrok54 |
Отправлено: 16 октября 2011 — 08:34 • Тема: Давайте познакомимся! • Форум: О жизни |
Ответов: 133 Просмотров: 104546
 |
mills пишет:Ммм... а ты в каком районе? 
Парковый. А ты?
(Добавление)
mills, как оказалось, я тебе звонил по поводу "резюме на должность админа сайтов компании Риос-Спорт"... |
igrok54 |
Отправлено: 15 октября 2011 — 23:10 • Тема: Проблема с регистрацией на форуме • Форум: Решение проблем |
Ответов: 14 Просмотров: 9538
 |
BON пишет:igrok54, если я захочу чтобы и у меня была возможность регистрации украинских име, тогда...
А тут все особенные буквы украинского алфавита? Я его совсем не знаю 
Перечислите необходимые для добавления буквы - допишу, как поправить, чтобы украинские имена проходили регистрацию... |
igrok54 |
Отправлено: 15 октября 2011 — 10:10 • Тема: Проблема с регистрацией на форуме • Форум: Решение проблем |
Ответов: 14 Просмотров: 9538
 |
саня пишет:igrok54, я не могу найти такой строчки есть такая
CODE:if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўі|А-ЯЁҐЄІЇЎІ]{1,}#is",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);
и такая
CODE:if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);
Это у Вас прописана возможност регистрации украинских, видимо, имен. Тогда, соответственно, так:
Строку:
CODE:if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўі|А-ЯЁҐЄІЇЎІ]{1,}#is",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);
Заменить на:
CODE:if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўіА-ЯЁҐЄІЇЎІ]{1,}#",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);
Строку:
CODE:if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);
Заменить на:
CODE:if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#i",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars); |
igrok54 |
Отправлено: 14 октября 2011 — 06:51 • Тема: Проблема с регистрацией на форуме • Форум: Решение проблем |
Ответов: 14 Просмотров: 9538
 |
Правки регулярных выражений для сообщения Электрона:
в register.php
CODE:if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername'])) {
Замените её строкой:
CODE:if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёА-ЯЁ]{1,}#",$fm->input['inmembername'])) {
Далее найдите строку:
CODE:if (preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername']) && preg_match("#[a-z|A-Z]{1,}#is",$fm->input['inmembername'])) {
Замените её строкой:
CODE:if (preg_match("#[а-яёА-ЯЁ]{1,}#",$fm->input['inmembername']) && preg_match("#[a-zA-Z]{1,}#",$fm->input['inmembername'])) {
Далее найдите строку:
CODE:if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->input['inmembername'])) {
И замените её строкой:
CODE:if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-яЁё-_\.\s])#i",$fm->input['inmembername'])) { |
igrok54 |
Отправлено: 12 октября 2011 — 08:46 • Тема: Проблема с регистрацией на форуме • Форум: Решение проблем |
Ответов: 14 Просмотров: 9538
 |
Электрон, в приведенных регулярных выражениях я бы однозначно убрал флаг "i', определяющий, что поиск должен быть регистронезависимый, так как в составе искомых символов Вами указаны символы и в верхнем и в нижнем регистре.
Например, если посмотреть на это:Цитата:"#[а-яё|А-ЯЁ]{1,}#is" , то тут определено так: искать один символ русского алфавита в нижнем либо (красное тут и в регулярке) в верхнем регистре, поиск вести регистронезависимый (флаг "i" , точка в регулярке может быть переводом строки (флаг "s" .
Это можно написать так: "#[а-яёА-ЯЁ]{1,}#" - убрав флаги "поиск вести регистронезависимый", "включая переводы строк" (т.к. в регулярке нету точки, которая могла бы быть этим переводом строки). Знак "либо" так же совершенно лишний.
Не обижайтесь на критику. , знаю, что Вы не программер, и что это маленькие минусы от прежних разработчиков. |
|