![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 24.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Otóż mam taki problem, nie mam pojęcia skąd on się bierze, jest dość nietypowy. Mam dwa pliki: - /linkchecker/index.php - w tym pliku jest formularz, który po jego wysłaniu dodaje linki umieszczone w tym formularzu do bazy danych. Po wykonaniu tej czynności wysyła za pomocą jQuery.get() żądanie do check_links.php. - /linkchecker/check_links.php - ten plik pobiera wcześniej dodane do bazy linki i za pomocą cURL wchodzi pokolei do każdego z nich i po sprawdzeniu, czy jest poprawny dodaje o tym wpis do bazy danych (Y lub N). Problem polega na tym, że jak zostanie wysłane żądanie ajax do check_links.php, to trochę czasu je sprawdza (zazwyczaj się dodaje dużo linków) i w tym czasie nie mogę wejść na inny plik (dostaję fatal error dotyczący max_execution_time, dokument się ładuje aż do tego błędu). Udało mi się ustalić, że prawdopodobnie jest to coś z bazą danych, bo utworzyłem plik /linkchecker/test.php, który przy zawartośći: wyświetla się natychmiast, natomiast przy zawartości
również się ładuje w nieskończoność (common.php jedyne co robi to łączy z bazą danych) Wydaje mi się, że może być to problem typu lock tables albo coś z max_user_connections. Ale nie używam nigdzie w skrypcie żadnych rzeczy typu LOCK/UNLOCK TABLES, a w my.ini nie mogę znaleźć nigdzie opcji max_user_connections / max_connections (używam najnowszego XAMPP). Jak rozwiązać ten problem? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A czy w obu plikach używasz sesji? Jeśli tak to może być to - bo sesja też ma lock. Jeśli dwa skrypty naraz próbujesz odpalić na tej samej sesji to się tak nie da - może to to?
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 24.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście, mój test.php przy takiej formie:
Ładuje się do fatal errora, lecz przy takiej formie:
plik się załaduje. Ale to nie koniec problemu. Bo co w takim razie mam zrobić, jeżeli potrzebuję używać sesji i w jednym i w drugim pliku? Z tego co widzę, ludzie sobie z tym radzą za pomocą session_write_close(), ale to jest bez sensu... co mam zrobić, jeżeli w innym pliku muszę pewne dane też zapisywać do sesji podczas działania skryptu, a nie mogę ich najpierw odczytać i zamknąć sesji? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zasada jest prosta
![]() Jeśli w jakimś skrypcie (na ogół chodzi o skrypty wywoływane przez ajax, lub te które się długo ładują) potrzebujesz tylko odczytać sesję to robisz:
Jeśli potrzebujesz i zapisu i odczytu a skrypt moze się długo wykonywać to wystarczy:
Grunt aby w drugim przypadku dany skrypt nic nie echował dopóki nie skończy zabawy z sesją ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:15 |