Newsgroup: it.comp.www.php
Titolo: [URGENTE] Script che impalla il processore

Ho visto bloccato il mio sito a causa di uno script per la lettura delle
sottocartelle all'interno di una data dir.
Lo script è questo sapete dirmi cosa sbaglio? (le sottocartelle sono circa
60)
 <?
                        $handle=opendir('');
while (false!==($file = readdir($handle))) {
    $pos = strpos ($file, ".");
if ($pos === false) {
        echo "<a href='$file' title=\"Visita la galleria
fotografica\">.::</a><br>";
    }
}
closedir($handle);
                        ?>
            </td>
            <td valign="top" align="left">
              <?
$i=0;
if ($dir = @opendir(".")) {
        while ($file = readdir($dir)) {
                if (is_dir($file) && ($file{0}!='.')) {
                        $stats[$i]=stat($file);
                        $stats[$i]["name"]=$file;
//                              echo "";
                        echo date('d/m/y ',$stats[$i]["mtime"])."<a
href='$file' title=\"Visita la galleria fotografica\">".$stats[$i]["name"] .
"</a><BR>\n";
                        $i++;
                }
        }
        closedir($dir);
}
?>
Grazie tanto sono bloccato

Probabilmente le cartelle non hanno il permesso di lettura.

                        $handle=opendir('');
Sembra essere qui sopra l'errore. Prova con:
$handle = opendir('.');
(fra l'altro l'interprete ti manda fuori errori a iosa senz quel
puntino, č abbastanza semplice da individuare!!)
[CUT]
Ciao
--ev

 Probabilmente le cartelle non hanno il permesso di lettura.
No lo script funziona, nn va in time out e restituisce tutte le cartelle
Solo che il mio fornitore dice che mangia troppe risorse (CPU 100%)

 puntino, è abbastanza semplice da individuare!!)
Senza il punto andava a leggere ogni cartella (anche al di fuori di dove
veniva lanciato) o sbaglio questo occupava sicuramente il sistema????????

Un secondo vostro parere su questo script????
 <?
 print"<td align=\"center\" valign=\"top\"><a
href=\"
http://www.amiciamici.com/public/foto/list_last_items.php\
"><img
src=\"".getRandomImage('fotodelgiorno/')."\" alt=\"Foto del giorno\"
border=\"0\"></a></td></tr>";
function getRandomImage($dir,$type='random')
{
global $errors;
    $dir='d://inetpub//webs//amiciamicicom//fotodelgiorno';
if (is_dir($dir)) {
  $fd = opendir($dir);
  $images = array();
      while (($part = @readdir($fd)) == true) {
      clearstatcache();
          if ( eregi("(gif|jpg|png|jpeg)$",$part) ) {
              $images[] = $part;
          }
      }
    // adding this in case you want to return the image array
    if ($type == 'all') { return $images; }
    // Be sure to call srand() once per script
    srand ((double) microtime() * 1000000);
    $key = rand (0,sizeof($images)-1);
    return '
http://www.amiciamici.com/fotodelgiorno/
' . $images[$key];
  } else {
      $errors[] = 'Oggi nessuna foto';
      return false;
  }
}
?>
Serve per leggere tutti i file grafici di una dir e visualizzarne uno
secondo voi può creare problemi di sovraccaricamento?

 veniva lanciato) o sbaglio questo occupava sicuramente il sistema????????
 
Più che altro senza il punto mi dava un loop di errori del tipo:
<b>Warning</b>:  Supplied argument is not a valid Directory resource in
<b>NOME_DELLO_SCRIPT</b> on line <b>3</b><br />
<a href='' title="Visita la galleria fotografica">.::</a><br><br />
E comunque ho fatto questa prova (dove a.php è il tuo script, con il
puntino aggiunto!!):
# for i in `seq 1 2000`; do mkdir $i; done;
(creo 2.000 cartelle da shell, ovviamente vuote!)
# time php a.php 2&>/dev/null
(lancio il tuo script leggendo il tempo di esecuzione reindirizzando
l'output in un bel buco nero, visto che non mi frega niente!)
Ed il risultato è:
real    0m0.244s
user    0m0.200s
sys     0m0.050s
Praticamente ci mette un attimo!
(ok, per qualche frazione di secondo ho il processore che lavora di
brutto, ma visto il tempo che ci impiega ....)
Ciao
--ev

 sys     0m0.050s
Lo penso anche io, se fosse solo per questo dovrebbero segare ogni script!
Ti ringrazio molto
--
Gli amori, le feste, i divertimenti e le celebrità preferite da un gruppo di
ragazze e ragazzi della provincia di Parma. Inviaci le tue foto.
http://www.amiciamici.com
  Bedonia, la perla della Val Taro
by Tedaldi Gian Marco "T¤¶¿µ¤"

 Cacchio io nn avevo questi errori a video (???)
E' un warning, non un errore ... Potresti avere qualche settaggio
differente dal mio nel php.ini che non te li fa vedere!
E non vedendoli pensi che vada tutto bene, ma lo script è in loop, il
porcessore si carica, la macchina va in crisi e chi ti gestisce
l'hosting si incacchia!
Ecco che abbiamo chiuso il cerchio! :-)
Ciao
--ev

 ha scritto nel messaggio
news:d4jgra...@192.168.1.100...

Ti ringrazio molto spero di aver risolto i problemi con il mio hosting
:-)
