Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-10-06 23:15:07

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

php i cenzura

mam

Kod:

$wpis = $_POST['wpis'];

$word_array=file('wulgaryzmy.txt');


foreach($word_array as $brzydkie_slowo) {
    if(eregi($brzydkie_slowo, $wpis)) {
        echo "jest brzydkie słowo";
    }
    else {
    
    }
}

I chociaż jest brzydkie słowo to nie działa. W pliku wulgaryzmy mam wypisane przekleństwa.

Jad dam

Kod:

$wpis = 'chuj'

$word_array=file('wulgaryzmy.txt');


foreach($word_array as $brzydkie_slowo) {
    if(eregi($brzydkie_slowo, $wpis)) {
        echo "jest brzydkie słowo";
    }
    else {
        
    }
}

I chociaż ch** jest na liście to nie działa. Ma ktoś pomysł jak to zrobić żeby działało? Ogólnie mi chodzi o to żeby jak pojawi się przekleństwo w $wpis to nie wyśle wpisu do bazy i wyświetli odpowiedni komunikat.

Offline

 

#2  2009-10-07 09:35:59

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php i cenzura

Wyświetl sobie $word_array przy pomocy print_r() na przykład. Zobaczysz czy dobrze plik wczytuje do tabeli, może z tym jest problem, złe znaki końca linii czy coś.

Offline

 

#3  2009-10-07 20:53:59

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

wyświetlałem za pomocą echo i było wszystko ok

Offline

 

#4  2009-10-07 21:06:47

  tomii - Członek DUG

tomii
Członek DUG
Zarejestrowany: 2007-12-01

Re: php i cenzura

A nie powinna być zamieniona kolejnośc w eregi?

Offline

 

#5  2009-10-08 00:19:02

  grzegorz.85 - Członek DUG

grzegorz.85
Członek DUG
Skąd: Ostrołęka
Zarejestrowany: 2007-07-12
Serwis

Re: php i cenzura

ja bym proponowal po prostu:

Kod:

$wpis = 'marchewka';
$word_array=file('wulgaryzmy.txt');
if( in_array($wpis, $word_array) ){
    echo "jest brzydkie słowo";
}

ok, powyzszy sposob jest dobry dla porownania czy dane slowo jest brzydkie, ale gdy szukamy brzydkich slow w tekscie, sposob ten jest malo optymalny. Napisalem zatem cos na podstawie Twojego skryptu, w takiej formie mi dziala:

Kod:

<?

$wpis = $_GET['wpis'];

$word_array=file('wulgaryzmy.txt');

print_r($word_array);
foreach($word_array as $brzydkie_slowo) {
    $newline = array("\n", "\r");
    $brzydkie_slowo = str_replace($newline, "", $brzydkie_slowo);
    if(preg_match('/'.$brzydkie_slowo.'/', $wpis)) {
        echo "jest brzydkie słowo";
    }
    else {
    
    }
}?>

powyzej usuwam z brzydkiego slowa znak nowej linii oraz powrót karetki na pusty znak, poniewaz okazalo się, że funkcja file() zczytuje do tablicy wiersze wraz ze znakami nowej linii oraz powrotem karetki.

Ostatnio edytowany przez grzegorz.85 (2009-10-08 00:45:24)

Offline

 

#6  2009-10-08 08:16:55

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

No teraz pokazuje że jest brzydkie słowo. Ale pokazuje że ono jest nawet jak go nie ma ;D

Offline

 

#7  2009-10-08 08:24:32

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php i cenzura

[quote=giegiel]No teraz pokazuje że jest brzydkie słowo. Ale pokazuje że ono jest nawet jak go nie ma ;D[/quote]
Teraz to znaczy co zrobiłeś? Użyłeś sposobu grzegorza czy poprawiłeś eregi w swoim kodzie? Co do in_array, które jako przykład podał grzegorze jest troche do pupy bo porównuje z zachowaniem wielkości liter. Twój sposób wydaje się najlepszy, tylko zmień to eregi jak trzeba i może daj w trim porównywane stringi.

Offline

 

#8  2009-10-08 08:55:29

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

Ni sposób od Grzegorza tak działa/nie działa :) potem  się pobawie z tym eregi ;D teraz czas na uczelnie.

Offline

 

#9  2009-10-09 21:24:44

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

Zmieniłem kolejność w eregi i działa ;) Dzięki

Offline

 

#10  2009-10-12 13:00:05

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

A i czopka nie działa.... mam tak

Kod:

$imie_nazwisko = $_POST['imie_nazwisko'];
$email = $_POST['email'];
$wpis = $_POST['wpis'];

$word_array=file('wulgaryzmy.txt');

$brz=0;

foreach($word_array as $brzydkie_slowo) {
    if(eregi($wpis, $brzydkie_slowo)) {
        $brz=1;
    }
    else {
    }
}

if($brz == 0) {
    $dodanie = "INSERT INTO wpisy ( imie_nazwisko, email, wpis, data) VALUES ('$imie_nazwisko' , '$email' , '$wpis', NOW())";
    $wynik = mysql_query($dodanie) or die (mysql_error());
    
    echo "Wpis dodano pomyślnie";
}
else {
    echo "Komentarz zawiera wulgaryzmy, nie zostanie opublikowany.";

}

i jak wpiszę

zajebiście[/quote]
to nie przepuszcza ale jak wpiszę

bunkrów nie ma ale też jest zajebiście[/quote]
to przepuszcza ;/

Offline

 

#11  2009-10-12 14:06:14

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php i cenzura

Bo cały wpis "bunkrów nie ma ale też jest zajebiście" próbuje znaleźć. Musisz rozbić ciąg na słowa i każde słowo sprawdzać oddzielnie czy jest wulgaryzmem. Albo paradoksalnie ;] zamienić kolejność w eregi na taką jak była. Ale wszystko pod warunkiem, że w wulgaryzmy.txt każdy wulgaryzm jest w oddzielnej linii i przy porównaniu użyj trim() czyli eregi(trim($brzydkie_slowo), $wpis).

Offline

 

#12  2009-10-12 15:37:11

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: php i cenzura

Działa dzięki :D

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.015 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00134 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.147.83.8' WHERE u.id=1
0.00130 UPDATE punbb_online SET logged=1716376172 WHERE ident='3.147.83.8'
0.00088 SELECT * FROM punbb_online WHERE logged<1716375872
0.00071 SELECT topic_id FROM punbb_posts WHERE id=130260
0.00211 SELECT id FROM punbb_posts WHERE topic_id=15152 ORDER BY posted
0.00152 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15152 AND t.moved_to IS NULL
0.00009 SELECT search_for, replace_with FROM punbb_censoring
0.00147 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15152 ORDER BY p.id LIMIT 0,25
0.00129 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15152
Total query time: 0.01086 s