Смысл такой - есть определённый текст, в конце которого на той же строке поле для ввода, в которое любой может что-то дописать и после нажатия кнопки "Добавить" написанное прибавляется к основному тексту. Получается что-то вроде текста, который может дополнить каждый. Хорошо бы ещё что-бы нельзя было добавлять мат и прочую похабщину.. Заранее спасибо
Вот что написал, поддерживает цензуру. Лови: 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> Он нужен чтобы не посмотрели файл с текстом. Пользуйся! Вот **** заблокировала систему цензуру исправишь)))
Можно, но как ты разберешься с параллельными комментами? Тогда либо регать юзеров и в очередь выставлять их, а то каша получится ))))
Chaak, респект за быструю помощь! Только вот проблема - введённое слово добавляется не сразу после нажатия а только после следующего нажатия. Куда-то съедается, короче говоря А если ф5 зажать, то последнее слово будет постоянно добавляться.. И вот это зачем? 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
-=Static=-, спасибо! Но после нажатия кнопки - Warning: Cannot modify header information - headers already sent и ссылка на ту же строку с header Solker, как?
Значит у тебя стоит где-то вывод в браузер. Или ты не поменял местами блоки в скрипте, либо у тебя в самом начале скрипта есть пробел перед знаком <?
Ну да... Давайте развивать идею =) Каждый внесет свою лепту, хех. 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. Продолжайте =)
Ппц мне делать нефик =) Добавил Нормальный фильтр мата =) 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>"); ?>
))))))) осталось тока диз сообразить *rolf* И бан добавить по Ip =) Кста.... maxlength='30' - это ограничение не имеет особого смысла)) Ну от обычного юзера канешн поможет) а так толку от него 0 =)
-=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 символов =)