Kropka nad „i”

Moje komentarze

Wyszukiwarka na blogu 2

25.XI

Dodałem kolejną wyszukiwarkę, jest to nowy silnik tzn. inny sposób przeszukiwania strony. Wyniki są podawane tak samo jak wyniki w Google, czyli według lepszego trafienia wyników. Tyle teorii a jak jest naprawdę to trudno powiedzieć, należy wierzyć na słowo że tak jest. Zaznaczyłem że domyślnie wyszukuje z tej niby lepszej wyszukiwarki (na wszelki wypadek dopisałem opcję wyboru wersji wyszukiwarki).
Wyszukiwarka numer jeden, bierze pod uwagę tylko wpisy, natomiast wyszukiwarka 2 w pierwszej kolejności zwraca uwagę na tytuł wpisu a potem na treść wpisu. Dodam że pierwsza jest oparta o LIKE a druga wyszukiwarka jest oparta o tzw. Full-Text.

Tagi: wyszukiwarkaphpmysqlLikeFull-Text

Wyszukiwarka na blogu

24.XI

Niedawno zmieniałem dosyć gruntownie blog i po tych zmianach wyszukiwarka przez Google przestała poprawnie działać, jest to moja wina gdyż zmieniła się struktura plików. Kiedyś miałem własną wyszukiwarkę i teraz byłem zmuszony powrócić do tego pomysłu. Uznacie może że to niepotrzebny bajer, są przecież tagi. Niedawno chciałem poszukać określony wpis a raczej temat który był poruszany w nim, a tutaj niespodzianka... nie wiedziałem jak to zrobić. Przez ostatnie 2-3 dni biedziłem się jak to zrobić, niby są opisy ale jak się domyślacie wdrożenie tego na mój blog już takie proste nie było.
Wyszukiwarka działa i przeszukuje wszystkie wpisy, kolumna z wpisami (powinienem jeszcze dodać przeszukiwanie kolumny z tagami). Póki co to spełnia swoje zadanie a czasami bywa mi bardzo pomocna np. gdy zamierzam coś kupić a poszukuje poprzednich moich recenzji na dany sprzęt.

Tagi: wyszukiwarkaphpmysql

Lekkie zmiany na blogu

15.VI

Postanowiłem wreszcie się zająć blogiem tzn. kodzikiem bo narosło różnych niepotrzebnych już rzeczy. Optymalizacji wymaga jeszcze to i tamto ale mi się nie chcę więcej robić ;)
Usunąłem formularz kontaktowy, tylko boty pisały do mnie. Otworzyłem komentowanie wpisów i inne zmiany ale to już są niewidoczne. Oby wszystko działało dobrze po tych zmianach.

Tagi: blogphpkontakt

Kalendarz na blogu 2

29.XI

Wrr, zawsze coś... dlaczego to nie może tak zwyczajnie sobie działać. Kalendarz ładnie działa dopóki nie są wpisane dwie lub więcej notek tego samego dnia, wtedy się wszystko sypie. Siedziałem nad tym sporo godzin zanim coś wymyśliłem a potem się okazywało że po zrobieniu jest jeszcze gorzej. Wreszcie mam nadzieje że to działa... co prawda pokazuje tylko jeden wpis tego samego dnia ale przynajmniej idzie dalej ignorując kolejne wpisy z tego samego dnia. Naturalnie wpisy są widoczne wszystkie gdy wybrać dany miesiąc, jednak na kalendarzu jest jeden link do jednego wpisu. Można co prawda jeszcze pokombinować jak zrobić aby były dwa i więcej linków na danym dzień ale jest to naprawdę jednostkowy przypadek że tak jest.
Przypominam że kalendarz bez akceptacji cookie (ciasteczka) w przeglądarce pokazuje tylko dany miesiąc bez możliwości zmiany daty.

Tagi: kalendarzblogskryptphp

Kalendarz na blogu

27.XI

Co prawda kalendarz działał dobrze ale nie byłem w pełni zadowolony z kodu, był zbyt zawiły. Od chwili zrobienia tego kalendarza to myślałem jak go uprościć, dopiero dziś rano przyszło olśnienie. Wpierw pomyślałem o innym rozwiązaniu ale pomimo tego że upraszczał kod to jednak jeszcze nie było TO. Potem przyszło kolejne olśnienie... zrobiłem tak jak pomyślałem i o dziwo za pierwszym razem było dobrze, teraz kod jest prostszy i szybszy. Pewnie te ułamki sekund nie mają znaczenia ale jestem bardzo zadowolony z efektu. Wyeliminowałem zbędną pętle jak i kilka IF... zapewne większość z Was nie wie w czym rzecz ale... musiałem się pochwalić :)

Tagi: kalendarzblogskryptphp

Blog w remoncie

6.XI

Już dawno chciałem coś zmienić na blogu ale nie było chęci, teraz wreszcie to zrobiłem. Zmiana nie polegała na zmianie wyglądu czy funkcjonowania ale było... techniczna.
Kiedy robiłem blog to uczyłem się pisania w php obiektowym i część powstała obiektowo... później nie rozwijałem się w tym kierunku i praktycznie nic już nie pamiętam z tego. Odczułem to gdy zmieniałem AntyBota, jakoś udało mi się to sklecić ale widziałem że jeżeli coś z tym nie zrobię to będzie coraz trudniej z wszelkimi zmianami. Wczoraj zmieniłem cały kod obiektowy na strukturalny... wiem że to takie trendy pisać obiektowo ale mi to nie wychodziło. Przy okazji odchudziłem trochę kod CSS jako że było trochę nadmiarowego kodu. Zapewne jeszcze by się przydało zmienić to i owo ale nie chcę za dużo mieszać bo mogę coś zepsuć a potem dochodzenie co jest źle zajmuje sporo czasu. Nie jestem na tyle biegły żeby czuć się jak "ryba w wodzie" w programowaniu php.
Przed chwilą zmieniłem lekko działanie kalendarza, z testów wynika że tym razem nic nie zepsułem :D

Tagi: blogphp

AntyBot 3

7.X

Na niektórych stronach jest zabezpieczenie w postaci działania arytmetycznego ze zmiennym polem do wpisania. Postanowiłem coś takiego napisać i zastosować na moim blogu... poprzednie było dobre i boty nie przechodziły ale chcę spróbować czegoś innego. W ramach "nauki" powstała taka funkcja
function zabezpieczenie($M) {
$L["1"]=rand(1, 10); $L["2"]=rand(1, 10);
if($L["1"]>$L["2"]) { $razem = $L["1"]-$L["2"]; $znak = '-'; } else { $razem = $L["1"]+$L["2"]; $znak = '+'; }
$Cr = Array(1 => 'I','II','III','IV','V','VI','VII','VIII','IX','X');
$Cs = Array(1 => 'jeden','dwa','trzy','cztery','pięć','sześć','siedem','osiem','dziewięć','dziesięć');

switch($M) {
case 1: $L["3"] = $L["1"]; $L["4"] = $L["2"]; break; 
case 2: $L["3"] = $Cr[$L["1"]]; $L["4"] = $Cr[$L["2"]]; break;
case 3: $L["3"] = $Cs[$L["1"]]; $L["4"] = $Cs[$L["2"]]; break;
}

$losowanie = rand(1,3);
switch($losowanie) {
case 1:
$a = '<input type="hidden" name="zabez-1" value="'.$razem.'" /> <p>'.$L["3"].' '.$znak.' '.$L["4"].' = <input type="text" name="zabez-2" size="3" /></p>';
break;
case 2:
$a = '<input type="hidden" name="zabez-1" value="'.$L["2"].'" /><p>'.$L["3"].' '.$znak.' <input type="text" name="zabez-2" size="3" /> = '.$razem.'</p>';
break;
case 3:
$a = '<input type="hidden" name="zabez-1" value="'.$L["1"].'" /><p><input type="text" name="zabez-2" size="3" /> '.$znak.' '.$L["4"].' = '.$razem.'</p>';
break;
}
return $a; } 
Potem w ramach formularza umieszczamy wywołanie funkcji zabezpieczającej
zabezpieczenie(1)
Jest możliwość zmiany z cyfr arabskich na rzymskie, w tym celu zmieniamy 1 na 2... aby jeszcze bardziej utrudnić botom to jest możliwość zamiany na liczby wpisane słownie (3).
Jednak ZAWSZE wpisujemy cyfry arabskie w odpowiednim polu.
Przykładowy formularz, może tak wyglądać:
echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.zabezpieczenie(3).'
<input type="submit" value="Wyślij" name="wyslij" />
</fieldset>
</form>';
Na koniec umieszczamy sprawdzanie wpisania poprawnego znaku w pole formularza.
if(isset($_POST["wyslij"])) {
if($_POST["zabez-1"]==$_POST["zabez-2"]) { echo '<p>Dobrze</p>'; } else { echo '<p>Źle</p>'; } 
}

Tagi: kodphpAntyBot

AntyBot 2

22.XII

Pokazywałem zabezpieczenie oparte na działaniu matematycznym a teraz zaprezentuje zabezpieczenie oparte na wpisaniu określonego znaku.
Na początek kod funkcji który umieszczamy przed naszym formularzem.
function zabezpieczenie() {
$znak = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
$ktory_znak = array('pierwszy', 'drugi', 'trzeci', 'czwarty', 'piąty', 'szósty', 'siódmy', 'ósmy', 'dziewiąty', 'dziesiąty');
$liczby = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$los = array_rand($znak, 10);
$string_znaki = $znak[$los[0]].$znak[$los[1]].$znak[$los[2]].$znak[$los[3]].$znak[$los[4]].$znak[$los[5]].$znak[$los[6]].$znak[$los[7]].$znak[$los[8]].$znak[$los[9]];
$znak_los = array_rand($liczby, 2);

$a = '<input type="hidden" name="zabez-1" value="'.$string_znaki[$znak_los[0]].'" />
<p>Znaki: <b>'.$string_znaki.'</b></p><p>Wpisz odpowiedni znak aby wysłać. Znak to: <b>'.$ktory_znak[$znak_los[0]].'</b>.</p>
<p><input type="text" name="zabez-2" value="" /></p>';
return $a; } 
Potem w ramach formularza umieszczamy wywołanie funkcji zabezpieczającej
zabezpieczenie()
Przykładowy formularz może wyglądać tak:
echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.zabezpieczenie().'
<input type="submit" value="Wyślij" name="wyslij" />
</fieldset>
</form>';
Na koniec umieszczamy sprawdzanie wpisania poprawnego znaku w pole formularza.
if(isset($_POST["wyslij"])) {
if($_POST["zabez-1"]==$_POST["zabez-2"]) { echo '<p>Dobrze</p>'; } else { echo '<p>Źle</p>'; } }
Siła zaprezentowanego zabezpieczania polega na tym że wskazane jest znać język Polski lub przynajmniej kilka słów. Wpisanie określonego znaku z ciągu jest napisane słownie (liczone od lewej strony). Boty z reguły są obcojęzyczne co powoduje że bot nie jest w stanie odczytać jaki znak ma wpisać z podanego ciągu... jest naturalnie ryzyko że bot będzie miał szczęście i akurat trafi na odpowiedni znak.
Moim zdanie jest to zabezpieczenie które w minimalnym stopniu jest utrudnieniem dla człowieka a z kolei dla bota jest prawie nie do przejścia, takie zabezpieczenie użyłem na tym blogu i jeszcze mi się nie zdarzyło aby bot to przeszedł.

Tagi: kodphpAntyBot

AntyBot

19.XII

Zapewne wielu z Was boryka się z botami na forum, blogu. Na tym blogu użyłem zabezpieczenia znakowego, jest jak dotychczas w 100% zabezpieczający, zaprezentuje inny sposób (działanie matematyczne).
Zaczynamy od umieszczenia funkcji która to obsługuje i należy ją umieścić przed naszym formularzem.
function zabezpieczenie($Z1, $Z2) {
$L["1"]=rand($Z1, $Z2); $L["2"]=rand($Z1, $Z2); $L["3"]=rand($Z1, $Z2);
$razem = $L["1"]+$L["2"]+$L["3"];
$a = '<input type="hidden" name="zabez-1" value="'.$L["3"].'" /> 
<p>'.$L["1"].' + '.$L["2"].' + <input type="text" name="zabez-2" size="3" /> = '.$razem.'</p>'; 
return $a; }
Następnie umieszczamy w ramach formularza wywołanie naszej funkcji.
zabezpieczenie(1,9)
Przykładowy formularz może wyglądać tak:
echo '<form action="" method="post">
<fieldset><legend>Zabezpieczenie</legend>
'.zabezpieczenie(1,9).'
<input type="submit" value="Wyślij" name="wyslij" />
</fieldset>
</form> ';
Teraz przykładowa akcja gdy klikniemy na wysyłanie formularza oraz sprawdzanie poprawności działania matematycznego (wpisanej liczby).
if(isset($_POST["wyslij"])) {
if($_POST["zabez-1"]==$_POST["zabez-2"]) { echo '<p>Dobrze</p>'; } else { echo '<p>Źle</p>'; } }
Naturalnie zaprezentowany kod to PHP i należy go umieścić między znacznikami
Na koniec wyjaśnienie co oznaczają użyte liczby w wywołaniu funkcji, gdy np. chcemy działanie skomplikować to możemy zwiększyć zakres użytych liczb np.
zabezpieczenie(1,20)

Tagi: kodphpAntyBot

Funkcja, nazwa miesiąca

13.X

Jest to funkcja zamieniająca datę (miesiąc) na zapis słowny lub rzymski, podobna funkcja jest użyta na blogu.
function nazwaM($wersja, $data) {
$miesiac=date("m",strtotime($data));
switch ($wersja) {
case 1:
$tablica=array('01'=>'Styczeń','02'=>'Luty','03'=>'Marzec','04'=>'Kwiecień','05'=>'Maj','06'=>'Czerwiec','07'=>'Lipiec','08'=>'Sierpień','09'=>'Wrzesień','10'=>'Październik','11'=>'Listopad','12'=>'Grudzień');
break;
case 2:
$tablica=array('01'=>'I','02'=>'II','03'=>'III','04'=>'IV','05'=>'V','06'=>'VI','07'=>'VII','08'=>'VIII','09'=>'IX','10'=>'X','11'=>'XI','12'=>'XII');
break; 
}
foreach($tablica as $klucz => $wartosc) { $miesiac=str_replace("$klucz", "$wartosc", $miesiac); }
return $miesiac;
}
Sposób użycia funkcji jest bardzo prosty:
echo nazwaM(1,'2012-10-13');
W nawiasie wpisujemy wersje zamiany (miesiąc słownie/rzymski), oraz datę do zamiany.
Funkcja jest dosyć prosta i nie powinno być problemy z lekką zmianą tak aby dostosować do swoich potrzeb.

Tagi: funkcjakodphp

Moje strony
Portfolio
Opowiadania
Wiki

Archiwum
2018
I
II
III
IV
V
VI
VII
VIII
X
XI
XII
2017
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
2016
I
II
III
IV
V
VI
VII
VIII
IX
XI
XII
2015
I
III
IV
V
VI
VII
IX
X
XI
XII
2014
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
2013
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
2012
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
2011
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
2010
I
II
III
IV
V
VI
VII
VIII
IX
X
XII
2009
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
2008
IX
X
XI
XII
Wybrane tagi: NTC | Trzeciewiec | Książki | LTE
wpisy: 1040 | © 5.09.2008