Strona jest już drugi tydzień w sieci, a google nie specjalnie chce się zabrać za jej indeksowanie. No cóż skoro nie chce trzeba mu odrobinę pomóc. Odkąd zapoznałem się z przyjaznymi adresami url, zawsze wydawało mi się, że aby osiągnąć zamierzony efekt przejrzystości adresu trzeba w tą całą eskapadę władować sporo czasu i przede wszystkim chęci. Niestety miałem rację. Jak mawia pewien nauczyciel „pierwszy raz zawsze boli”. Przerobienie bloga kosztowało mnie kilka (dłuższych) chwil. Fakt kodu do wklepania jest nie wiele, ale … lepiej przeczytać jakiś kurs i dobrze się zastanowić jak kierować ruchem na stronie zanim przystąpi się do działania.
Pozostałem przy przesyłaniu pola id. Gdybym wybrał pole tytuł, w którym występują polskie znaki + znaki specjalne jak ‘+’,'-’ itp. musiałbym jeszcze sporo się namęczyć. Przecież nikt nie lubi krzaczków takich jak te %2B, %20. Kumpel polecił mi metodę mod-rewrite.
Oto listing pliku .htaccess:
Options FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]+)/([a-zA-Z0-9\/\+-\_]+)$ start.php?numer=$1&nazwa=$2 [L]
RewriteRule ^komentarz/([0-9]+)$ /addkom.php?numer=$1 [L]
RewriteRule ^([a-zA-Z0-9\/\+-]+)$ /archiwum.php?dzial=$1 [L]
Efekt jaki dzięki temu uzyskujemy jest naprawdę zapierający dech w piersiach.
Przed zastosowaniem mod-rewrite:
www.blog.levik.ddl2.pl/start.php?id=23
Po zastosowaniu mod-rewrite:
www.blog.levik.ddl2.pl/23/dev-c++_cURL
Odnoszę wrażenie, że wyszukiwarce google to się spodoba. Doszła jeszcze do tego funkcja podmieniająca polskie znaki i kilka znaków specjalnych, ale jest to zaledwie kilka linii kodu.
1
2
3
4
5
6
7
| function mylink($string) {
$polish = array('/ą/','/ę/','/ś/','/ć/','/ż/','/ź/','/ł/','/Ą/','/Ę/','/Ś/','/Ć/','/Ż/','/Ź/','/Ł/');
$latin = array('/a/','/e/','/s/','/c/','/z/','/z/','/l/','/A/','/E/','/S/','/C/','/Z/','/Z/','/L/');
$mylink = strtolower(preg_replace($polish, $latin, $string));
return str_replace(" ", "_", preg_replace("/[^a-zA-Z0-9 \+ -]/", "", $mylink) );
} |
Prawdą jest, że mysql++ to rewelacyjna biblioteka, ale nie jestem w stanie policzyć ile godzin walczyłem, żeby ją zainstalować i skompilować program na moim Xubuntu 7.04. Cała historia, zaczęła się od pomysłu na bota, o którym zapewne jeszcze nie raz napiszę. Wracając do sedna – bot miał komunikować się z bazą danych. Zacząłem szperać i trafiłem na mysql++ jako w pełni darmowe rozwiązanie, o którym wszyscy wypowiadają się w samych superlatywach. Z tej strony www.tangentsoft.net/mysql++/ zassałem paczki (2.3.2) i do dzieła.
Pakiety, jakie należy zainstalować, aby wogóle zacząć myśleć o mysql++ to:
mysql-client i libmysqlclient15-dev
Następnie możemy przejść do wydania poleceń (na moim sprzęcie troszkę to wszystko trwało – Toshiba 1800-554):
# ./configure
# make
# make install
Po tym wszystkim pomyślałem „no to teraz biorę się do roboty”, ale niestety to był dopiero początek…
Mój kompilator rzecz jasna g++ korzystam również z IDE – Anjuta. W moim przypadku polecenie kompilacji wygląda tak :
g++ test.cpp -o test -I /usr/local/include/mysql -I /usr/local/include/mysql++ -l mysqlpp -l mysqlclient
Wszystko pięknie, niestety jest jeszcze jedno „ale” program nie zadziała, jeśli nie dodamy tej linii kodu:
/usr/local/lib
do pliku /etc/ld.so.conf, następnie jako root wydajemy polecenie
#ldconfig
Dopiero teraz możemy cieszyć się naszym programem, poniżej wklejam przykładowy kod. Jeśli pojawią się jakieś pytania problemy piszcie śmiało.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include <iostream>
#include <mysql.h>
using namespace std;
using namespace mysqlpp;
int main() {
try {
char db[] = "nazwa_bazy_danych";
char host[] = "host";
char user[] = "user";
char passwd[] = "spass";
Connection c(db, host, user, passwd);
if(c)
cout << "==> Połączenie OK";
else
cout << "==> Sprawdz połącznie - ERROR ";
} catch (Exception& e) {
cout << "==> Error: " << e.what() << endl;
}
} |