<?php ?>
powinien wywołać zgłoszenie ostrzeżenia w stylu:
Cytat
Warning: Cannot modify header information - headers already sent by (...)
No i tu zaczyna się problem pierwszy. Kiedy napisze i wywołam prosty skrypt php jak wyżej lokalnie (Apache) to nie jest generowane żadne ostrzeżenie. Kiedy natomiast zrobię to na docelowym serwerze produkcyjnym to oczywiście pojawia się ostrzeżenie. Pytanie brzmi dlaczego tak jest? I czy można jakoś skonfigurować Apache'a czy też php, aby te ostrzeżenia były wyświetlane u mnie lokalnie? Jeśli chodzi o konfiguracje php to mam włączone raportowanie o wszystkich błędach i ostrzeżeniach:
Cytat
error_reporting = E_ALL
display_errors = On
display_errors = On
Drugi problem również dotyczy nagłówków i funkcji header(). Przy odbiorze i przetwarzaniu danych z formularza korzystam z następującego schematu.
Plik formularza:
Plik script.php:
<?php //tutaj jakiejś akcje przetwarzające dane z pól formularza ?>
Myślę, że to dobre podejście bo pozwala uniknąć problemu wyświetlania irytujących komunikatów i dodawania wielokrotnie tych samych danych do bazy danych przy odświeżaniu strony. Plik script.php przetwarza dane i przekierowuje do innego skryptu gdzie może zostać wyświetlony na przykład komunikat o prawidłowości przebiegu operacji. Przekierowanie może być również do miejsca gdzie są wyświetlane pozostałe na przykład komentarze, czy też inne wpisy w bazie danych. Niestety znów jest różnica w działaniu lokalnie i na właściwym komercyjnym serwerze. Na docelowym serwerze znów generowane są ostrzeżenia i skrypt nie wykonuje się do końca, natomiast lokalnie wszystko działa prawidłowo. Myślę, że należycie zadbałem o to, aby nie było żadnych pustych znaków przed użyciem funkcji header(). Nie wiem w czym problem, proszę o pomoc.
Czy, aby na pewno nikt nie potrafi odpowiedzieć na moje pytania?