Dlaczego tak
Wypisanie danych od użytkownika bez zmiany pozwala wstrzyknąć do strony kod, np. <script>, który wykona się w przeglądarkach innych osób — to atak XSS. Funkcja htmlspecialchars() zamienia znaki specjalne HTML na encje (np. < na <), więc wstawiony kod wyświetli się jako tekst. echo i print działają tak samo, metoda GET niczego nie zabezpiecza, a strtoupper() zmienia tylko wielkość liter.