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

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

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

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 04.12.2020 - 01:41:08
Страницы:  1  2  3  4  ... 6
Объявление - WR-Scriptы в UTF-8 кодировке

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

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

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

Андрей

А
Участник форума

Вот кстати немного подрекдтир код. Отправляй сообщения кому хочешь, хоть себе (поля вообще можно отставить пустыми) - и так удобнее. Конечно знаки препинанения не отображаются, но заглавные буквы - да!

Код:
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

Цитата


Значит, для того, чтобы вести подсчет, нужно пройтись по всем записям, найти совпадения с твоим ником и подсчитать их. Для того, чтобы счетчик работал самостоятельно, нужно постоянное обращение к базе "message.dat". А это сделать сложно (во всяком случае для меня).

Лучше возьмись, посиди пару часов и сделай свой скрипт почты (можешь использовать wr-meeting)

Сообщение # 24 21.11.10 - 15:25:31
Как боротся с хулиганами??? :Предыдущая темаСледующая тема: Статистика посетителей на форуме
Страницы:  1  2  3  4  ... 6

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

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

Смайлы:

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