Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Hey,
wrzucilem dzisiaj swoje skrypty na moje konto (moj kolega zajmuje sie hostingiem i mam darmowe konto do testow) i chcialem je testowac on-line. Niestety w momencie w ktorym rzucam wyjatek w skrypcie PHP dostaje pusta strone (tak jakby zostala wywolana funkcja exit() ). U mnie na kompie jest wszystko super. Probowalem tez odpalic na tym koncie odpalic jakies przykladowe skrypty z netu i zawsze tam, gdzie jest rzucony wyjatek tam skrypt staje w miejscu.
Moje pytanie: co jest nie tak z tym kontem? Bo raczej skrypty sa OK. Ja u siebie na kompie mam ustawione wszystko defaultowo i jest git.
Nie moge pomeczyc kumpla, bo ruszyl na urlop, a strone trzeba klepac i testowac ;-(
Offline
Jak mazoesz to pokaz caly skrypcik, jaka wersja Linux czy Shit, PHP, Apache czy ISS czy cos jeszcze innego, jak mozesz to wynik phpinfo() albo chociaz czy jest safe-mode.
Jak to Shit to masz rozwiazanie problemu, na shicie kilka instrukcji powoduje zwieche albo to Apacha albo nawet calego systemu. Na stronce php.net mozna chyba znalesc jakie to sa instrukcje.
A zobacz chociaz czy dostajesz jakas odpowiedz z serwera jak pojawia sie pusta strona.
Edit: Przypomnialem sobie np declare(ticks=<ile_tykniec>) zawieszalo apacha na shicie, ale nie wiem czy dalej tak sie dzieje bo to juz jakis czas temu bylo.
Offline
Przykladowy skrypt, ktory nic nie daje (tzn w przegladarce nic sie nie wyswietla, a 'zrodlo strony' jest puste):
<?php try { throw new Exception('Wystąpił okropny wyjątek', 42); } catch (Exception $e) { echo 'Wyjątek '; } ?>
Wersje oprogramowania:
apache-2.2.4
mod_php-5.2.3
mysql-5.0.41
System: PLD (Ac) 2.0
Kernel: Linux 2.6.20.11
Safe mode jest wylaczony.
Serwer chyba nie wypluwa zadnych bledow i tu jest problem. Jesli cos jest w skrypcie zle to dostaje pusta strone. Jakies pomysly?
Edyta: qrcze, ale lama ze mnie :-) No oczywiscie chodzi o to, ze serwer nie wypluwa bledow i trzeba sobie w skrypcie dodac
ini_set('display_errors', '1')
Offline
Wpisz na poczatku error_reporting(E_ALL);
sprawdz czy serwer wysyla jakiekolwiek naglowki
Jak w ogole odpowiada to powinienes dostac np
Date: Sun, 15 Jul 2007 15:42:21 GMT Server: Apache X-Powered-By: PHP/4.4.7-pl0-gentoo Cache-Control: private, pre-check=0, post-check=0, max-age=0 Expires: 0 Pragma: no-cache Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-2 200 OK
Jak nic takiego nie dostaniesz to znaczy ze scina serwer.
Offline
Czegoś nie rozumiem, w tym kodzie nie ma błędów. Czemu ma więc pomóc
ini_set('display_errors', '1');
czy
error_reposting(E_ALL);
?
Offline
Czegoś nie rozumiem, w tym kodzie nie ma błędów. Czemu ma więc pomóc
Kod:
ini_set('display_errors', '1');czy
Kod:
error_reposting(E_ALL);?
dispray_errors poprostu wyswietla bledy ale domyslnie bez E_NOTICE, a error_reporting(E_ALL) wyswietla takze E_NOTICE czyli nie wylko errory czy warningi.
Z reszta niech na samym poczatku sprawdzi czy serwer co kolwiek wyzuca (naglowki chociaz) bo ja nic nie wyzuca to nie wazne co ustawi i tak nic nie zobaczy jak serwer sie wywala.
Offline
Dzieki za pomoc. To byl problem z wyswietlaniem bledow, wiec dodalem
ini_set('display_errors', '1');
oraz
error_reposting(E_ALL);
i jest bardzo pieknie. No ale okazalo sie, ze moj kumpel nie dal mi uprawnien do zapisywania zmiennych sesyjnych i moge zapomniec o testach on-line. Niektorzy admini sa nadgorliwi :/
Offline
Sie znaczy ze nie mozesz zapisywac w domyslnym katalogu dla sesji czy w ogole masz wylaczone sesje?
Jesli nie mozesz zapisywac w katalogu to zmien session.save_path na katalog w ktorym mozesz zapisywac, albo uzyj session_save_path().
Jesli masz wylaczona obsluge sesji to mozesz sprobowac wlaczyc ja za pomoca ini_set('disabled_functions', ''); ale jesli to zadziala to raczej Twoj kolega nie jest za ostrozny, bo to wlaczy wszystkie dostepne funkcje (exec, popen itd. a tym juz mozna poszalec komus na serwie :P ).
Offline
Jesli nie mozesz zapisywac w katalogu to zmien session.save_path na katalog w ktorym mozesz zapisywac, albo uzyj session_save_path().
Pomoglo. Nawet nie pomyslalem, ze takie cudo moze istniec Eh, my ludzie malej wiary ;-) Ogromne dzieki. Ja widze, ze mamy eksperta od PHP na forum kostek.
Ale pecha i tak mam, bo sie okazuje, ze kumpel nie wkompilowal modulu do MYSQLI. Chyba narazie odpuszcze sobie przepisywanie wszystkiego, bo to troche sporo roboty..
Podobno mozna jakos 'wlaczyc obsluge MYSQLI' z poziomu PHP za pomoca dl(), ale to chyba malo eleganckie i jeszcze nie da konca wiem, jak to zrobic ;-)
Offline
Mozna co powlaczac pewne zeczy przy pomocy dl() ale one musza byc jako moduly, jak Twoj kolega nie kompilnol ich to nie masz nawet co probowac bo nie ma mozliwosci dokompilowania czegos z poziomu skryptu, no chyba ze znalazles jakas mila dziure w php :P
Jak nie chce Ci sie wszystkiego przepisywac to napisz sobie clase ktora ma takie same metody i wlasciwosci co mysqli i podmien przy twozeniu, napewno jest to duzo mniej roboty od przepisywania wszystkiego :)
Offline
Jak nie chce Ci sie wszystkiego przepisywac to napisz sobie clase ktora ma takie same metody i wlasciwosci co mysqli i podmien przy twozeniu, napewno jest to duzo mniej roboty od przepisywania wszystkiego :)
Swietny pomysl. Czasami najprostsze rozwiazania sa najlepsze :-) Dzieki ogromne za pomoc. Dzisiaj wracam do roboty i mam nadzieje, ze cos z tego wyjdzie ;-)
Offline
Strony: 1