Page 1 sur 1

fatal error : maximum execut... sur un upload... A L'AIDE !!

Posté : 07 juil. 2006, 16:07
par Waynejunior
Bonjour,

je bloque sur une erreur d'upload...
Mon script fait afficher l'erreur suivante :
Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\gramofone\admin\saisie_ar.php on line 60
brièvement j'essaye d'uploader quatre fichiers de 1 mo chacun...
Si quelqu'un pouvait m'aider...

Merci d'avance

<?php require_once('../Connections/gramofone.php'); ?>
<?php
mysql_select_db($database_gramofone, $gramofone);
$query_artiste = "SELECT * FROM artiste";
$artiste = mysql_query($query_artiste, $gramofone) or die(mysql_error());
$row_artiste = mysql_fetch_assoc($artiste);
$totalRows_artiste = mysql_num_rows($artiste);

mysql_select_db($database_gramofone, $gramofone);
$query_audio = "SELECT * FROM mp3";
$audio = mysql_query($query_audio, $gramofone) or die(mysql_error());
$row_audio = mysql_fetch_assoc($audio);
$totalRows_audio = mysql_num_rows($audio);

mysql_select_db($database_gramofone, $gramofone);
$query_contact = "SELECT * FROM contact_gram";
$contact = mysql_query($query_contact, $gramofone) or die(mysql_error());
$row_contact = mysql_fetch_assoc($contact);
$totalRows_contact = mysql_num_rows($contact);

mysql_select_db($database_gramofone, $gramofone);
$query_images = "SELECT * FROM images";
$images = mysql_query($query_images, $gramofone) or die(mysql_error());
$row_images = mysql_fetch_assoc($images);
$totalRows_images = mysql_num_rows($images);

$conn_id = ftp_connect("ftp.adress"); // Connexion au ftp
ftp_login($conn_id,"user","pass"); // Identification
$RepDistant="www/news/"; // Répertoire distant
$UnLien="http://www.site"; // URL du site
$PoidsMax=1; // Exprimé en Mo, ici 5Mo
$PoidsMax=$PoidsMax*1000000; // On convertir en octets 5Mo -> 5 000 000 octets

//set_time_limit(120); 

//if (isset ($_POST["ok"])) {
// Récupération des infos du formulaire
$nom_artiste_tempo=$_POST['nom_artiste'];
$genre_artiste_tempo=$_POST['genre_artiste'];
$bio_tempo=$_POST['bio'];
$site_officiel_tempo=$_POST['site_officiel'];
$num_contact_prod_tempo=$_POST['num_contact_prod'];
// création du répertoire de stockage
$rep = substr($nom_artiste_tempo, 0, 6)."/";
$repertoire = "../artistes/".$rep;
//mkdir ($repertoire, 0777);			
if(isset($_FILES['dossier'])) {
	$dossier_tempo = $_FILES['dossier']['tmp_name'];
	$name = $RepDistant.$_FILES['dossier']['name'];
    if(ftp_put($conn_id,$name,$dossier_tempo,1)==1){
           echo "Le transfert de ".$name." a été effectué avec succés.";
           }else{
           //On affiche un message d'erreur si l'opération échoue
           echo "Le transfert de ".$name." a échoué !";
      }
}
if(isset($_FILES['fiche'])) { 
	$fiche_tempo = $_FILES['fiche']['name'];
	$name = $RepDistant.$_FILES['fiche']['name'];
    if(ftp_put($conn_id,$name,$dossier_tempo,1)==1){
           echo "Le transfert de ".$name." a été effectué avec succés.";
           }else{
           //On affiche un message d'erreur si l'opération échoue
           echo "Le transfert de ".$name." a échoué !";
      }
}
if(isset($_FILES['patchwork'])) { 
   	$patchwork_tempo = $_FILES['patchwork']['name'];
	$name = $RepDistant.$_FILES['patchwork']['name'];
    if(ftp_put($conn_id,$name,$dossier_tempo,1)==1){
           echo "Le transfert de ".$name." a été effectué avec succés.";
           }else{
           //On affiche un message d'erreur si l'opération échoue
           echo "Le transfert de ".$name." a échoué !";
      }
}
if(isset($_FILES['photo'])) { 
   	$photo_tempo = $_FILES['photo']['name'];
	$name = $RepDistant.$_FILES['photo']['name'];
    if(ftp_put($conn_id,$name,$dossier_tempo,1)==1){
           echo "Le transfert de ".$name." a été effectué avec succés.";
           }else{
           //On affiche un message d'erreur si l'opération échoue
           echo "Le transfert de ".$name." a échoué !";
      }
}
$insertSQL = "INSERT INTO artiste (nom_artiste, repertoire, genre_artiste, site_officiel, num_contact_prod, dossier, bio, patchwork, photo) VALUES ('$nom_artiste_tempo', '$rep', '$genre_artiste_tempo', '$site_officiel_tempo', '$num_contact_prod_tempo', '$dossier_tempo', '$bio_tempo', '$patchwork_tempo', '$photo_tempo')";
mysql_select_db($database_gramofone, $gramofone);
$Result1 = mysql_query($insertSQL, $gramofone) ;


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="saisie_ar.php" method="post" enctype="multipart/form-data" name="insert" id="insert">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Nom artiste:</td>
      <td><input name="nom_artiste" type="text" value="" size="32"> 
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Genre artiste:</td>
      <td><input type="text" name="genre_artiste" size="32"> 
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Site officiel : (http://) </td>
      <td><input type="text" name="site_officiel" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Contact gramofone :</td>
      <td>
        <select name="num_contact_prod">
          <?php
do {  
?>
          <option value="<?php echo $row_contact['num_contact'];?>"><?php echo $row_contact['prenom']?></option>
          <?php
} while ($row_contact = mysql_fetch_assoc($contact));
  $rows = mysql_num_rows($contact);
  if($rows > 0) {
      mysql_data_seek($contact, 0);
	  $row_contact = mysql_fetch_assoc($contact);
  }
?>
        </select>
        </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Dossier de presse :</td>
      <td><input name="dossier" type="file" id="dossier"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td bgcolor="whitesmoke">Le nom du fichier doit &ecirc;tre "book.pdf"</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Fiche technique :</td>
      <td><input name="fiche" type="file" id="fiche"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td bgcolor="whitesmoke">Le nom du fichier doit &ecirc;tre "fiche_tech.pdf" </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr valign="baseline">
      <td align="right" valign="top" nowrap>Description :</td>
      <td valign="top"><textarea name="bio" cols="32"></textarea> 
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Photo du patchwork :</td>
      <td><input name="patchwork" type="file" id="patchwork"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td bgcolor="whitesmoke">Le nom du fichier doit &ecirc;tre "patchwork.jpg"</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Photo :</td>
      <td><input name="photo" type="file" id="photo"> 
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td bgcolor="whitesmoke">Le nom du fichier doit &ecirc;tre "photo.jpg"</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input name="bt_insert" type="submit" id="bt_insert" value="ok"></td>
    </tr>
  </table>
</form>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($artiste);
mysql_free_result($audio);
mysql_free_result($contact);
mysql_free_result($images);
?>

Posté : 07 juil. 2006, 16:42
par Cyrano
Le message est clair, le délai de chargement est trop long et le timeout de PHP est ahusté à 30 secondes : trop court pour tout traiter et si tu es en mutualisé, tu ne pourras pas modifier cette directive. Donc il faut contourner le problème en traitant un seul upload à la fois.

Posté : 07 juil. 2006, 17:23
par Waynejunior
Merci de ta réponse...

Peux-tu être plus précis... "un chargement à la fois" ?

merci d'avance

Posté : 07 juil. 2006, 18:03
par Cyrano
Tu fais quatre chargements d'un coup : c'est trop pour le délai imparti par la configuration : trouve une manière de le faire un par un successivement : ça risque fort d'être suant pour l'utilisateur, mais ce sera la seule manière... à moins que tu sois sur serveur dédié : dans ce cas, essaye en ajustant le timeout à 2 minutes par exemple.

Posté : 26 juil. 2006, 19:30
par proteus2k7
Peut-être que tu peux t'en sortir avec :
set_time_limit(0);
A mettre en première ligne de ton script, et à condition que tu ne soies pas en safe_mode.

Posté : 26 juil. 2006, 19:35
par Cyrano
Dangereux comme solution et surtout, ça risque de bloquer l'affichage de la page sans un complément...