Page 1 sur 1

Avec if et isset ou empty, le script s'execute

Posté : 30 mars 2010, 10:28
par kopax
Bonjour à tous,

Voilà j'essai de faire fonctionner un code, j'aimerai que si sur la page du formulaire précédent, si factsheet est laissé vide, que le scrip d'upload de fichier ne s'execute pas.

Pour le moment, vide ou pas, il s'execute et du coup arrete le reste de la page à la ligne
if ($_FILES['factsheet']['error'] > 0) die ($upload_error_pdf.$goback);
			if(!empty($_FILES['factsheet']))
// j'ai essayé également avec if(isset($_FILES['factsheet']))
			{
				$maxsize = "2044723";
				$dir = $_SERVER['DOCUMENT_ROOT']."VINI/uploads/factsheet/products/";
				// We check if the transfert has succeed
				if ($_FILES['factsheet']['error'] > 0) die ($upload_error_pdf.$goback);
// le scrip s'arrete ici, j'aimerai que il ne sois pas lu par le browser si il n'y a pas de fichier pdf envoyé.
				// We check if the max size is OK
				if ($_FILES['factsheet']['size'] > $maxsize) die ($upload_too_heavy_pdf.$goback);
				// We check if it's a PDF
				$extensions_valides = array( 'pdf' );
				$extension_upload = strtolower(  substr(  strrchr($_FILES['factsheet']['name'], '.')  ,1)  );
				// We generate a random name for rename the pdf
				$random_name = md5(uniqid(rand(), true));
				// We move the pdf from the temp folder to the correct folder
				$pdf = "{$random_name}.{$extension_upload}";
				$resultat = move_uploaded_file($_FILES['factsheet']['tmp_name'],$dir.$pdf);				
			}
J'ai lu les manuels pour les deux fonctions, et je ne comprends pas pourquoi à chaque fois le scrip est lu quand le champ factsheet est vide.

Merci de votre aide

Re: Avec if et isset ou empty, le script s'execute

Posté : 30 mars 2010, 10:37
par stealth35
hello, si tu test comme ca :
if(!empty($_FILES['factsheet']) && $_FILES['factsheet']['error'] === UPLOAD_ERR_OK)

Re: Avec if et isset ou empty, le script s'execute

Posté : 30 mars 2010, 11:22
par kopax
cela fonctionne impecablement maintenant.

Merci !