2011-07-11 10 views
7

Szczerze mówiąc, nie wiem zbyt wiele na temat PHP, ale myślę, że to, co muszę zrobić, jest stosunkowo proste.PHP, jak nie spełnić żądania

Używam ASIHTTPRequest http://allseeing-i.com/ASIHTTPRequest/ w aplikacji na iOS. Po prostu muszę dodać kod do mojego skryptu PHP, który sprawi, że żądanie się nie powiedzie, dlatego wywołanie metody delegata ASF z requestFailed. Zakładam, że jest to z kodem odpowiedzi HTTP, ale wszystko, co wypróbowałem, skutkuje tym, że zażąda powodzenia. Jestem pewien, że robię coś złego, ale tak naprawdę nie znam PHP.

Próbowałem

trigger_error("error yo", E_USER_ERROR); 
die; 

jak również

header("HTTP/1.0 404 Not Found"); 
die; 
+0

Rozejrzałem się trochę po kodzie, ale raczej straciłem. Domyślam się, że definicja "nieudanej prośby" jest tym, która przekracza limit czasu. –

+0

Dlaczego nie próbujesz uzyskać dostępu do strony, która nie istnieje, aby sprawdzić, czy obsługuje ona poprawnie błąd? –

Odpowiedz

1

skończyło się za pomocą tego

header('HTTP/1.1 401 Unauthorized'); 

Okazuje się ASI nie obsługiwać większość kody odpowiedzi HTTP wyjątkiem uwierzytelniania i przeniesiony.

1

trigger_error will nagłówki nie wyjść. header() będzie.

Ale, header() będzie działać tylko wtedy, gdy nie ma już danych wyjściowych wysłanych do przeglądarki. Najlepiej jest po prostu uzyskać dostęp do adresu URL bezpośrednio w przeglądarce, aby upewnić się, że wszystko działa. Upewnij się także, w pliku konfiguracyjnym php.ini, że display_errors jest włączony. Niektóre dystrybucje PHP mają to domyślnie wyłączone.

+0

'display_errors' nie jest wymagany w przypadku kodu błędu 4xx lub 5xx i nie powinien być włączony w środowiskach produkcyjnych, pozwala ujawnić potencjalnie poufne informacje potencjalnym dzieciom ze skryptu. –

Powiązane problemy