|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 03.12.2024 - 23:44:44 Личные сообщенияОбъявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
Андрей •
А Участник форума
|
Вот кстати немного подрекдтир код. Отправляй сообщения кому хочешь, хоть себе (поля вообще можно отставить пустыми) - и так удобнее. Конечно знаки препинанения не отображаются, но заглавные буквы - да! Код: if ($_GET['event'] =="message") { error_reporting(0); $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0]; $go = $wrfname; if (!isset($_COOKIE['wrfcookies'])) {exit("<BR><BR><font size=+1><center>Только зарегистрированные участники форума могут пользоваться ЛС!");} $messagedat="message.dat"; if ($_GET['action']==null or $_GET['action']==""){$_GET['action']="inbox";} print "<table style=\"border-collapse: collapse; width: 100%\"><tr><td class=\"zag\" colspan=\"2\"><h3>Личные сообщения</h3></td></tr> "; print "<tr><td align=\"center\" class=\"ths\" width=\"50%\"><br/><b><a href=\"tools.php?event=message&action=inbox\" class=\"add\">Входящие</a></b><br/><br/></td><td align=\"center\" class=\"ths\" width=\"50%\"><br/><b><a href=\"tools.php?event=message&action=write\" class=\"add\">Написать сообщение</a></b><br/><br/></td></tr></table>"; if ($_GET['action'] =="inbox") { print "<br/><table style=\"border-collapse: collapse; width: 100%\"> <tr><td colspan=\"3\" class=\"zag\"><h3>Входящие</h3></td></tr> <tr> <td style=\"background: green;\" align=\"center\" width=\"15%\"> <font color=\"#FFF\">Отправитель ↓</font> </td> <td style=\"background: green;\" align=\"center\" width=\"30%\"> <font color=\"#FFF\">Тема ↓</font> </td> <td style=\"background: green;\" align=\"center\" width=\"55%\"> <font color=\"#FFF\">Сообщение ↓</font> </td> </tr> "; $alinks=array(); if(!isset($linkFile)) $linkFile=$messagedat; $lines=file($linkFile) or die("Can't open $linkFile "); while ($line=array_shift($lines)){ list($a["id"],$a["text"],$a["url"],$a["desc"],$a["who"])=explode("|",$line); array_push($alinks,$a); } if(!empty($go)) foreach($alinks as $lk){ if($lk["id"]==$go) { echo " <tr> <td width=\"15%\" class=\"ths\"> <center><a href=tools.php?event=profile&pname=".$lk["desc"].">".$lk["desc"]."</a></center> </td> <td width=\"30%\" class=\"ths\"> <b>".$lk["text"]."</b> </td> <td width=\"55%\" class=\"tds\"> ".$lk["url"]." </td></tr>"; }}} print "</table>"; if ($_GET['action'] =="write") { if ($_GET['function'] =="submit") { function str($str) { $str = preg_replace("/[^А-яa-z0-9\_\-. ]+/mi", "", $str); if (strlen($str) > 100000) { $str = substr ($str, 0, 100000); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;} function str_theme($str) { $str = preg_replace("/[^А-яa-z0-9\_\-. ]+/mi", "", $str); if (strlen($str) > 30) { $str = substr ($str, 0, 30); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;} $theme = $_POST['theme']; $msg = $_POST['msg']; $text=str($_POST['who'])."|".str_theme($theme)."|".str($msg)."|".str($wrfname); /// Блок добавления информации в БД $text=trim($text); $fp=fopen($messagedat,"a+"); flock ($fp,LOCK_EX);//блокировка файла fputs($fp,"$text\r\n"); flock ($fp,LOCK_UN);//снятие блокировки fclose($fp); @chmod("$fp", 0600); print "<br/><div class=\"noerror\">Сообщение <b>успешно</b> отправлено.</div><br/>"; print "<center><b><a href=\"tools.php?event=message&action=write\" class=\"add\">Отправить еще одно</a></b></center>"; exit; } print "<table style=\"border-collapse: collapse; width: 100%\"> <tr><td colspan=\"2\" class=\"zag\"><h3>Отправить сообщение</h3></td></tr> <tr> <td class=\"ths\"> <form action=\"tools.php?event=message&action=write&function=submit\" method=post> <tr> <td class=\"ths\" width=\"25%\"> <b>Кому:</b><br/></td> <td class=\"tds\" width=\"75%\"> <input type=\"text\" size=\"83\" name=\"who\" class=\"form\"> <br/> </td> </tr> <td class=\"ths\" width=\"25%\"> <b>Тема:</b><br/></td> <td class=\"tds\" width=\"75%\"> <input type=\"text\" size=\"83\" name=\"theme\" class=\"form\"> <br/> </td></tr> <tr><td colspan=\"2\" class=\"tds\"> <center> <textarea name=\"msg\" cols=\"120\" rows=\"10\" class=\"form\"> </textarea> </center> </td></tr> <tr><td colspan=\"2\" align=\"center\" class=\"ths\"> <br/> <input type=\"submit\" class=\"formbutton\" value=\"Отправить!\"> <input type=\"reset\" class=\"form\" value=\"Очистить\"> <br/> <br/> </td></tr>"; print "</table></form>"; }} | | |
|
Сообщение # 13 |
18.11.10 - 17:32:13
| | Sco-R-piO •
S Участник форума
|
Андрей, по-моему, поддержку заглавных букв реализовал я... | |
|
Сообщение # 14 |
18.11.10 - 17:58:22
| | Андрей •
А Участник форума
|
Sco-R-piO, я установил твой скрипт, там не отображались БОЛЬШИЕ. ну кароче - это неважно. | |
|
Сообщение # 15 |
18.11.10 - 18:22:41
| | AlexandЗr •
A Участник форума
|
У себя на форуме вначале сделал личные сообщения именно из этого кода немного еге подправив. Например сделал так
Код: function str($str) { $str = preg_replace("/[^а-яa-z0-9\_\-.,;:!?~@#№*+=()Ёё\/ ]+/mi", " ", $str); if (strlen($str) > 1500) { $str = substr ($str, 0, 1500); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;}
function str_theme($str) { $str = preg_replace("/[^а-яa-z0-9\_\-.,;:!?~@#№*+=()Ёё\/ ]+/mi", " ", $str); if (strlen($str) > 60) { $str = substr ($str, 0, 60); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;} |
Потом нашел более достойную замену и назвал ее - Почта, а предыдущий вариант обозвал - Жалобы, для того, чтобы люди писали о нарушениях админу или можно даже самому нарушителю. Для того, чтобы опробовать и пользоваться этими возможностями надо быть зареганым пользователем. Вопрос такого плана. Может вообще отказаться от использования приведенного выше кода личных сообщений (в моем случае, блока - жалобы), так как тут говорилось о дырявости этого кода? Кстати, отправил Михаилу через обратную связь почти месяц назад послание с указанием неустраненного бага, последствия которого мы могли наблюдать месяц назад, но смотрю форум с тех пор так и не обновился... | |
|
Сообщение # 16 |
18.11.10 - 22:50:22
|
| LOSKAND •
L Участник форума
|
Добавте в функцию replacer обработчики символов с заменой на html ну например так: Код: $text=str_replace("'",''',$text); $text=str_replace("=",'=',$text); $text=str_replace("\"",'"',$text); | и не надо ничего изобретать | |
|
Сообщение # 17 |
18.11.10 - 23:53:12
| | LOSKAND •
L Участник форума
|
Тьфу не учёл обработку символов на родительском форуме Добавте в функцию replacer обработчики символов с заменой на html ну например так: Код: $text=str_replace("'",'& # 039;',$text); $text=str_replace("=",'& # 061;',$text); $text=str_replace("\"",'& quot;',$text); | и не надо ничего изобретать | |
|
Сообщение # 18 |
18.11.10 - 23:55:10
| | LOSKAND •
L Участник форума
|
после replacer($msg); и всё | |
|
Сообщение # 19 |
18.11.10 - 23:56:33
| | Sco-R-piO •
S Участник форума
|
AlexandЗr и LOSKAND, я считаю, что переделывать данный скрипт - гиблое дело... Легче написать новый. | |
|
Сообщение # 20 |
19.11.10 - 01:01:33
| | Андрей •
А Участник форума
|
А вот еще напишу предложение. Кто может сделать счетчик личных сообщений? Типа "у вас 6 личных сообщений" и вывод на главную страницу (вот посмотрите - мой сайт http://tosk2.x10.bz/gta/).
Когда входишь на свой профиль, написано следующее: Главная ● RSS-лента ● Правила ● Участники ● Сообщения ● Поиск ● Ваш профиль ● Выход [Андрей] ●
Хотелось бы Главная ● RSS-лента ● Правила ● Участники ● Сообщения [4]● Поиск ● Ваш профиль ● Выход [Андрей] ●
может кто помочь? | |
|
Сообщение # 21 |
21.11.10 - 13:14:29
| | Sco-R-piO •
S Участник форума
|
Андрей, если ты пользуешься той почтой, которую предложил я, то там такую функцию реализовать сложно. | |
|
Сообщение # 22 |
21.11.10 - 13:50:17
| | Андрей •
А Участник форума
|
Вот мой код которым я пользуюсь. Код: if ($_GET['event'] =="message") { error_reporting(0); $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0]; $go = $wrfname; if (!isset($_COOKIE['wrfcookies'])) {exit("<BR><BR><font size=+1><center>Только зарегистрированные участники форума могут пользоваться ЛС!");} $messagedat="message.dat"; if ($_GET['action']==null or $_GET['action']==""){$_GET['action']="inbox";} print "<table style=\"border-collapse: collapse; width: 100%\"><tr><td class=\"zag\" colspan=\"2\"><h3>Личные сообщения</h3></td></tr> "; print "<tr><td align=\"center\" class=\"ths\" width=\"50%\"><br/><b><a href=\"tools.php?event=message&action=inbox\" class=\"add\">Входящие</a></b><br/><br/></td><td align=\"center\" class=\"ths\" width=\"50%\"><br/><b><a href=\"tools.php?event=message&action=write\" class=\"add\">Написать сообщение</a></b><br/><br/></td></tr></table>"; if ($_GET['action'] =="inbox") { print "<br/><table style=\"border-collapse: collapse; width: 100%\"> <tr><td colspan=\"3\" class=\"zag\"><h3>Входящие</h3></td></tr> <tr> <td style=\"background: green;\" align=\"center\" width=\"15%\"> <font color=\"#FFF\">Отправитель ↓</font> </td> <td style=\"background: green;\" align=\"center\" width=\"30%\"> <font color=\"#FFF\">Тема ↓</font> </td> <td style=\"background: green;\" align=\"center\" width=\"55%\"> <font color=\"#FFF\">Сообщение ↓</font> </td> </tr> "; $alinks=array(); if(!isset($linkFile)) $linkFile=$messagedat; $lines=file($linkFile) or die("Can't open $linkFile "); while ($line=array_shift($lines)){ list($a["id"],$a["text"],$a["url"],$a["desc"],$a["who"])=explode("|",$line); array_push($alinks,$a); } if(!empty($go)) foreach($alinks as $lk){ if($lk["id"]==$go) { echo " <tr> <td width=\"15%\" class=\"ths\"> <h3><center><a href=tools.php?event=profile&pname=".$lk["desc"].">".$lk["desc"]."</a></center></h3> </td> <td width=\"30%\" class=\"ths\"> <b>".$lk["text"]."</b> </td> <td width=\"55%\" class=\"tds\"> <span class='hotspot' onmouseover='tooltip.show(\"".$lk["url"]."\");' onmouseout='tooltip.hide();'> ".$lk["url"]." </span> </td></tr>"; }}} print "</table>"; if ($_GET['action'] =="write") { if ($_GET['function'] =="submit") { function str($str) { $str = preg_replace("/[^А-яa-z0-9\_\-.,;:!?~@#№*+=()Ёё\/ ]+/mi", "", $str); if (strlen($str) > 100000) { $str = substr ($str, 0, 100000); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;} function str_theme($str) { $str = preg_replace("/[^А-яa-z0-9\_\-.,;:!?~@#№*+=()Ёё\/ ]+/mi", "", $str); if (strlen($str) > 30) { $str = substr ($str, 0, 30); if (($temp_max = strrpos($str, '_'))) $str = substr ($str, 0, $temp_max);} return $str;} $theme = $_POST['theme']; $msg = $_POST['msg']; $text=str($_POST['who'])."|".str_theme($theme)."|".str($msg)."|".str($wrfname); /// Блок добавления информации в БД $text=trim($text); $fp=fopen($messagedat,"a+"); flock ($fp,LOCK_EX);//блокировка файла fputs($fp,"$text\r\n"); flock ($fp,LOCK_UN);//снятие блокировки fclose($fp); @chmod("$fp", 0600); print "<br/><div class=\"noerror\">Сообщение <b>успешно</b> отправлено.</div><br/>"; print "<center><b><a href=\"tools.php?event=message&action=write\" class=\"add\">Отправить еще одно</a></b></center>"; exit; } print "<br/><table style=\"border-collapse: collapse; width: 100%\"> <tr><td colspan=\"2\" class=\"zag\"><h3>Отправить сообщение</h3></td></tr> <tr> <td class=\"ths\"> <form action=\"tools.php?event=message&action=write&function=submit\" method=post> <tr> <td class=\"ths\" width=\"25%\"> Кому:</b><br/></td> <td class=\"tds\" width=\"75%\"> <input type=\"text\" size=\"83\" name=\"who\" class=\"form\"> <br/> </td> </tr> <td class=\"ths\" width=\"25%\"><b> Тема:</b><br/></td> <td class=\"tds\" width=\"75%\"> <input type=\"text\" size=\"83\" name=\"theme\" class=\"form\"> <br/> </td></tr> <tr><td colspan=\"2\" class=\"tds\"> <center> <textarea name=\"msg\" cols=\"120\" rows=\"10\" class=\"form\"> </textarea> </center> </td></tr> <tr><td colspan=\"2\" align=\"center\" class=\"ths\"> <br/> <input type=\"submit\" class=\"formbutton\" value=\"Отправить!\"> <input type=\"reset\" class=\"form\" value=\"Очистить\"> <br/> <br/> </td></tr>"; print "</table></form>"; }} | | |
|
Сообщение # 23 |
21.11.10 - 14:29:46
| | Sco-R-piO •
S Участник форума
|
Андрей, дело в том, что данный скрипт сохраняет все сообщения в один файл Цитата:
Значит, для того, чтобы вести подсчет, нужно пройтись по всем записям, найти совпадения с твоим ником и подсчитать их. Для того, чтобы счетчик работал самостоятельно, нужно постоянное обращение к базе "message.dat". А это сделать сложно (во всяком случае для меня).
Лучше возьмись, посиди пару часов и сделай свой скрипт почты (можешь использовать wr-meeting) | |
|
Сообщение # 24 |
21.11.10 - 15:25:31
| |
|