Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Ишю скрипт для составления текста (https://forum.antichat.xyz/showthread.php?t=76294)

in_colour 07.07.2008 07:58

Ишю скрипт для составления текста
 
Смысл такой - есть определённый текст, в конце которого на той же строке поле для ввода, в которое любой может что-то дописать и после нажатия кнопки "Добавить" написанное прибавляется к основному тексту.

Получается что-то вроде текста, который может дополнить каждый. Хорошо бы ещё что-бы нельзя было добавлять мат и прочую похабщину..
Заранее спасибо :)

MafiaBoy3 07.07.2008 08:34

Это же скрипт комментария!

Chaak 07.07.2008 08:42

Вот что написал, поддерживает цензуру. Лови:
PHP код:

<?php
$cenz 
= array("***""*****""мудак""блядь");    //Сюда впишешь нехоршие слова по примеру.

echo file_get_contents("text.txt");
echo 
"<form action='' method='POST'><input type='text' name='txt' size = '30' maxlength='30'><input type='submit' name='ok' value='Добавить!'></form>";

if(isset(
$_POST['ok'])){
    
$text " ".$_POST['txt'];
    foreach(
$cenz as $word){
        
$text str_replace($word,"",$text);
    }
    
$f fopen("text.txt","at");
    
flock($f,2);
    
fwrite($f,$text);
    
flock($f,3);
    
fclose($f);
}
?>

Создаешь в этой же папке файл text.txt, и ставишь права доступа(chmod) - 777

Можешь ище закинуть в туже папку файл .htaccess:
PHP код:

<Files text.txt
Order allow,deny
deny from all
</Files

Он нужен чтобы не посмотрели файл с текстом.

Пользуйся!

Вот **** заблокировала систему цензуру:( исправишь))) :D

Foxtrot1 07.07.2008 12:15

))) покупай синонимайзер...

inlanger 07.07.2008 12:23

хм...так можно и накатать скрипт игры в "слова", "города" и т.д.

biophreak 07.07.2008 13:27

Можно, но как ты разберешься с параллельными комментами? :) Тогда либо регать юзеров и в очередь выставлять их, а то каша получится ))))

in_colour 08.07.2008 00:42

Chaak, респект за быструю помощь! :cool:

Только вот проблема - введённое слово добавляется не сразу после нажатия а только после следующего нажатия. Куда-то съедается, короче говоря :rolleyes: А если ф5 зажать, то последнее слово будет постоянно добавляться..

И вот это зачем?
PHP код:

    header("Location: sc.php"); 

С этой строкой выдаёт ошибку, без неё в порядке всё.


:)

bxN5 08.07.2008 01:14

ну пусть коменты в базе лежат, в базу дописуй и все

-=Static=- 08.07.2008 03:30

Цитата:

Сообщение от in_colour
И вот это зачем?
PHP код:

    header("Location: sc.php"); 

С этой строкой выдаёт ошибку, без неё в порядке всё.

Это для того, чтоб небыло такого, что нажимаешь F5 а там опять тоже слово добавляется.
Тока чтоб ошибки небыло надо написать вот так:

PHP код:

<?php 
$cenz 
= array("***""*****""мудак""блядь");    //Сюда впишешь нехоршие слова по примеру. 

if(isset($_POST['ok'])){ 
    
$text str_replace($word,""," ".$_POST['txt']); 
    
$f fopen("text.txt","at"); 
    
flock($f,2); 
    
fwrite($f,$text); 
    
flock($f,3); 
    
fclose($f); 
    
header("Location: sc.php"); 
    exit(); 


echo 
file_get_contents("text.txt"); 
echo 
"<form action='' method='POST'><input type='text' name='txt' size = '30' maxlength='30'><input type='submit' name='ok' value='Добавить!'></form>"

?>

И имя твоего скрипта должно быть: sc.php

Solker 08.07.2008 03:43

Xss уберите, и сделайте на Ajax =)

in_colour 08.07.2008 04:09

-=Static=-, спасибо! :)
Но после нажатия кнопки - Warning: Cannot modify header information - headers already sent и ссылка на ту же строку с header

Solker, как? :)

Solker 08.07.2008 04:11

Цитата:

Сообщение от in_colour
Solker, как? :)

Как XSS убрать?
htmlspecialchars()

-=Static=- 08.07.2008 04:27

Цитата:

Сообщение от in_colour
[
Но после нажатия кнопки - Warning: Cannot modify header information - headers already sent и ссылка на ту же строку с header


Значит у тебя стоит где-то вывод в браузер. Или ты не поменял местами блоки в скрипте, либо у тебя в самом начале скрипта есть пробел перед знаком <?

Solker 08.07.2008 04:39

Ну да...
Давайте развивать идею =)
Каждый внесет свою лепту, хех.

PHP код:

<?php

$cenz 
= array("***""*****""мудак""блядь");    //Сюда впишешь нехоршие слова по примеру.  

if(isset($_POST['ok'])){  
    
    
$text htmlspecialchars(str_replace($word,""," ".$_POST['txt']));  
    
$f fopen("text.txt","at");  
    
flock($f,2);  
    
fwrite($f,$text);  
    
flock($f,3);  
    
fclose($f);  
    
header("Location: ".$_SERVER[SCRIPT_NAME]);  
    exit();  
}  

echo 
file_get_contents("text.txt");  
echo 
"<form action='' method='POST'><input type='text' name='txt' size = '30' maxlength='30'><input type='submit' name='ok' value='Добавить!'></form>";  

?>

Убрал доступную XSS и теперь название скрипта не обязательно должно быть cs.php.

Продолжайте =)

in_colour 08.07.2008 04:44

Работает как надо, всем большое человеческое спасибо :)

Solker 08.07.2008 04:53

Ппц мне делать нефик =)
Добавил Нормальный фильтр мата =)

PHP код:

<?php

@setlocale(LC_ALL, array ('ru_RU.CP1251''rus_RUS.1251'));  

$filtr "/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/i";

if(isset(
$_POST['txt'])){

    
$text htmlspecialchars($_POST['txt']);  
    
$text preg_replace($filtr'[Censored]'$text);    

    
$f fopen("text.txt","at");  
    
flock($f,2);  
    
fwrite($f," ".$text);  
    
flock($f,3);  
    
fclose($f);
      
    
header("Location: ".$_SERVER['SCRIPT_NAME']);  
    exit();  
}  

echo 
file_get_contents("text.txt");  
echo (
"<form action='".$_SERVER['SCRIPT_NAME']."' method='POST'>
<input type='text' name='txt' size = '30' maxlength='30'>
<input type='submit' value='Добавить!'>
</form>"
);  

?>


-=Static=- 08.07.2008 04:57

))))))) осталось тока диз сообразить *rolf*
И бан добавить по Ip =)


Кста.... maxlength='30' - это ограничение не имеет особого смысла)) Ну от обычного юзера канешн поможет) а так толку от него 0 =)

in_colour 08.07.2008 05:06

Дизайн сейчас я вымутю, а бан по айпи по старинке через .htaccess :)

Solker 08.07.2008 05:12

-=Static=-
Не стесняйся =)

Теперь замутим тему, типо Тегов, т.е. у каждой фразы будет разный размер шрифта =)

PHP код:

<?php 

@setlocale(LC_ALL, array ('ru_RU.CP1251''rus_RUS.1251'));   

$filtr "/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/i"

if(!empty(
$_POST['txt'])){ 

    
$text trim(htmlspecialchars($_POST['txt']));   
    
    
$text preg_replace($filtr'[Censored]'$text); 

    
$text '<font size="'.mt_rand(1,8).'">'.$text.'</font>'
     
    
$f fopen("text.txt","at");   
    
flock($f,2);   
    
fwrite($f," ".$text);   
    
flock($f,3);   
    
fclose($f); 
       
    
header("Location: ".$_SERVER['SCRIPT_NAME']);   
    exit();   
}   

echo 
file_get_contents("text.txt");   
echo (
"<form action='".$_SERVER['SCRIPT_NAME']."' method='POST'> 
<input type='text' name='txt' size = '30' maxlength='30'> 
<input type='submit' value='Добавить!'> 
</form>"
);   

?>

Забавно получается =) Мол каждый может добавить свой Тэг =)

+ Ктонить сделайте, что бы фраза обрезалась под коенец первого слова, т.е. макс - 1 слово.
И что бы это слово было максимум 7 символов =)

mad_xakep 08.07.2008 14:53

еще цвет рандомный сделайте

и чтоб ссылки нельзя вводить было

in_colour 08.07.2008 17:53

Цитата:

Сообщение от -=Static=-
Кста.... maxlength='30' - это ограничение не имеет особого смысла)) Ну от обычного юзера канешн поможет) а так толку от него 0 =)

Сейчас никакие теги ввести нельзя, существует ещё какая-то опасность со строкой ввода?

Если ввести ещё цвет, то это будет похоже на дневник 14 летней девочки с ли.ру, оставлю пока так. :cool:

Одно предложение уже народ написал, но всё равно находится кто-то, кто может сказать только Х*Й ;)

mad_xakep 08.07.2008 17:56

скажите как сделать чтоб ссылки вводить нельзя было!?

biophreak 08.07.2008 18:03

Смотря какого плана...в любом случае резать регекспами, либо по шаблону, либо по http:// https:// ftp:// итд, либо по маске чтото типа /[a-z0-9].[a-z]{2,5}/i - но всеравно не получится порезать все ))

mad_xakep 08.07.2008 18:08

я пробовал фильтр с этого скрипта на свой заменить но нифига непашет

$filtr = "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)";

biophreak 08.07.2008 18:08

Эм...код полностью покажи :))

mad_xakep 08.07.2008 18:10

дык код на пред идущей старице в самом конце

-=Static=- 08.07.2008 18:16

Цитата:

Сообщение от mad_xakep
я пробовал фильтр с этого скрипта на свой заменить но нифига непашет

$filtr = "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)";

Там фильтр то на мат, а не на ссылки =)

mad_xakep 08.07.2008 18:17

Цитата:

Сообщение от -=Static=-
Там фильтр то на мат, а не на ссылки =)

я вообщето знаю а мне на мат ненужен мне надо на ссылки я и написал что тот фильтр я заменил на свой от ссылки и он не пашет

in_colour 08.07.2008 18:22

Кстати, у этого фильтра достаточно устравшие взгляды на мат :)

Chaak 08.07.2008 18:27

Цитата:

Сообщение от in_colour
Кстати, у этого фильтра достаточно устравшие взгляды на мат :)

Морфный стоит ($$$) могу написать, за $ стучи в асю.

А фильтровать ссылки нет смысла так как, спамить могут не
Код:

http://google.com
а
Код:

google.com
, тут уже не отличишь.

mad_xakep 08.07.2008 18:28

2 Chaak
а по .com и по .ru ?

-=Static=- 08.07.2008 18:49

Цитата:

Сообщение от mad_xakep
я вообщето знаю а мне на мат ненужен мне надо на ссылки я и написал что тот фильтр я заменил на свой от ссылки и он не пашет

Я бы как-нить так сделал:

PHP код:

<?php  

@setlocale(LC_ALL, array ('ru_RU.CP1251''rus_RUS.1251'));    

$filtr "#^(.*)+\.(ru|com|net|gg|h15|h18|de|ua|su|org|net|edu)#i";  

if(!empty(
$_POST['txt'])){  

    
$text trim(htmlspecialchars(strtolower($_POST['txt'])));    
     
    
$text preg_replace($filtr'[Censored]'$text);  

    
$text '<font size="'.mt_rand(1,8).'">'.$text.'</font>';  
      
    
$f fopen("text.txt","at");    
    
flock($f,2);    
    
fwrite($f," ".$text);    
    
flock($f,3);    
    
fclose($f);  
        
    
header("Location: ".$_SERVER['SCRIPT_NAME']);    
    exit();    
}    

echo 
file_get_contents("text.txt");    
echo (
"<form action='".$_SERVER['SCRIPT_NAME']."' method='POST'>  
<input type='text' name='txt' size = '30' maxlength='30'>  
<input type='submit' value='Добавить!'>  
</form>"
);    

?>



Время: 22:45