[PhP] Comment optimiser

Résolu
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   -  
 shoops -
Bonjour,

J'ai un souci dans une application web.
Le fait est que j'ai un bug du type Fatal error: Maximum execution time of 30 seconds exceeded in .
Je pense que si mon code était optimisé il prendrait moins de temps et parconséquent j'éviterait cette erreur qui stop le process.

Pour tout vous dire l'erreur arrive au cours d'une boucle for aprés 1 ou 2 passage ... sauf que je voudrais pouvoir monter à beaucoup plus que 1 ou 2 passage !!!

Comment optimise t on une application web faite en php ??
Merci d'avance pour votre aide
A voir également:

10 réponses

Misdrhaal Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   16
 
Donne nous ton code, le contenu de tes tables et on pourra te répondre.

sinon tu peux toujours mettre un
set_time_limit(0)

mais tu laisserai alors la porte ouverte aux bocles infinies...
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
y a pas des optimiseur de script, ou des trucs qui flent direct la temps d'éxécution du script et des boucles ? !
je croyais que ca existait... mais p'tet que je suis à l'Ouest.. :\
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
Pour ce coin particuler, j'utilise une table temporaire que je rempli.
Par la suite j'appelle une autre fonction qui sort les données avec une boucle for

function envoie($sujet,$messagecenter,$pdfup,$serviceTotal,$newsid){
	$QUERY = mysql_query("SELECT DISTINCT email,id,nom,prenom,fonction,nomOrganisation FROM envoie ");
	$RESULT = mysql_num_rows($QUERYecrRECIPIENT);

		$log='';
		for($x=0;$RESULT!=$x;$x++)
		{
			$NOM = mysql_result($QUERY,$x,"nom");
			$PRENOM = mysql_result($QUERY,$x,"Prenom");
			$NOMORGA = mysql_result($QUERY,$x,"nomOrganisation");
			$email = mysql_result($QUERY,$x,"email");
			$recipientID= mysql_result($QUERY,$x,"id");
			$FONCTIONnom= mysql_result($QUERY,$x,"fonction");
			$log[]=	Array('ID'=> $recipientID,'NOM'=> $NOM,'PRENOM'=> $PRENOM,'MAIL'=> $email,'ORGANISATION'=> $NOMORGA);
			$message = Personalise($NOM,$PRENOM,$NOMORGA,$FONCTIONnom,$messagecenter);

			envoierMail($email,$sujet,$message,$message,$pdfup);

		}
	logMail ($log, $dateUp);
}


et une autre qui envoie le mail
function envoierMail($email,$sujet,$html,$text,$pdfUp=''){
	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->Host = "xxx.xxx.xx";
	$mail->SMTPAuth = true;
	$mail->Username = "xxx@xx.xx";
	$mail->Password = "";

	$mail->From = "zzz@eee.ee";
	$mail->FromName = "ZZZZZZ";
	$mail->AddAddress($email);
	$mail->AddReplyTo("", "Information");

	$mail->WordWrap = 150;
	$mail->IsHTML(true);

	$mail->Subject = stripslashes($sujet);
	$mail->Body    = stripslashes($html);
	$mail->AltBody = stripslashes($text);
	if(isset($pdfUp)){
		$mail->AddAttachment($pdfUp);       
	}

	if(!$mail->Send())
	{
	   echo "Message could not be sent. <p>";
	   echo "Mailer Error: " . $mail->ErrorInfo;
	   exit;
	}
	echo "j'ai un pdf !!";
    $mail->ClearAddresses();
    $mail->ClearBody();
    $mail->SmtpClose();
	unset($mail);
}

voilà .... je sais ca fait un max de boucle ... mais bon
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
ca ne répond pas à toutes les questions ...
Et ne résoult pas les miens, mais c'est intéréssant
http://www.vulgarisation-informatique.com/optimiser-php.php
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
bah à part mon truc de sleep(2); je vois pas trop ce qui pourrait te décoincer (le code j'entend :P) ...
J'vais aller matter ton lien, merki !
--> ca y c'est lu..bin cool en gros j'ai l'habitude de coder avec les meilleures fonctionnalitées , tant mieux :P
0
Nicolas
 
J' ai deja rencontré se probleme ulterieurement.
Je n'est pas easy php devant les yeux mais je sais qu'il est possible de modifier le temps d'execution maximal accordé au chargement d 'une page.
Il me semble que ce-ci est expliqué dans la rubrique 'aide' du logiciel.
Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
J'ai agrandi max_execution_time à 60
Et maintenant, j'ai une autre erreur
Warning: fsockopen(): unable to connect to smtp.www.fr:25 in PATH\class.smtp.php on line 105
Message could not be sent.

Mailer Error: Language string failed to load: connect_host


Ce qui veux dire ??
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
Alors ça , ça veut dire qu'il y a un problème avec ton envoi de mail car l'envoi se fait a travers une socket.. le soucis vient d'après ce message de ton serveur smtp qui est configuré sur : smtp.www.fr:25
et il manque je pense le domaine :) comme on le voit c'est www.fr et non www.monServeurSMTP.fr avec monServeurSMTP = ton serveur stmp ;)
et ca normalement tu peux le changer dans le fichier httpd.conf ou php.ini je ne me souviens plus (dsl :| ) dans ton répertoire Apache.

Voili, voilOo :)
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185 > Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention  
 
non, j'ai remplacer le domaine par www.
j'admet c'est pas trés malin .... mais le smtp est bon ... puisqu'il fonctionne trés bien sans piéce jointe :(

... Alors ducoup je ne sais que faire
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
Allo,

j'ai changé de class.
J'ai pris LibMail (http://lwest.free.fr/doc/php/lib/index.php3?page=mail&lang=fr) pour remplacer PhPMailer ... et Ca MARCHE ...........; PourVU que ca DUR

Par contre le max_execution_time est toujours à 60
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
Par contre le max_execution_time est toujours à 60 c'est bien ,ç aévite a ton script de tourner a l'infini s'il est coincé dans une boucle :D
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
Faut pas rever ... dés que j'ajoute plus de contacts ... ca tombe !!!
MERDE §§§§§§§§§§§§§§§§
J'ai pas envie de me mettre a 0 limit !!
0
P@ Messages postés 1709 Date d'inscription   Statut Membre Dernière intervention   185
 
De retour, dés Lundi ...

Dés que ma piéce jointe est "lourde" (+10ko) ou que j'ai un beaucoup de mail ... ca plante.
Comment je peux faire pour éviter ca ??
J'ai du mal ... car je ne voudrais pas limiter l'appli en terme de nombre d'envoie et pour le poid je peux limiter ... mais 10k c'est court !!!

Y a t il des idées ??

Merci d'avance
0
shoops
 
Bonjour
je suis un développeur informatique, spécialisé dans le développement web, si vous avez des questions concernant l'optimisation PHP, JQuery, Ajax et Smarty.... vous pouvez les poser sur http://www.shoops.fr/forum/univer/10/informatique-0.php je passe régulierement sur Shoops.fr

Merci
0