Witam.
Witam, wyświetlam sobie z bazy zapisane referery, tworząc z nich hiperłącza.
Nazwą hiperłącza jest adres przepuszczony przez htmlentities, a adresem jest adres przepuszczony przez urlencode.
Oczywiście wszystko to w celu zapobiegnięcia wykonania XSS itp.
Jednak jest pewien problem. Kompletne adresy zakodowane przez urlencode przeglądarka traktuje jak adresy względne, doklejając do nich z przodu obecną lokalizacje.
Domyślam się, że problem ten spowodowany jest tym, że zakodowany adres zaczyna się jako: http%3A%2F%2F zamiast http://
W jaki sposób rozwiązać ten problem? Wiadomo, można by się bawić w preg_replace, str_replace itp. ale myślę, że problem nie jest nowy i ktoś zna znacznie lepsze rozwiązanie?