erreur : Maximum execution time...

Eléphant du PHP | 417 Messages

17 févr. 2012, 10:56

bonjour

j'ai un problème avec une fonction qui se charge d'uploader une ou plusieurs image en même temps
il marche bien avec une image mais pas avec plus
et quand je choisi un fichier pdf par exemple au lieu de faire le test sur l’extension et d'afficher l'erreur de l’extension il bloque ds la ligne de vérification et après 30s il m'affiche le message d'erreur suivant Fatal error: Maximum execution time of 30 seconds exceeded in....

voici ma function
function insertImages($nomAlbum,$villeAlbum,$dateAlbum,$paysAlbum,$id_album)
		{
			global $erreur;
			$dossier = str_replace(' ','_',$nomAlbum); // supprission des ' '
			$dossier = $id_album.'_'.$dossier;
			mkdir('immagini_album/'.$dossier.''); // création d'un nouveau dossier avec le nom de l'album 
			$dest_dossier = 'immagini_album/'.$dossier.'/';
			$i=1;
			$erreur = 'm';
			while (isset($_FILES["photo_".$i]))
			{
				$extensions_ok = array('png', 'PNG', 'gif', 'bmp', 'BMP', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG');
				$taille_max = 2097152;
				
				if( !in_array( substr(strrchr($_FILES["photo_".$i]['name'], '.'), 1), $extensions_ok ) )
				{
					$erreur = "* Erreur du format dans l'image ".$i." Veuillez sélectionner une image de type png, gif ou jpg !";  
				}
				elseif( file_exists($_FILES["photo_".$i]['tmp_name']) and filesize($_FILES["photo_".$i]['tmp_name']) > $taille_max)
				{
					$erreur = "* Erreur dans la taille de l'image ".$i." votre image doit faire moins de 500Ko !";
				}
				else
				{
					
					$extension  = substr(strrchr($_FILES["photo_".$i]['name'], '.'), 1);
					$nom_img 	= 'immagini'.$i.'.'.$extension; 
					$path = $dest_dossier.$nom_img;
					
					if (move_uploaded_file($_FILES["photo_".$i]['tmp_name'],$path))
						$insert_img=mysql_query("INSERT INTO immagini_album VALUES('',
																				   '".$_POST['description_img_'.$i.'']."',
																				   '".$nomAlbum."',
																				   '".$path."',
																				   '".$id_album."') ")or die(mysql_error());
					
					$i++;
					// je prépare l'insertion de l'image
				}
			}
			return $erreur;
		}

Eléphant du PHP | 179 Messages

17 févr. 2012, 11:17

set_time_limit(0);
A 0 ça retire complètement le temps max d'exécution
A 60 ( par exemple ) ça le place a 60 secondes

... mais je ne pense pas que l'erreur vienne de la

ViPHP
xTG
ViPHP | 7331 Messages

17 févr. 2012, 12:27

Ton $i++ est mal placé, il ne s'incrémente que dans le dernier else.
Donc boucle infinie dans certains cas. ;)

Eléphant du PHP | 417 Messages

20 févr. 2012, 16:04

Merci :) problème régler grâce a toi :)

j'ai encore une erreur cette fois avec la function unlink

dans mon script j'efface une répertoire avec cette ligne du code
unlink('album/'.$dossier.'');

mais ça marche pas le dossier et tjr là et j'ai le message d'erreur suivant :

Warning: unlink(album/25_album_test) [function.unlink]: Permission denied in C:\Program Files\EasyPHP-5.3.8.1\www\site\include\function.php on line 1528

ViPHP
xTG
ViPHP | 7331 Messages

20 févr. 2012, 16:12

Permission denied = Permission refusée
En gros le serveur web n'a pas les droits sur le fichier.

Eléphant du PHP | 417 Messages

20 févr. 2012, 16:29

et comment jvé faire pour supprimer un dossier?

ViPHP
xTG
ViPHP | 7331 Messages

20 févr. 2012, 16:40

Bah tu modifies ses droits via les propriétés.
Ou bien tu lances ton Easy PHP avec la session administrateur et là tu n'auras plus de problème.

Eléphant du PHP | 417 Messages

20 févr. 2012, 16:43

Yeah ça marche :) merci encore :D