[PhP] Comment optimiser
Résolu
P@
Messages postés
1137
Date d'inscription
Statut
Membre
-
shoops -
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
--
..:::P@ ... a tras, a PoOf ou a chou :::..
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
--
..:::P@ ... a tras, a PoOf ou a chou :::..
10 réponses
-
Donne nous ton code, le contenu de tes tables et on pourra te répondre.
sinon tu peux toujours mettre unset_time_limit(0)
mais tu laisserai alors la porte ouverte aux bocles infinies... -
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 mailfunction 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 -
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ??
-
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 :)
-
-
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 -
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
-
Faut pas rever ... dés que j'ajoute plus de contacts ... ca tombe !!!
MERDE §§§§§§§§§§§§§§§§
J'ai pas envie de me mettre a 0 limit !! -
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
-
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