Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Ament 14:50
 » JE Jacaw 14:48
 » maddog 14:43
 » elliot_pl 14:37
 » KHot 14:37
 » [yureq] 14:37
 » 3kawki 14:25
 » Wedelek 14:17
 » rainy 14:15
 » Pio321 14:15
 » Sherif 14:08
 » El Vis 14:00
 » piwo1 13:57
 » Robek 13:56
 » alkatraz 13:56
 » adolphik 13:50
 » Hitman 13:47
 » NimnuL 13:40
 » ligand17 13:36
 » XepeR 13:35

 Dzisiaj przeczytano
 36882 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

  1. ... , 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).

    1. ze to NIE wina serwera... , Vertus 7/05/07 08:51
      ...

  2. 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"

    1. ... , 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.

      1. 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"

        1. jasne , Vertus 7/05/07 11:16
          nie jestem jakims mastahą w tej materii. Zapodalem cytat tak dla informacji.

          1. 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