![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Stronę odpalam poprzez Apache na localhoscie. Wpisując w przeglądarke adres localhost/strona wszystko jest OK. Ale gdy wpiszę adres: mojeip/strona to są różne błędy. Co do adresu IP to mam przekierowanie na routerze. No ale dobra, jak mówiłem, gdy wpisuję adres localhost to wszystko w porządku, a gdy wpisuję IP/strona to już nie. Oto błędy: Kod Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\strona\index.php on line 52 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\strona\index.php:52) in C:\xampp\htdocs\strona\index.php on line 25 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\strona\index.php:52) in C:\xampp\htdocs\strona\index.php on line 33 Pierwszy error jest dla mnie dziwny.. Oto kod: Kod $languages = array("pl", "en"); // tutaj rozne if'y itp. function getUserLang() { $jezyk = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if(strstr($jezyk[0], '-') === FALSE && in_array($jezyk, $languages)) { return $jezyk; } return false; } Co do pozostałych errorów to znam je. Ale jest to dziwne. Na początku mam PHP, nic nie drukuje na stronie, kodowanie UTF8 bez BOM więc nie rozumiem. Ale przecież na adresie localhost/strona nie wywala żadnych błędow, a na mojeip/strona już są błędy. Trochę może porozwalany ten mój temat więc sorry. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Masz ten warning ponieważ $languages jest w zasięgu globalnym skryptu i funkcja nie zna go wewnątrz. Stąd tworzy sobie ją w locie i ustawia NULLem, a in_array się burzy. Masz różne wyjścia... Albo $languages oznaczasz jako global wewnątrz funkcji na starcie (zły sposóB), albo przekazujesz jako parametr do funkcji (poprawny sposób). Można też jak radzi kolega wyżej pchnąć całą tablicę do wnętrza funkcji, ale jeśli używasz jej jeszcze poza funkcją, to wtedy ją "zgubisz". Stąd lepiej pchnąć ją jako parametr. Po prostu bezpieczniej przerobić jedną funkcję małą, niż potem kombinować w kilku miejscach.
Co do warningów to najprawdopodobniej jadąc po IP masz gdzieś ustawione wyświetlanie wszystkich, włącznie z warningami (jakaś wariacja z konfigiem serwera), a na localhoście wyświetlanie to masz wyłączone i dlatego warningów nie pokazuje, choć są one, ale ukryte przed użytkownikiem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 19:02 |