Czy idzie jakoś zdebugować to czy ta funkcja wykonuje się poprawnie? Ona nic nie zwraca i nie jestem pewien czy to to..
Funkcja działa na pewno tak jak powinna, czyli ustawia nagłówek.
Jedyne co może się nie udać, to jakbyś zrobił coś takiego:
echo "body"; // tu wysyłasz body
header(); // a tu header
Ale jeśli czegoś takiego nie robisz, to nie musisz się martwić - header()
ustawi nagłówek poprawnie .
Generowany jest link, a następnie jest przekierowanie. I w 90% przypadków jest ok, natomiast 10% przypadków kończy się przekierowaniem na stronę główną.
W kodzie mam:
private function redirect() {
$url = $this->getUrl(); // np. https://4programmers.net/Forum/PHP/
header('Location: '.$url);
exit();
}
To pierwszym miejscem gdzie bym szukał, jest ta metoda getUrl()
- zobacz sobie co dokładnie ona zwraca.
Bo jeśli ona w jakimś wypadku zwróci pusty string, null
, 0
albo false
, to wynikowy kod będzie tak: header('Location: ');
, czyli zostaniesz przekierowany na url ""
, który jest względny, i to Cię przekieruje na stronę główną.