[PHP- UPLOAD] Erreur 500

hugo - 29 mai 2010 à 21:24
 hugo -
Bonjour,
j'ai un petit probème, dans la création de l'admin de mon site photo, je dois pouvoir uploader 20 photos en même temps donc je fais une boucle pour l'upload... mais la page met entre 30 et 45 secondes à se rafraichir et ca ne marche pas ca me met erreur 500...

La fonction d'upload:
function upload($index,$destination,$maxsize=FALSE,$extensions=FALSE)
{
   //Test1: fichier correctement uploadé
     if (!isset($_FILES[$index]) OR $_FILES[$index]['error'] > 0) return FALSE;
   //Test2: taille limite
     if ($maxsize !== FALSE AND $_FILES[$index]['size'] > $maxsize) return FALSE;
   //Test3: extension
     $ext = substr(strrchr($_FILES[$index]['name'],'.'),1);
     if ($extensions !== FALSE AND !in_array($ext,$extensions)) return FALSE;
   //Déplacement
     return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);
}


Le code de la page:
<?php session_start();
	  include("function.inc.php");
	  verif_connex("login.php");
	  connect_db();
?>
<?php 

if (
		(isset($_POST['titre']) && !empty($_POST['titre'])) 
		&& (isset($_POST['keyword']) && !empty($_POST['keyword']))
		&& (isset($_POST['contenu']) && !empty($_POST['contenu']))
		&& (isset($_POST['resume']) && !empty($_POST['resume']))
		
		
		
	)
{
$titre=$_POST['titre'];
$keyword=$_POST['keyword'];
$contenu=$_POST['contenu'];
$resume=$_POST['resume'];

$date=time();
$titre_nospace = str_replace(' ', '-', $titre);
$direction='../img/thumb/'.time().'-'.$titre_nospace.'.jpg';
$lien_img='img/thumb/'.time().'-'.$titre_nospace.'.jpg';

		// On passe à l'upload du fichier 
		upload('thumb',$direction ,1048576, FALSE );
		// On insère les données dans la bdd
mysql_query("INSERT INTO galerie VALUES('', '$titre', '$resume', '$date', '$keyword', '$lien_img', '$contenu')")or die(mysql_error());
$id_galerie=mysql_insert_id();

for ($up = 1; $up <= 20; $up++)
{
$nom='photo'.$up.'';
$titre_nospace = str_replace(' ', '-', $titre);

$direction='../img/galerie/'.time().'-'.$titre_nospace.'-'.$up.'.jpg';
$lien='img/galerie/'.time().'-'.$titre_nospace.'-'.$up.'.jpg';
$up= upload($nom ,$direction ,1048576, FALSE );

if($up) mysql_query("INSERT INTO photo VALUES( '', '$lien', '$id_galerie')"); 
}




		
	


}// Fin du if de verification des données

else { $erreur="Merci de remplir le formulaire correctement"; }



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mon pixel, Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1;" />

<link href="css/helper.css" media="screen" rel="stylesheet" type="text/css" />
<link href="css/dropdown.css" media="screen" rel="stylesheet" type="text/css" />
<link href="css/default.advanced.css" media="screen" rel="stylesheet" type="text/css" />
<link type="text/css" rel="stylesheet" href="css/style.css" />
<!-- TinyMCE -->
<script type="text/javascript" src="../tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups",

		// Theme options
		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,

		// Example word content CSS (should be your site CSS) this one removes paragraph margins
		content_css : "css/word.css",

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js",

		// Replace values for the template plugin
		template_replace_values : {
			username : "Some User",
			staffid : "991234"
		}
	});
</script>

</head>
<body>
<?php include("header.inc.php"); ?>


<h1>Poster un article</h1>
<form action="#" method="post" enctype="multipart/form-data">
<div class="tableau">
<table border="0" >
  <tr>
    <td>Titre:</td>
    <td><input name="titre" type="text" /> </td>
  </tr>
  <tr>
    <td>Keyword:</td>
    <td><input name="keyword" type="text" value="5 max,virgule entre chaque" /></td>
  </tr>
  <tr>
    <td>Illustration<br  />
    (600*200)</td>
    <td><input name="thumb" type="file" /></td>
  </tr>

</table>
</div>
	<h2>Description de la galerie</h2>
 <textarea name="contenu" cols="100" rows="10"></textarea>   
 
 <h2> Réumé, une ou deux lignes</h2>
  <textarea name="resume" cols="100" rows="5"></textarea>   
  
  <h2>Uploader les photos, 20 maximum par galerie !</h2>
<?php   for ($nombre_de_champs = 1; $nombre_de_champs <= 20; $nombre_de_champs++)
{ ?>
<input name="photo<?php echo $nombre_de_champs; ?>" type="file" /><br />
<?php } ?>

  <br />

    <input name="send" type="submit" value="Envoyer" />
</form>

</div>
</body>
</html>


1 réponse

J'ai résolu le problème tout seul comme un grand, je ne passe plus par une boucle for mais encore par un autre fonction, moi optimisé mais ca marche !
0