PHP: Dwa tricki, które musisz znać!
Poziom mojej irytacji sięga zenitu, gdy po raz kolejny ktoś mnie pyta “Jak wyświetlić błędy PHP na stronie?” lub “Jak usunąć identyfikator sesji z linka?”! Dlatego też postanowiłem opisać te dwie sztuczki PHP na blogu – dla świętego spokoku.
Wyświetlanie błędów PHP na stronie
Zazwyczaj wyświetlanie błędów (dokładniej to: Fatal Error, Parse Error, Warning czy Notice) można ustawić bezpośrenio w panelu serwera. Czasem można to zrobić z poziomu pliku .htaccess lub php.ini. Ale czasami można to osiągnąć wklejając dwie krótkie linijki kodu na samej górze głównego pliku PHP, np. w index.php. Oto one:
error_reporting(E_ALL);
ini_set("display_errors", 1);
Więcej na ten temat można doczytać w manualu PHP. Po co mi ta funkcja? Ano czasem coś nie działa na starych serwisach i wyświetlanie błędów, i ostrzeżeń PHP na stronie może być bardzo pomocne.
Ukrywanie identyfikatora sesji w linkach
Zdarza się, że niektóre serwery lub skrypty doklejają sobie na końcu każdego linka brzydki identyfikator sesji, co wygląda mniej więcej tak:
http://www.moja-strona.pl/szukaj?PHPSESSID=f73206e16d5751d86c234348fcace65f
Taka sytuacja jest bardzo nie korzystna dla SEO, ponieważ może generować tak zwany duplicate content, czyli podstrony o powielonej treści. Jest jednak prosty myk, aby rozwiązać ten problem. Podobnie jak w powyższym przykładzie, na górze pliku głównego wklejamy dwie linijki (nie wiem czy pierwsza jest potrzebna, ale działa):
ini_set("url_rewriter.tags","");
ini_set("session.use_trans_sid", false);
Nie jestem ekspertem od programowania w PHP, ale powyższe metody zawsze działały :) Jeżeli znacie lepsze metody z poziomy kodu, dajcie znać w komentarzach!
Dodatkowo polecam zainstalować sobie xdebug, który bardzo “ładnie” pokazuje nam błędy, notice, warring.
Nie znam, ale chętnie się zapoznam :) Nowe projekty robie w frameworkach MVC a one mają fajne debugery, ale czasem trzeba pogrzebać w starych stronkach, a tam jest różnie, szczególnie gdy robił je ktoś inny ;)
Xdebug, nie tylko zmienia sposób wyświetlania błędów, lecz również zmienia sposób prezentacji danych które są wypluwane za pomocą funkcji var_dump. Dodaje własne kolorawanie, oznacza typy, dodaje tag , etc.
google sobie samo usuwa session id chyba ze ma inna nazwe niz standardowa, wiec nie wiem co tu nazywac trickiem…
jak user wylaczy coockies, Ty wylaczysz to w urlu to nie ma sesji w ogole
@kwiateusz nie niektórych starych stronkach, robionych jeszcze w latach np 2001 to uwierz mi, że różne dziwne wynalazki są i to się czasem przydaje;)