![]() |
![]() |
![]()
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: Zarejestrowani Postów: 154 Pomógł: 33 Dołączył: 18.10.2010 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
poczytaj o zasięgu zmiennych .... koniecznie!
wrzuć : $languages = array("pl", "en"); do funkcji i będzie ok. Ten post edytował kokers 2.03.2011, 20:42:42 -------------------- "Sometimes you're gonna get odd error syntax, unexpected T_PAAMAYIM_NEKUDOTAYIM and you're like, what in the world is that thing i have no idea what went wrong in my code. In english that error means you screwed up the references to an object" Kevin Skoglund
Drobna prywata: Ależ nie nie, nie zamierzam zmieniać płci w najbliższym czasie, więc zwracanie się do mnie per Pan jest odrobinkę nietrafione. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ahh.. zapomniałem o tym zasięgu, dzięki
![]() |
|
|
![]()
Post
#4
|
|
![]() 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. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Co do tego że się tworzy w locie to od razu się domyśliłem jak usłyszałem hasło "zasięg zmiennych"
![]() Ale nie rozumiem jednego. Cytat Albo $languages oznaczasz jako global wewnątrz funkcji na starcie (zły sposó ![]() Dlaczeog zły sposób? Chodzi o to, że może kiedyś się takie coś wydarzyć że pobierze inną zmienną globalną o takiej samej nazwie? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Global ustawione dla zmiennej jest złą praktyką. Nie mam co strzępić języka... Sam poczytaj
![]() http://forum.php.pl/index.php?showtopic=49998&st=0 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 14:08 |