pazmat
11.04.2011, 18:49:44
Dzieńdobry
Mam taki kod php.
<?php
do {
$i = 2;
echo 'Skrypt działa '.$i.' s<br>';
$i = $i + 2;
?>
głównym jego zadanie jest działanie w nieskończoność, jednak po około minucie wywala taki error:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request
Czy da radę to jakoś ominąć z poziomu php?
modern-web
11.04.2011, 19:06:56
Skasuj .htaccess z folderu z skryptem (o ile istnieje). Zazwyczaj to wina konfiguracji serwera.
pazmat
11.04.2011, 19:10:32
Nie ma żadnego .htaccess w folderze
thek
11.04.2011, 19:12:20
Tak, da. Ale nie poprzez konfiguracje serwera. To co napotkaleś to klasyczny sposób by nie dopuszczać do sytuacji, gdy user odpali sobie skrypt, który ma działać "na wieki". Bo takich jak Ty jest wielu a zasoby serwerów nie są z gumy. Zarżnęlibyście serwer od razu. tak więc od tej strony nie ma szans. Można jednak to zrobić, ale wymaga to podzielenia skryptu na interwały czasowe. W momencie gdy skrypt wyczuje iż "czas mu się kończy", kończy to co robi właśnie, zapisuje swój stan i wywołuje sam siebie. Dzięki temu jest uznawany za nowe wywołanie skryptu i ma czas liczony znów od zera i może wznowić to co robił do tej pory.
sadistic_son
12.04.2011, 08:12:16
No a da się jakoś zapisać np. wewnętrzny wskaźnik wykonującej się pętli, lub tablicy na której działamy? Tak aby rozpocząć potem od tego samego miejsca.
thek
12.04.2011, 08:51:15
A czemu by nie? To "tylko" proste dane. Co do wskaźnika miejsca w pliku to chyba umiemy go przesunąć? Nawet gotowe funkcje są

A jakby nie to zawsze można zapamiętać numer wiersza chyba? Zaś w pętli zawsze można zmodyfikować for, by rozpoczynał z miejscem startowym innym niż 0... Kwestia przemyślenia logiki skryptu i uruchamiania go ze zmienionymi parametrami lub pobieraniem ich z określonej lokalizacji (modyfikowalny przez sam skrypt plik konfiguracyjny)