problema upload: Strict Standards: Only

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
salve perché quando provo ad fare un upload mi salta fuori questo errore:
PHP:
Strict Standards: Only variables should be passed by reference

alla riga:
PHP:
  // verifichiamo che il tipo è fra quelli consentiti
   else if(!in_array(strtolower(end(explode('.', $_FILES["upload"]["name"]))),$tipi_consentiti))

vi posto il codice del mio upload:
PHP:
<?php 
session_start();
include("check_login.php"); 
?>
<?php  
// settiamo alcune variabili coinvolte nello script:
// 1) settiamo la cartella in cui fare l'upload
$cartella_upload ="../upload/";

// 2) settiamo un array in cui indichiamo il tipo di file che consentiamo l'upload
// in questo esempio solo immagini 
$tipi_consentiti = array("gif","png","jpeg","jpg","zip","pdf"); 
  
// 3) settiamo la dimensione massima del file (1048576 byte = 1Mb)
$max_byte = 5000000;


// se il form è stato inviato
if(isset($_POST['up']) and isset($_FILES["upload"]))
   {
   // verifichiamo che l'utente abbia selezionato un file
   if(trim($_FILES["upload"]["name"]) == '')
      {
      echo 'Non hai selezionato nessun file!';
      }

   // verifichiamo che il file è stato caricato
   else if(!is_uploaded_file($_FILES["upload"]["tmp_name"]) or $_FILES["upload"]["error"]>0)
      {
      echo 'Si sono verificati problemi nella procedura di upload!';
      }

   // verifichiamo che il tipo è fra quelli consentiti
   else if(!in_array(strtolower(end(explode('.', $_FILES["upload"]["name"]))),$tipi_consentiti)) // QUI C'E' L'ERRORE
      {
      echo 'Il file che si desidera uplodare non è fra i tipi consentiti!';
      }

   // verifichiamo che la dimensione del file non eccede quella massima
   else if($_FILES["upload"]["size"] > $max_byte)
      {
      echo 'Il file che si desidera uplodare eccede la dimensione massima!';
      }
	
	// verifichiamo che la cartella di destinazione settata esista
	else if(!is_dir($cartella_upload))
		{
		echo 'La cartella in cui si desidera salvare il file non esiste!';
		}
	
	// verifichiamo che la cartella di destinazione abbia i permessi di scrittura
	else if(!is_writable($cartella_upload))
		{
		echo "La cartella in cui fare l'upload non ha i permessi!";
		}
   // verifichiamo il successo della procedura di upload nella cartella settata
   else if(!move_uploaded_file($_FILES["upload"]["tmp_name"], $cartella_upload.$_FILES["upload"]["name"]))
      {
      echo 'Ops qualcosa è andato storto nella procedura di upload!';
      }

   // altrimenti significa che è andato tutto ok
   else
      {
      echo 'Upload eseguito correttamente!';
      }
   }
?>
<form action="" method="post" enctype="multipart/form-data">
   <input type="file" name="upload">
   <input type="submit" name="up" value="Upload file">
</form>

lo preso da qui:
http://www.miniscript.it/articoli/41/upload_di_un_file_la_variabile__files_e_le_funzioni.html

mi dite come mai e come posso levare l'errore.?

grazie mille.
 
ciao
prova a fare così
PHP:
<?php
//....
if(!in_array(strtolower(pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION)),$tipi_consentiti)){
		echo "Il file che si desidera uplodare non è fra i tipi consentiti!"; 
	}
//....
?>
 

Discussioni simili