Dépassement du temps d'execution (30s)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Dépassement du temps d'execution (30s)

par sadeq » 26 févr. 2009, 22:46

tu peux faire un ini_set() comme ça par exemple, au début de ton script:
ini_set("max_execution_time", 3600); // 1H d'excéution Max 

Dépassement du temps d'execution (30s)

par bunk » 26 févr. 2009, 21:24

Bonsoir,

Je lance la fonction dbclean() lors de la soumission d'un formulaire, voici le code :
<?php

function clean_db($dbname){
		$date = date("d-m-Y",time());										
		$path = './DATA/clean/'.$date;
		
		if(!is_dir($path)){
			mkdir($path, 0755);			
		}
	
		$sql = "SHOW TABLE STATUS FROM $dbname";
		$req = mysql_query($sql);
		compte_requete();

		while ($donnees = mysql_fetch_array($req)){
			$table = $donnees[0];
			$sql = "SHOW TABLE STATUS FROM $dbname";
			$req = mysql_query($sql);
			compte_requete();
			
			if($req){
				$insertions = "";
				$tableau = mysql_fetch_array($req);
				$tableau[1] .= ";";
				$dumpsql[] = str_replace("\n", "", $tableau[1]);
				$sql = "SELECT * FROM $table";
				$req_table = mysql_query($sql);
				compte_requete();
				$nbr_champs = mysql_num_fields($req_table);
				while ($ligne = mysql_fetch_array($req_table)){
					$insertions .= "INSERT INTO $table VALUES(";
					for ($i=0; $i<=$nbr_champs-1; $i++){
						$insertions .= "'" . mysql_real_escape_string($ligne[$i]) . "', ";
					}
					$insertions = substr($insertions, 0, -2);
					$insertions .= ");\n";
				}
				if ($insertions != ""){
					$dumpsql[] = $insertions;
				}
			}
		}

		file_put_contents($path."/sqldump-".$dbname."-".date("Ymd-His").".sql", implode("\r", $dumpsql));

	}

?>
Ce code n'est pas de moi mais il fonctionne bien. Le problème est que je suis en hébérgement mutualisé et que je n'ai pas le droit de modifier le .ini de configuration

Comment pourrais-je modifier cette fonction pour quelle aboutisse ?
J'ai vu qu'il existait sleep() et usleep() mais je ne sait pas si c'est ce qu'il me faut et surtout ou les placer.

Merci pour votre aide.