caricamento immagini in php

ciao a tutti, devo inserire uno script in php in un sito, lo script ogni volta che viene ricaricata la pagina mi carica un immagine diversa da una cartella, il problema è che non l’ho fatto io e non riesco a capire un errore:
lo script carica solo alcune immagini e non tutte quelle che sono nella cartella, alcune non le vede proprio, riuscite a dirmi dove c’è l’errore per favore?

io da quello che ci posso capire da inesperto è che non viene contato in modo corretto il numero di immagini nella cartella però più di questo non posso dire

<?php

/*********************************************************************************
	*
	* 		Applicazione "Carica immagine a caso da una cartella"
	*
	* autore	: Danilo "Dennis" Pederiva - [email protected]
	* data		: 01/09/2003
	*
/*********************************************************************************/
//*************** Variabili da settare ***************//
	//Percorso relativo della cartella contenente le immagini 
$cartella="images/rotazione/";
	//Array di tutte le estensioni valide che si vogliono caricare (bmp,gif,jpg,png)
$estensioni=array('jpg','bmp','png');
//***************************************************//
$dir=opendir($cartella) or die("Attenzione, impossibile aprire la cartella ".$cartella);
$immagini=array();
$misure=array();
	while(false !== ($file=readdir($dir))) { 
		for($i=0;$i<count($estensioni);$i++){
			$estensione=substr($file,(strlen($file)-3),strlen($file));
			if(in_array($estensione,$estensioni)){
				$immagini]=$file;
				$misure]=getimagesize($cartella.$file);
			}
		}
   }
 if(count($immagini)==0) die("Attenzione, la cartella indicata non contiene immagini compatibili con le estensioni inserite.<br> Provare a controllare l'esattezza delle estensioni e della directory indicata nella variabile 'cartella'");
 $indice=rand(0,(count($immagini)-1));
 print '<img src="'.$cartella.$immagini$indice].'" WIDTH="400" HEIGHT="400" '.$misure$indice][3].' alt="'.$immagini$indice].'">';
 ?>

grazie mille per la disponibilità

Quando hai problemi di questo tipo la soluzione migliore è chiedere direttamente all’autore. Questo è uno script semplice ok, ma il problema che non l’hai fatto tu è un problema anche per tutti noi visto che non è nostro. Quindi chi meglio dell’autore può dare una risposta rapida ad un problema?

Altra buona norma. Quando dici:

alcune quali? A caso? tutte quelle in formato .gif? Quelle più grandi di 1MB? quelle che iniziano per la lettera “A”. Dire “alcune” non è significativo, è un po’ come andare dal dottore e dire solo “non sto molto bene”, di sicuro il dottore vorrà sapere più dettagli.

grazie per la risposta intanto,
la tua risposta e’ leggittima, ogni persona di buon senso chiederebbe all’autore, ma lo script e’ di ben 8 anni fa e quindi non riesco a rintracciarlo.

Per la storia delle immagini e’ un bel problema, nel senso che sono sul serio “alcune” nel senso che non riesco a trovare delle coincidenze tra quelle che vengono accettate e quelle che non vengono proprio viste, ho anche provato a togliere dalla cartella tutte quelle che vengono accettate e visualizzate ma lo script mi torna la stringa

"Attenzione, la cartella indicata non contiene immagini compatibili con le estensioni inserite.<br> Provare a controllare l'esattezza delle estensioni e della directory indicata nella variabile 'cartella'"

che e’ proprio il then dell’if che deve contare il numero di immagini della cartella, questo mi fa pensare che lo script le altre immagini non le conta proprio, il problema e’ capire dallo script il perche’

Rosario

prova a sostituire questo:

    while(false !== ($file=readdir($dir))) {  
        for($i=0;$i<count($estensioni);$i++){ 
            $estensione=substr($file,(strlen($file)-3),strlen($file)); 
            if(in_array($estensione,$estensioni)){ 
                $immagini]=$file; 
                $misure]=getimagesize($cartella.$file); 
            } 
        } 
   }

con questo:

    while(false !== ($file=readdir($dir))) {  
        echo "$file\n";
   }

dovrebbe stampare a video tutti i file che riesce a leggere con readdir. Se li legge tutti (anche quelli che dici che non vanno) allora il problema è nel riconoscimento delle estensioni:

  • estensione non in elenco (.gif ad esempio non è elencata)
  • scritta sbagliata
  • scritta diversamente
  • lo script assume che le estensioni abbiano solo 3 caratteri, ma potrebbero essere anche 4 (.jpeg)