Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]POMOCY zapętliłem skrypt na serwerze !
Trojan
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 10
Dołączył: 17.01.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $interval=1;
  3. $nazwa=0;
  4.  
  5. do{
  6. mkdir (&#092;"lol$nazwa\", 0700, TRUE);
  7. $nazwa++;
  8. sleep($interval);
  9. }while(true);
  10. ?>


dopaliłem taki skrypt na serverze www Jak to zatrzymac (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)

Ten post edytował Trojan 18.01.2008, 00:10:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Trojan
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 10
Dołączył: 17.01.2008

Ostrzeżenie: (0%)
-----


Udało się ;] Skrypt zdążył stworzyć 5000 folderów zanim udało mi się to zatrzymać.

Umieściłem go na serwerze yoyo.pl (mam do niego dostęp tylko na ftp) więc nie mogłem zrestartować, wyłączyć procesu ani nic z tych rzeczy ;/

W skrypcie dałem na początku
set_time_limit" title="Zobacz w manualu PHP" target="_manual (10); niestety nie zadziałało (o dziwo ignore_user_abort" title="Zobacz w manualu PHP" target="_manual (TRUE); oraz set_time_limit" title="Zobacz w manualu PHP" target="_manual (0); działa)
zanim zorientowałem się ze skrypt pracuje dalej, było już ponad 500 folderów

-pierwsze co zrobiłem wywaliłem plik php którym wywołałem skrypt (nie pomogło)
-zmieniłem nazwę folderu w którym były tworzone następne foldery (nie pomogło)
-nawet stworzyłem folder o nazwie która miała się zaraz pojawić w nadziei że skrypt nie zdoła stworzyć go jeszcze raz. (zgadnijcie co)

Jedynym rozwiązaniem było usuniecie folderu w którym są tworzone następne. Wszedłem na FTP-a zaznaczyłem folder i dałem usuń… niestety więcej folderów powstawało niż było kasowanych. Trzeba było usunąć wszystkie foldery jednocześnie – tylko jak (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Znalazłem w necie funkcje:

  1. <?php
  2. function rmdirr($dirname)
  3. {
  4. if (!file_exists($dirname)) {
  5. return false;
  6. }
  7.  
  8. if (is_file($dirname)) {
  9. return unlink($dirname);
  10. }
  11.  
  12. $dir = dir($dirname);
  13. while (false !== $entry = $dir->read()) {
  14. if ($entry == '.' || $entry == '..') {
  15. continue;
  16. }
  17. rmdirr("$dirname/$entry");
  18. }
  19.  
  20. $dir->close();
  21. return rmdir($dirname);
  22. }
  23. rmdirr("folder");
  24. ?>


Odpaliłem na serwerze i czekam... Strona przestała się wczytywać na FTPa też nie mogłem wejść - coś się działo. Po 5min folderów juz niebyło ;]

Pytanie jednak nadal pozostaje aktualne: W jaki sposób zatrzymać pętle jeżeli w skrypcie mamy:

ignore_user_abort(TRUE);
set_time_limit(0); (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 05:07