[PhP] Comment optimiser

Résolu
P@ Messages postés 1137 Date d'inscription   Statut Membre -  
 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 :::..

10 réponses

  1. Misdrhaal Messages postés 49 Statut Membre 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
    1. Zep3k!GnO Messages postés 2049 Statut Membre 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
  2. P@ Messages postés 1137 Date d'inscription   Statut Membre 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
  3. P@ Messages postés 1137 Date d'inscription   Statut Membre 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
    1. Zep3k!GnO Messages postés 2049 Statut Membre 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. P@ Messages postés 1137 Date d'inscription   Statut Membre 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
    1. Zep3k!GnO Messages postés 2049 Statut Membre 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
      1. P@ Messages postés 1137 Date d'inscription   Statut Membre 185 > Zep3k!GnO Messages postés 2049 Statut Membre
         
        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
  7. Zep3k!GnO Messages postés 2049 Statut Membre 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
  8. P@ Messages postés 1137 Date d'inscription   Statut Membre 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
  9. P@ Messages postés 1137 Date d'inscription   Statut Membre 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
  10. 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