Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zatrzymanie wykonywania skryptów
Forum PHP.pl > Forum > Przedszkole
fallingone
Czy jeżeli jakiś user wpisze w okno przeglądarki np. xxxxx.pl/index.php (plik zawiera wiele if() {} odwołan do My SQL, tworzenia tabel itd) po czym zatrzyma wywoływanie strony to istnieje prawdopodobieńśtwo, ze jakaś część tych, powiedzmy, skryptów PHP nie zostanie wykonana?questionmark.gif Albo jezeli w pliku jest odczytanie jakies wartości z bazy danej a potem jej nadpisanie (juz podczas wykonywania skryptów) to istnieje możliwości, ze pierwszemu userowi odczyta wartość i drugiemu po czym ten pierwszy ją nadpisze a ten drugi też nadpisze tylko, ze nie tą wartość którą odczytałquestionmark.gifquestionmark.gif(zeby tak obrazowo to ukazać to jesli dwie osoby rezerwują bilety to jednej i drugiej odczyta, ze np pole rezerwacja = 0, po czym I nadpisze jej nazwiskiem a tej II jego nazwiskiem i obydwu osobom wyświetli się kominukat, ze rezerwacja zakończona powodzeniem pomimo, ze tylko jedna z nich jest umiejscowiona w bazie danych).
nithajasz
By temu zapobiec używa się specjalnych metod, przykładowo z zapisem do bazy danych o ilę się nie myle transakcje. Zbiór zapytań stanowiących całość jeśli, któreś się nie wykona lub nie zwróci oczekiwanej wartości to nic do bazy się nie doda...
pyro
Cytat(fallingone @ 13.06.2008, 00:18:04 ) *
Czy jeżeli jakiś user wpisze w okno przeglądarki np. xxxxx.pl/index.php (plik zawiera wiele if() {} odwołan do My SQL, tworzenia tabel itd) po czym zatrzyma wywoływanie strony to istnieje prawdopodobieńśtwo, ze jakaś część tych, powiedzmy, skryptów PHP nie zostanie wykonana? questionmark.gif Albo jezeli w pliku jest odczytanie jakies wartości z bazy danej a potem jej nadpisanie (juz podczas wykonywania skryptów) to istnieje możliwości, ze pierwszemu userowi odczyta wartość i drugiemu po czym ten pierwszy ją nadpisze a ten drugi też nadpisze tylko, ze nie tą wartość którą odczytał questionmark.gif questionmark.gif (zeby tak obrazowo to ukazać to jesli dwie osoby rezerwują bilety to jednej i drugiej odczyta, ze np pole rezerwacja = 0, po czym I nadpisze jej nazwiskiem a tej II jego nazwiskiem i obydwu osobom wyświetli się kominukat, ze rezerwacja zakończona powodzeniem pomimo, ze tylko jedna z nich jest umiejscowiona w bazie danych).


Jeśli chodzi o użytkownika: Jeśli wywoła skrypt wklepując xxx.pl/index.php i od razu wylaczy przeglądarke to chyba nic sie zlego nie stanie, chyba interpreter na serwerze dalej działa dopóki nie wykona całego skryptu o ile się nie mylę... CO do bazy danych powinno się stosować transakcje (jeśli baza zawiera/ma zawierać jakieś ważne dane), na wypadek awarii serwera itd. np. trudno sobie wyobrazić reputację banku, w którym znikają pieniądze w wyniku awarii serwera...

ps. dobre mam pory na pisanie na forum co? tak to jest jak człowiek nie może spać ;/
erix
Ostatecznie, newralgiczne bloki można opatrzyć ignore_user_abort" title="Zobacz w manualu PHP" target="_manual, ale to nie zmienia faktu, że gdyby serwer padł w trakcie wykonywania instrukcji, to nie ma zmiłuj.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.