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

Eléphant du PHP | 116 Messages

30 mars 2010, 10:28

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

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 10:37

hello, si tu test comme ca :
if(!empty($_FILES['factsheet']) && $_FILES['factsheet']['error'] === UPLOAD_ERR_OK)

Eléphant du PHP | 116 Messages

30 mars 2010, 11:22

cela fonctionne impecablement maintenant.

Merci !