Tom's Guide > Forum > Programmation > optimiser script php pour gain de mémoire

optimiser script php pour gain de mémoire

Forum Programmation : optimiser script php pour gain de mémoire

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

bonsoir.
Depuis hier j'ai mon site qui beug chez free apparement parceque mon script utilise trop de mémoire, il me faidrait donc l'optimiser mais je ne vois pas comment.
c'est un script pour tracer le mec par rapport à son IP histoire de voir qu'il ne s'est pas infiltrer dans la partie admin et autre
Le voici:

Code :
  1. <?php
  2. include("connexion.php" );
  3. //on récupère l'adresse IP de la personne
  4. if(IsSet($_SERVER['HTTP_X_FORWARDED_FOR'])){
  5.     $ip_simple = $_SERVER['HTTP_X_FORWARDED_FOR'];
  6. }elseif(IsSet($_SERVER['HTTP_CLIENT_IP'])){
  7.     $ip_simple = $_SERVER['HTTP_CLIENT_IP'];
  8. }else{
  9.     $ip_simple = $_SERVER['REMOTE_ADDR'];
  10. }
  11. $date = time();
  12. //on va regarder si il y a dans la BD l'adresse IP
  13. $retour_total=mysql_query("SELECT COUNT(date) AS total FROM statsjours where IP='$ip_simple'" );
  14. $donnees_total=mysql_fetch_assoc($retour_total);
  15. $total=$donnees_total['total'];
  16. if ($total==0) // la variable $total est le nombre de champs correspondant à l'adresse IP
  17.     {  // si pas d'adresse IP présente dans la base de donnée
  18.     include("stats.php" ); //gestion des stats des naviguateurs
  19.     mysql_query("INSERT INTO statsjours VALUES('$ip_simple', '$date')" ); //on insere
  20.     touch("secure/log/$ip_simple.txt" ); // Ceci crera le fichier texte ayant comme nom l'adresse IP
  21.     }
  22. else
  23.     { // si adresse IP présente dans la base de donnée
  24.     $retour_date=mysql_query("SELECT date AS date FROM statsjours where IP='$ip_simple'" );
  25.     $donnees_date=mysql_fetch_assoc($retour_date);
  26.     $datenr=$donnees_date['date'];
  27.     $diff=$date-$datenr;
  28.     if ($diff>86400)
  29.         {//on peut mettre en place le traitement d'enregistrement de la conf
  30.         include("stats.php" ); //gestion des stats des naviguateurs
  31.         mysql_query("UPDATE statsjours SET date='$date' WHERE IP='$ip_simple'" );
  32.         }
  33.     }
  34. //---------------------------------------------------------------------PREPARATION DES DONNES A INSERER DANS LES FICHIERS TEXTES------------------------------------------------------------------------------------------------------
  35. $x = getenv("HTTP_USER_AGENT" ) ;
  36. if (ereg("Google", $x)) { $browser = 'Bot' ; } # Il existe beaucoup d'autres bots du genre... mais Google reste le plus gourmand
  37. elseif ( ereg("Lynx", $x )) { $browser = 'Lynx'; }
  38. elseif (eregi('Maxthon',$x)) {
  39. $browser = explode(" ",$x); $browser = $browser[count($browser) -2] . ' version : ' . $browser[count($browser) -1] ; }
  40. elseif (strpos($x,'Firefox') or strpos($x,'Safari')) {
  41. $browser = explode(" ",$x);
  42. $browser = explode('/',$browser[count($browser) -1] ); $browser = $browser[0] . ' version : ' . $browser[1] ; }
  43. elseif(ereg('Opera',$x)) { 
  44. $browser = explode(" ",$x);  $browser = explode('/',$browser[0]) ; $browser = $browser[0]  .' version : '. $browser[1] ; }
  45. elseif(strpos($x,'MSIE 7.0')) { $browser = 'Internet Explorer version : 7.0' ;}
  46. elseif(strpos($x,'MSIE 6.0')) { $browser = 'Internet Explorer version : 6.0' ;}
  47. $page=$_SERVER['SCRIPT_NAME'];
  48. // Port de connection
  49. if(IsSet($_SERVER['REMOTE_PORT'])){
  50.     $port = $_SERVER['REMOTE_PORT'];
  51. }else{
  52.     $port = 80;
  53. }
  54. //Adresse IP de votre proxy
  55. if(IsSet($_SERVER['HTTP_VIA'])){
  56.     $ipproxy = $_SERVER['HTTP_VIA'];
  57. }else{
  58.     $ipproxy = 'Inconnu';
  59. }
  60. // Language activé sur le navigateur
  61. if(IsSet($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  62.     $langage = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  63. }else{
  64.     $langage = 'Inconnu';
  65. }
  66. // FAI
  67. if(function_exists('gethostbyaddr')){
  68.     $fai_visiteur = gethostbyaddr($ip_simple);
  69. }else{
  70.     $fai_visiteur = 'Inconnu';
  71. }
  72. $dateserv = date("d-m-Y" );
  73. $heureserv = date("H:i:s" );
  74. $provenance=$HTTP_REFERER;
  75. // ouverture du fichier en mode lecture- écriture : le pointeur est à la fin du fichier
  76. $MonFichier = fopen("secure/log/$ip_simple.txt","a+" ); //lecture
  77. fputs($MonFichier,$dateserv ." | ".$heureserv." | ".$page." | ".$ip_simple." | ".$browser." | ".$port." | ".$ipproxy." | ".$langage." | ".$fai_visiteur." | ".$provenance."\n" );
  78. fclose ($MonFichier);
  79. ?>





merci de votre aide :)


EDIT: message d'erreur:
"Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 92160 bytes) in /mnt/148/sda/6/5/adeltimple/secure/trace.php on line 80"

je vous positionne cette fameuse ligne 80:
$fai_visiteur = gethostbyaddr($ip_simple);
}else{ ligne 80
$fai_visiteur = 'Inconnu';


Message édité par adeltimple le 28-05-2008 à 21:43:38
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Tom's Guide > Forum > Programmation > optimiser script php pour gain de mémoire
Aller à :

Il y a 2003 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens