[PhP] Comment optimiser

Résolu/Fermé
P@ Messages postés 1709 Date d'inscription vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 - 23 févr. 2006 à 14:44
 shoops - 9 avril 2009 à 11:24
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 lundi 9 mai 2005 Statut Membre Dernière intervention 23 février 2006 16
23 févr. 2006 à 15:01
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
23 févr. 2006 à 15:14
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
23 févr. 2006 à 15:17
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
23 févr. 2006 à 15:36
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
23 févr. 2006 à 16:31
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
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
24 févr. 2006 à 13:03
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 févr. 2006 à 13:54
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185 > Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015
24 févr. 2006 à 14:23
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
24 févr. 2006 à 15:52
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 févr. 2006 à 16:20
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
24 févr. 2006 à 16:29
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 vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
27 févr. 2006 à 13:07
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
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