Zmiany na wiosnę

Tagi: programowanie, spolszczenie, Sport, webmastering, wiosna, Wordpress, ZaDiS, zmiany,
Kategoria:

Przepraszam was drodzy czytelnicy, że nie pisałem tak długo, ale nie miałem czasu. Nadeszła wiosna, więc trzeba zacząć biegać, ćwiczyć, grać w i piłkę nożną. Biegać jeszcze nie zacząłem, ale zacząłem już chodzić na treningi do klubu piłkarskiego w mojej miejscowości. Musiałem też zainstalować Wordpress 2.5, ale nie wiem czego spolszczenie mi nie działa, chociaż zrobiłem to co trzeba, czyli wrzuciłem pliku pl.mo i pl.po do "/wp-content/languages/" , później do "/wp-includes/languages/" i dalej nie działa. Będę musiał pokombinować :/ . W związku z tym, że dostałem się do drugiego etapu OIG, musiałem trochę poprogramować, a czasu dużo nie mam drugi etap już w sobotę. Jeśli chodzi o programowanie, to mam zamiar stworzyć klasę AWK(taki język programowania, wiecej na wikipedi oraz na blogu zyxist.com) w C++ i D. Jeśli chodzi o programowanie, zrozumiałem, też, że nowe języki, choć są bardzo dobre i nowoczesne, nie zdobędą popularności, bo większość przyzwyczaja się do tych starszych, jedyna nadzieja w nastolatkach, którzy teraz zaczynają programować lub programują. Wiem, wiem, że kolejne głupie wytłumaczenie, ale musiałem też zająć stronką klanu SoW(do którego ja należę) z CounterStrike, więc musiałem się pomęczyć z logo we Flashu, oraz z innymi zachciankami członków SoW. Musiałem jeszcze bawić się z hostingiem, ale o tym w innym wpisie. PS. Jeszcze jednej zachcianki nie spełniłem.

Teraz już nie zrobię takiej dużej przerwy, bo nie mam powodów i głupich wymówek oraz mam bardzo dużo wpisów w planie :D . Więc spodziewajcie się tu dużo ciekawych wpisów.

Zobacz komentarze

Walka ze spamem

Tagi: Informatyka, kod, spam, walka, webmastering, Wordpress,
Kategoria:

Od września do początku lutego, nie męczył mnie żaden spam, normalne komentarze też rzadko pojawiały się, więc akceptowałem komentarze za pośrednictwem mojego e-mail. Ale sielanka się skończyła, spamerzy znaleźli mój blog, poczta zapełniona kilkunastoma mail z zapytaniem o akceptację. Postanowiłem z nimi walczyć, zarzuciłem Akismet na bloga, no i w tym tygodniu tworzyłem skrypt, który sprawdzał, czy osoba wysyłająca komentarz nie jest botem. Na początku liczby i działanie były generowane PHP(i tak też jest teraz), ale poprawność komentarz była sprawdzana za pomocą JavaScript, jeśli zły wynik, to funkcja usuwała wartość atrybutu action w polu form(formularz komentarza) i to uniemożliwiało wysłanie komentarze, ale miało jedną wadę, lepsze skrypty(czyt. boty) mogło "odczytać" dzięki temu prawidłowy wynik. Więc postanowiłem, że każdy(nawet jeśli ma zły wynik) ma możliwość wysłania komentarza, a sprawdzanie poprawności wyniku będzie się odbywało za pomocą PHP, w pliku przetwarzającym komentarz. Mam nadzieję, że boty nie poradzą sobie z tym, ale jak już sobie poradzą, to będzie losowo pisana historyjka:
Treść: Do autobusu wsiadło pięć osób. Na pierwszym przystanku wysiadły dwie osoby, a wsiadły zero. Na drugim przystanku wysiadły trzy osób, a wsiadły dwie. Na trzecim wysiadła jedna. Pytanie: Ile osób jechało autobusem z zerowego przystanku do pierwszego?
Z takim czymś napewno komputery nie poradziłyby sobie. A teraz kod skryptu o którym mówiłem przed cytatem: wp-comments-post.php(plik Wordpress'a - znajduje się w głównym katalogu)
 $prawidlowy = 0;
$_1liczba = 0;
$_2liczba = 0;
switch($_POST['liczba_1'])
{
case 'jeden': $_1liczba = 1; break;
case 'dwa': $_1liczba = 2; break;
case 'trzy': $_1liczba = 3; break;
case 'cztery': $_1liczba = 4; break;
case 'piec': $_1liczba = 5; break;
case 'szesc': $_1liczba = 6; break;
case 'siedem': $_1liczba = 7; break;
case 'osiem': $_1liczba = 8; break;
case 'dziewiec': $_1liczba = 9; break;
}
switch($_POST['liczba_2'])
{
case 'jeden': $_2liczba = 1; break;
case 'dwa': $_2liczba = 2; break;
case 'trzy': $_2liczba = 3; break;
case 'cztery': $_2liczba = 4; break;
case 'piec': $_2liczba = 5; break;
case 'szesc': $_2liczba = 6; break;
case 'siedem': $_2liczba = 7; break;
case 'osiem': $_2liczba = 8; break;
case 'dziewiec': $_2liczba = 9; break;
}
switch($_POST['dzialanie'])
{
case 'Suma': $prawidlowy = $_1liczba + $_2liczba; break;
case 'Roznica': $prawidlowy = $_1liczba - $_2liczba; break;
case 'Iloczyn': $prawidlowy = $_1liczba * $_2liczba; break;
}
if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
header('Allow: POST');
header('HTTP/1.1 405 Method Not Allowed');
header('Content-Type: text/plain');
exit;
}
require( dirname(__FILE__) . '/wp-config.php' );
nocache_headers();
$comment_post_ID = (int) $_POST['comment_post_ID'];
$status = $wpdb->get_row("SELECT post_status,
comment_status FROM $wpdb->posts WHERE ID = '$comment_post_ID'");
if($_POST['wynik'] != $prawidlowy)
{
echo "Wynik działania jest zły, jeśli nie jesteś botem spróbuj jeszcze raz";
exit;
}
elseif ( empty($status->comment_status) )
{
do_action('comment_id_not_found', $comment_post_ID);
exit;
}
elseif ( 'closed' ==  $status->comment_status )
{
do_action('comment_closed', $comment_post_ID);
wp_die( __('Sorry, comments are closed for this item.') );
}
elseif ( in_array($status->post_status, array('draft', 'pending') ) )
{
do_action('comment_on_draft', $comment_post_ID);
exit;
}
...
comments.php(znajduje się w katalogu twojego używanego stylu w Worpressie np. "wp-content/thems/black_batman/comments.php")
$dzialania = Array('Suma', 'Roznica', 'Iloczyn');
$liczby = Array('jeden', 'dwa', 'trzy', 'cztery', 'piec', 'szesc', 'siedem', 'osiem', 'dziewiec');
$_1liczba = (/*liczba losowa*/) % 9;
$_2liczba = (/*liczba losowa*/) % 9;
$dzialanie = (/*liczba losowa*/) % 3;
$wynik = 0;
if($dzialanie == 0)$wynik = ($_1liczba + 1) + ($_2liczba + 1);
elseif($dzialanie == 1)$wynik = ($_1liczba + 1) - ($_2liczba + 1);
elseif($dzialanie == 2)$wynik = ($_1liczba + 1) * ($_2liczba + 1);
?>
//początek formularza do wysyłania komentarzy(po 
)
//koniec formularza(przed
)

Zobacz komentarze