|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[php] problem z system(); , Pieczar 6/05/07 18:23 Witam,
Mam następujący problem z wykonanywaniem poleceń systemowych.
Otóż na jednej stronie mam kilka checkbox'ów i przycisk po kliknięciu którego ma odpalić się inna stronka php. Stronka ta ma kilka poleceń echo itd. oraz w dalszej części wywołanie funckji system(); z jakimś tam poleceniem systemowym.
Problem polega na tym iż po naciśnięciu przycisku następna strona nie odpala się tylko przeglądarka "zawisa" na stronie z przyciskiem i odrazu zaczyna wykonywać wspomniane polecenie systemowe.
Nierozumiem dlaczego nie pojawia się kolejna strona, informacje tekstowe (echo) i dopiero później wywołanie funkcji.
Proszę o pomoc.
Pozdrawiam- ... , Vertus 7/05/07 08:50
trudno wynoskowam z opisu nie widząc z kodu.
Zacznij od sprawdzenia czy wszystko jest ok na serwerze.
http://pl.php.net/system
Zastosuj przyklad stąd i sprawdz czy masz oczekiwany wynik.
Malymi krokami likiwduj potencjalne problemy. Jak to z linka Ci za dziala to bedziesz wiedzial przynajmniej ze to wina serwera (jego konfiguracji przewaznie).- ze to NIE wina serwera... , Vertus 7/05/07 08:51
...
- Tak może być, jeżeli polecenie wykonywane przez system() trwa długo, bądź się zawiesi , bwana 7/05/07 09:55
strona z serwera do przeglądarki trafia porcjami (bufor się zapełnia, no to sru go do przeglądarki) - jeżeli wypisałeś "ala ma kota" a potem kazałeś kodowi php czekać (np. wykonując polecenie, które jest zapętlone ad infinitum), to "ala ma kota" wcale nie musi Ci się pokazać w przeglądarce, bo być może bufor jeszcze nie został do niej wysłany. być może da się zmusić serwer do wysłania wyniku od razu, ale podejrzewam, że to jednak oprogramowanie serwera www decyduje i pewnie nie każdy serwer da się do tego zmusić. Schemat wyglądałby tak:
print "Czekaj na wykonanie polecenia";
wypisz_bufor; # (flush_buffer czy jakoś w tym stylu)
system (wywołanie czegoś w systemie);"you don't need your smile when I cut
your throat" - ... , Vertus 7/05/07 10:01
The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.- i właśnie słowo "tries" jest tu kluczowe , bwana 7/05/07 10:33
drugim kluczowym słowem jest "if":-D
Sprawdziłem to kiedyś na apaczu/php4/windows, wprawdzie nie z funkcją system(), lecz z własną procedurą, która miała pokazywać m.in. postęp własnego wykonania - i, że tak powiem, mogłem sobie chcieć."you don't need your smile when I cut
your throat" - jasne , Vertus 7/05/07 11:16
nie jestem jakims mastahą w tej materii. Zapodalem cytat tak dla informacji.- hehe, ja też nie, po prostu otarłem się o ten problem kiedyś , bwana 7/05/07 11:18
:-)"you don't need your smile when I cut
your throat"
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|