07 12
Wczoraj na jednym hostingu zainstalowałem klasę phpmailer. Wyrzucało jakieś błędy. Po krótkiej analizie okazało się, że pliki php są domyślnie interpretowane przez php4. Miałem do wyboru dwie opcje:
- znaleźć jakąś starszą wersję klasy phpmailer kompatybilną z php4 (co jest głupotą, bo prędzej czy później na serwerze domyślnie zostanie włączona obsługa php5, więc nie ma sensu instalować przestarzałych bibliotek)
- zmusić jakoś serwer do tego, aby pliki z rozszerzeniem php był interpretowane domyślnie przez interpreter php5
Wybrałem to drugie rozwiązanie. Okazało się, że wystarczy do pliku .htaccess dopisać aż jedną linijkę Czytaj dalej »
Tagi: htaccess, php4, php5, phpmailer
03 30
Według algorytmu PageRank Twoja strona jest tym bardziej wartościowa, im więcej innych stron do niej linkuje. Jednak czasami zachodzi potrzeba przeniesienia strony (np. zmieniasz nazwę firmy i wiadomo, że strona zmieni adres z StaraNazwaFirmy.pl na NowaNazwaFirmy.pl). Najprościej by było poprosić wszystkie osoby, które do Ciebie linkują, aby zaktualizowały adres strony. Jednak wiadomo, że nie jest to w 100% wykonywalne, gdyż ktoś może zignorować Twoją prośbę, a także możesz nie znaleźć wszystkich stron, które do Ciebie linkują. Jest jednak dość prosty sposób, na poinformowanie wyszukiwarki google, że dana strona zmieniła adres, co spowoduje przekazanie „mocy” starej domeny nowej domenie. Ta sztuczka nazywa się przekierowanie 301.
Czytaj dalej »
Tagi: 301, google, htaccess, pozycjonowanie
02 09
W PHP3, aby odwołać się do zmiennej wysłanej przez formularz (niezależnie czy metodą GET, czy metodą POST) pisało się nazwę zmiennej np.
echo($pole);
Jest to bardzo wygodne, ale okazuje się, że użytkownik może oszukiwać aplikację. Czasami można poprzez doczepienie parametru do adresu URL ustawić wartość jakiejś zmiennej w kodzie PHP co może mieć katastrofalne skutki, jeśli programista pisze niechlujny kod. Dlatego też odchodzi się od domyślnie włączonej obsługi register globals. Wtedy należy się do zmiennych odwoływać poprzez specjalne tablice tj.
dla zmiennych wysyłanych metodą post:
echo($_POST['pole']);
dla zmiennych wysyłanych metodą get:
echo($_GET['pole']);
Często sam w kodzie sobie upraszczam pisząc w pierwszych linijkach kodu instrukcje przypisania tj.
$imie=$_POST['imie'] ;
$nazwisko=$_POST['nazwisko'];
Jednak czasami istnieje konieczność włączenia register globals (np. gdy korzystamy z jakiejś starej aplikacji, która ma setki linii kodu i dość czasochłonne by było poprawienie jej tak, aby spełniała najnowsze standardy). Wtedy można się pokusić o włączenie register globals (co wiążę się z zwiększonym ryzykiem ataku) poprzez dopisanie magicznej formułki do pliku .htaccess
Czytaj dalej »
Tagi: formularz, get, htaccess, PHP, php3, php4, php5, post, register globals
02 04
Załóżmy, że wrzucisz na swój serwer jakieś śmieszne zdjęcie (niekoniecznie musi być śmieszne, może być to jakiś ciekawy diagram itp. ale w tym przykładzie załóżmy, że jest ono śmieszne, bo takie zdjęcia najchętniej się rozchodzą po internecie). Załóżmy, że zdjęcie zajmuje 100 KB. Ponieważ zdjęcie jest bardzo śmieszne, więc sporo osób wysyła link do Twojej strony WWW, gdzie znajduje się zdjęcie. Ale niektórzy mogą owe zdjęcie podlinkować u siebie na swojej stronie WWW zdjęcie z Twojego serwera (zamiast skopiować plik graficzny na swój serwer). W ten sposób takie osoby kradną Tobie transfer (potocznie nazywa się to hotlinkowanie).
Dlaczego to jest złe? Otóż zdjęcie zajmuje 100KB. Jeśli 1000 osób odwiedzi czyjąś stronę, która hotlinkuje Twoje zdjęcie, to zużyjesz 100MB transferu (!). A teraz sobie wyobraź, że zdjęcie linkuje jakiś bardzo popularny serwis. Albo jest na tyle śmieszne, że wiele osób na swoich stronach zacznie je hotlinkować. Albo załóżmy, że często zamieszczasz u siebie różne śmieszne zdjęcia, które ciągle inni hotlinkują. W szybkim tempie możesz mieć wyczerpany całkowicie limit transferu (!) Ale można tego uniknąć. Otóż można do pliku .htaccess dodać odpowiednie wpisy, które zabronią hotlinkowania zdjęcia. Czytaj dalej »
Tagi: gif, grafika, hotlink, htaccess, jpeg, jpg, mod_rewrite, png, transfer
02 04
Czasami istnieje konieczność zablokowania dostępu do pewnych plików, bądź nawet do pewnego katalogu. Załóżmy, że napisałeś prostą aplikację w PHP, która zapisuje jakieś pliki do katalogu o nazwie data (mogą to być wygenerowane jakieś pliki tymczasowe, może jakiś system cache zapisuje pewne treści, albo z powodu braku bazy danych przechowujesz pewne dane w plikach tekstowych).
Istnieje konieczność zablokowania dostępu do plików. Załóżmy, że ktoś odgadnie, że pliki z ważnymi danymi (np. loginy, e-maile i hasła użytkowników) przechowujesz w katalogu data a pliki mają nazwy 0001.txt, 0002.txt itp. Czytaj dalej »
Tagi: allow, deny, htaccess, indexes
02 03
Jeśli robisz stronę WWW w jakimś edytorze WYSIWYG (a nie za pomocą jakiegoś CMSa) to z dużym prawdopodobieństwem ukaże się strona zawierająca błąd 404 domyślnie zdefiniowana przez hostingodawcę – patrz poniższy rysunek (o ile hostingodawca ją zdefiniował) albo komunikat przeglądarki internetowej o nieistniejącej stronie

Jak widzisz taki komunikat błędu nie wygląda zbyt profesjonalnie. Ale można w bardzo prosty sposób zrobić własną stronę błędu 404 wyglądającą jak część Twojego serwisu WWW. Czytaj dalej »
Tagi: 404, error404, htaccess
02 02
Często niektóre osoby pytają się, czy mają stosować wersję swojej strony z przedrostkiem www czy bez. Ja preferuję wersję z www, gdyż programy pocztowe w wiadomościach tekstowych od razu taki ciąg znaków zaczynający się od www interpretują jako adres internetowy i robią klikalny link. Dzięki temu osoby czytające ode mnie maile mogę kliknąć w link bez potrzeby kopiowania go do schowka i wklejania na pasku adresowym w przeglądarce internetowej. Natomiast są osoby które stosują wersję bez www (wtedy trzeba poprzedzać adres „brzydkim” przedrostkiem http://, aby programy pocztowe zrobiły z niego linka).
No ale podsumowując obie wersje są „dobre” ważne, aby się trzymać tego konsekwentnie! Tj. albo wszędzie podajesz adres swojej strony z przedrostkiem www. albo bez niego! Dlaczego?? Otóż dla wyszukiwarek internetowych oba adresy: www.PomocnikWebmastera.pl i PomocnikWebmastera.pl to są dwa różne adresy! Mało tego – jedna osoba może do Ciebie podlinkować wersję z www a druga osoba bez www. W ten sposób jakby rozpraszasz moc linków przychodzących na jakby dwie wersje strony!! Dodatkowo google może to uznać za duplicate content.
Najlepiej jest ustawić sobie w pliku .htaccess automatyczne przekierowanie na jakąś wersję. Wtedy wpisując np. PomocnikWebmastera/plik.htm zostanę przekierowany na www.PomocnikWebmastera.pl/plik.htm. Poniżej podaję gotową regułkę.
Przekierowanie z domena.pl na www.domena.pl
RewriteCond %{HTTP_HOST} ^domena\.pl$ [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [L,R=301]
Przekierowanie z www.domena.pl na domena.pl
RewriteCond %{HTTP_HOST} ^www\.domena\.pl$ [NC]
RewriteRule ^(.*)$ http://domena.pl/$1 [L,R=301]
Uwaga: W pierwszej linijce (RewriteCond) każdą kropkę należy poprzedzić ukośnikiem!!
Tagi: htaccess, mod_rewrite, RewriteRule, seo
Ostatnie komentarze