1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

Que signifie cet erreur ?

Discussion dans 'Le café de WebRankInfo' créé par zikeur54, 5 Avril 2019.

  1. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    Bonjour,
    j'ai une erreur sur la ligne 172. Que signifie l'erreur pour un néophyte comme moi, merci.

    PHP:
    <?php

      
    class database {
        private static 
    $_links = array();
        private static 
    $_type DB_TYPE;

        public static function 
    construct() {
          if (
    self::$_type == 'mysql' && function_exists('mysqli_connect')) self::$_type 'mysqli';
        }

        
    //public static function load_dependencies() {
        //}

        //public static function startup() {
        //}

        //public static function before_capture() {
        //}

        //public static function after_capture() {
        //}

        //public static function prepare_output() {
        //}

        //public static function before_output() {
        //}

        
    public static function shutdown() {

        
    // Close a non-persistent database connection
          
    if (!in_array(strtolower(DB_PERSISTENT_CONNECTIONS), array('1''active''enabled''on''true''yes'))) {
            
    database::disconnect();
          }
        }

        
    ######################################################################

        
    public static function connect($link='default'$server=DB_SERVER$username=DB_USERNAME$password=DB_PASSWORD$database=DB_DATABASE$charset=DB_CONNECTION_CHARSET) {

          if (!isset(
    self::$_links[$link]) || (!is_resource(self::$_links[$link]) && !is_object(self::$_links[$link]))) {

            
    $execution_time_start microtime(true);

            if (
    self::$_type == 'mysqli') {

              if (
    in_array(strtolower(DB_PERSISTENT_CONNECTIONS), array('1''active''enabled''on''true''yes'))) {
                
    self::$_links[$link] = mysqli_connect('p:'.$server$username$password$database) or exit;
              } else {
                
    self::$_links[$link] = mysqli_connect($server$username$password$database) or exit;
              }

            } else {

              if (
    in_array(strtolower(DB_PERSISTENT_CONNECTIONS), array('1''active''enabled''on''true''yes'))) {
                
    self::$_links[$link] = mysql_pconnect($server$username$password65536) or exit;
              } else {
                
    self::$_links[$link] = mysql_connect($server$username$passwordfalse65536) or exit;
              }

              
    mysql_select_db($database) or self::_error(falsemysql_errno(), mysql_error());
            }

            
    $execution_time_stop microtime(true);
            
    $execution_time_duration $execution_time_stop $execution_time_start;

            if (
    $execution_time_duration 1) {
              
    error_log('Warning: A MySQL connection established in 'number_format($execution_time_duration3'.'' ') .' s.' PHP_EOL3FS_DIR_HTTP_ROOT WS_DIR_DATA 'performance.log');
            }

            if (
    class_exists('stats'false)) {
              
    stats::set('database_execution_time'stats::get('database_execution_time') + $execution_time_duration);
            }
          }

          if (!
    is_resource(self::$_links[$link]) && !is_object(self::$_links[$link])) {
            
    trigger_error('Error: Invalid database link'E_USER_ERROR);
          }

          
    $sql_mode_query self::query("select @@SESSION.sql_mode;");
          
    $sql_mode self::fetch($sql_mode_query);

          if (
    strpos($sql_mode['@@SESSION.sql_mode'], 'STRICT_TRANS_TABLES') !== false) {
            
    $sql_mode['@@SESSION.sql_mode'] = str_replace($sql_mode['@@SESSION.sql_mode'], 'STRICT_TRANS_TABLES''');
          }

          
    $sql_mode['@@SESSION.sql_mode'] = trim($sql_mode['@@SESSION.sql_mode']);

          
    self::query("SET @@session.sql_mode = '"database::input($sql_mode['@@SESSION.sql_mode']) ."';");

          
    self::query("set names '"database::input($charset) ."';"$link);

          return 
    self::$_links[$link];
        }

        public static function 
    set_encoding($charset$collation=null$link='default') {

          if (empty(
    $charset)) return false;

          
    $charset strtolower($charset);

          
    $charset_to_mysql_character_set = array(
            
    'euc-kr' => 'euckr',
            
    'iso-8859-1' => 'latin1',
            
    'iso-8859-2' => 'latin2',
            
    'iso-8859-3' => 'latin7',
            
    'iso-8859-4' => 'cp1257',
            
    'iso-8859-5' => 'cp1251',
            
    'iso-8859-6' => 'cp1256',
            
    'iso-8859-7' => 'greek',
            
    'iso-8859-8' => 'hebrew',
            
    'iso-8859-9' => 'latin5',
            
    'iso-8859-13' => 'latin7',
            
    'iso-2022-jp' => 'cp932',
            
    'iso-2022-jp-2' => 'eucjpms',
            
    'iso-2022-kr' => 'euckr',
            
    'utf-8' => 'utf8',
            
    'utf-16' => 'utf16',
            
    'windows-1250' => 'cp1250',
            
    'windows-1251' => 'cp1251',
            
    'windows-1252' => 'latin1',
            
    'windows-1256' => 'cp1256',
            
    'windows-1257' => 'cp1257',
          );

          if (empty(
    $charset_to_mysql_character_set[$charset])) {
            
    trigger_error('Unknown MySQL character set for charset '$charsetE_USER_WARNING);
            return 
    false;
          }

          if (!empty(
    $collation)) {
            
    self::query("set names '"database::input($charset_to_mysql_character_set[$charset]) ."' collate '"database::input($collation) ."';"$link);
          } else {
            
    self::query("set names '"database::input($charset_to_mysql_character_set[$charset]) ."';"$link);
          }

          return 
    true;
        }

        public static function 
    disconnect($link=null) {

          if (!empty(
    $link)) {
            
    $links = array(self::$_links[$link]);
          } else {
            
    $links self::$_links;
          }

          
    $errors false;
          foreach (
    array_keys($links) as $link) {
            if (!
    is_resource($link)) {
              
    $errors true;
            } else {
              if (
    self::$_type == 'mysqli') {
                
    mysqli_close(self::$_links[$link]);
              } else {
                
    mysql_close(self::$_links[$link]);
              }
              unset(
    self::$_links[$link]);
            }
          }

          return 
    $errors true false;
        }

        public static function 
    query($query$link='default') {

          if (!isset(
    self::$_links[$link]) || is_resource(self::$_links[$link])) self::connect($link);

          
    $execution_time_start microtime(true);

          if (
    self::$_type == 'mysqli') {
            
    $result mysqli_query(self::$_links[$link], $query) or self::_error($querymysqli_errno(self::$_links[$link]), mysqli_error(self::$_links[$link]));
          } else {
            
    $result mysql_query($queryself::$_links[$link]) or exit;
          }

          
    $execution_time_stop microtime(true);
          
    $execution_time_duration $execution_time_stop $execution_time_start;

          if (
    $execution_time_duration 3) {
            
    error_log('Warning: A MySQL query executed in 'number_format($execution_time_duration3'.'' ') .' s. Query: 'str_replace("\r\n""\r\n  "$query) . PHP_EOL3FS_DIR_HTTP_ROOT WS_DIR_DATA 'performance.log');
          }

          if (
    class_exists('stats'false)) {
            
    stats::set('database_queries'stats::get('database_queries') + 1);
            
    stats::set('database_execution_time'stats::get('database_execution_time') + $execution_time_duration);
          }

          return 
    $result;
        }

        public static function 
    multi_query($query$link='default') {

          if (!isset(
    self::$_links[$link]) || is_resource(self::$_links[$link])) self::connect($link);

          if (
    self::$_type == 'mysqli') {
            if (
    mysqli_multi_query(self::$_links[$link], $query) or self::_error($querymysqli_errno(self::$_links[$link]), mysqli_error(self::$_links[$link]))) {
              do {
                if (
    $result mysqli_use_result(self::$_links[$link])) {
                  while (
    $row mysqli_fetch_row($result)) {
                  }
                  
    mysqli_free_result($result);
                }
              }
              while (
    mysqli_next_result(self::$_links[$link]));
            }
          } else {
            
    self::query($queryself::$_links[$link]); // don't pick up results - we're not supporting it
          
    }

          return;
        }

        public static function 
    fetch($result) {

          
    $execution_time_start microtime(true);

          if (
    self::$_type == 'mysqli') {
            
    $array mysqli_fetch_assoc($result);
          } else {
            
    $array mysql_fetch_assoc($result);
          }

          
    $execution_time_stop microtime(true);
          
    $execution_time_duration $execution_time_stop $execution_time_start;

          if (
    class_exists('stats'false)) {
            
    stats::set('database_execution_time'stats::get('database_execution_time') + $execution_time_duration);
          }

          return 
    $array;
        }

        public static function 
    seek($result$offset) {
          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_data_seek($result$offset);
          } else {
            return 
    mysql_data_seek($result$offset);
          }
        }

        public static function 
    num_rows($result) {
          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_num_rows($result);
          } else {
            return 
    mysql_num_rows($result);
          }
        }

        public static function 
    free($result) {
          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_free_result($result);
          } else {
            return 
    mysql_free_result($result);
          }
        }

        public static function 
    insert_id($link='default') {
          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_insert_id(self::$_links[$link]);
          } else {
            return 
    mysql_insert_id(self::$_links[$link]);
          }
        }

        public static function 
    affected_rows($link='default') {
          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_affected_rows(self::$_links[$link]);
          } else {
            return 
    mysql_affected_rows(self::$_links[$link]);
          }
        }

        public static function 
    info($link='default') {

          if (!isset(
    self::$_links[$link])) self::connect($link);

          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_info(self::$_links[$link]);
          } else {
            return 
    mysql_info(self::$_links[$link]);
          }
        }

        public static function 
    input($string$allowable_tags=false$link='default') {

          if (
    is_array($string)) {
            foreach (
    array_keys($string) as $key) {
              
    $string[$key] = self::input($string[$key]);
            }
            return 
    $string;
          }

          if (
    is_bool($allowable_tags) === true && $allowable_tags !== true) {
            
    $string strip_tags($string$allowable_tags);
          }

          if (!isset(
    self::$_links[$link])) self::connect($link);

          if (
    self::$_type == 'mysqli') {
            return 
    mysqli_real_escape_string(self::$_links[$link], $string);
          } else {
            return 
    mysql_real_escape_string($stringself::$_links[$link]);
          }
        }

        private static function 
    _error($query$errno$error) {
          
    trigger_error('MySQL Error '$errno .': 'str_replace("\r\n"' '$error) ."\r\n  "str_replace("\r\n""\r\n  "$query), E_USER_ERROR);
        }
      }

    ?>
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 759
    J'aime reçus:
    234
    C'est quoi l'erreur ?
     
  3. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    L'erreur c'est celle-ci :

    la petite boutique rétro & vintage
    05:07 (il y a 2 heures)
    [​IMG]
    [​IMG]
    À moi
    [​IMG]





    LiteCart 1.3.7

    [05-Apr-2019 15:21:00 Europe/Paris] PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 16384 bytes) in /home/lam52tu/retro-vintage.fr/includes/library/lib_database.inc.php on line 172


    Ceci dit, c'est vrai que je pose mes questions ici dans ce forum alors que je devrais poser la question à mon développeur. Je viens juste de lui poser la même question, j'attend sa réponse.

    A mon niveau de néophyte je vois que c'est des erreurs de taille de mémoire alloué? Ok, mais que faire ? Et est-ce grave .
     
  4. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 108
    J'aime reçus:
    120
    Peut-être une requête qui fait ressortir plus de 512 Mo de résultat, mais dans ce code on ne voit pas la requête donc il faut que votre développeur investigue pour l'identifier.
     
  5. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    Je pense qu'il va me répondre ( sans présumer d'avance sa réponse) qu'il m'a déjà prévenu que la version de ma boutique est obsolète et que je devrais passer à la dernière version moyennant un changement de template et un peu d'argent. Chose que je ne conteste pas. Il sait que je suis d'accord, sauf que j'attend encore une rentrée d'argent qui n'arrive toujours pas.

    Ce qu'il y d'étonnant pour moi c'est que je ne me rend compte de rien lorsque je regarde ma boutique comme un visiteur. Partout où je clique, je ne vois rien d'anormal, j'ai même quelques commandes...

    Tous les messages d'erreurs ne sont pas forcément graves mais ce sont des indications pour les développeurs j'imagine.
     
  6. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    Je suis allé sur le forum de Litecart dont je suis membre et après avoir saisi la requête : " Allowed memory size", j'ai pu me rendre compte qu'il existait plusieurs sujets anciens traitant du même problème :
    https://www.litecart.net/fr/forums/search?query= Allowed memory size

    Un problème d'images couplé à un problème d'hébergeur.
     
  7. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 108
    J'aime reçus:
    120
    Une solution crade mais qui peut dépanner, c'est d'augmenter la limite qui est de 512 Mo actuellement à 1 ou 2 Go par exemple. C'est dans la config de PHP, paramètre memory_limit.
     
  8. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    Et bien, mon développeur est venu à mon secours, il vient de passer l'allocation de mémoire max à 1 Go. En ajoutant qu'au pire ça ne fait rien et qu'au mieux ça supprime des erreurs.

    Au fait, je lui ai montré le message de @rick38 pour lui dire qu'il m'avait donner la même solution. Il a juste tiqué sur le mot "crade" en disant ceci :

    " Lol je mets au défi beaucoup de correctement configurer un serveur web... même moi je trouve ça complexe ! Donc crade, non. C'est une procédure normale quand on ne peut pas directement accéder à la conf du serveur."
     
  9. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 108
    J'aime reçus:
    120
    C'est crade parce qu'un script PHP ne devrait jamais avoir à consommer autant de mémoire.
    Il y a un problème dans les requêtes SQL ou ailleurs, dans la façon dont est codée l'application PHP.
    Parce que la prochaine fois, c'est quoi la solution, passer à 2 Go ? Puis 10 Go de RAM ?
    Je ne pense pas que vous fassiez une application de détection des trous noirs ou d'intelligence artificielle...
    Quand le développeur est mauvais, on compense en achetant des barrettes de RAM, comme pour Windows Vista :)
     
    valserine apprécie ceci.
  10. zikeur54
    zikeur54 WRInaute impliqué
    Inscrit:
    15 Juin 2010
    Messages:
    564
    J'aime reçus:
    33
    Disons que ce n'est pas forcément une question de développeur mais peut-être tout simplement un problème d'hébergement mutualisé ?

    A ce propos même si j'ai largement le temps d'y penser j'aimerais savoir à partir de quel moment doit-on prendre un serveur dédié ?
     
Chargement...
Similar Threads - signifie erreur Forum Date
Que signifie (not provided) dans Google Analytics ? Débuter en référencement 30 Juillet 2019
Que signifie "optimiser une page pour un mot clef" ? Débuter en référencement 26 Novembre 2016
Que signifie "taux d'abandon" dans les flux de comportement et d'utilisateurs ? Google Analytics 30 Avril 2016
Que signifie ce robots.txt ? Débuter en référencement 18 Mars 2016
Que signifient ces visites de bots sur des pages qui n'existent pas ? Débuter en référencement 22 Juin 2014
Que signifie PR n/a ? Netlinking, backlinks, liens et redirections 4 Février 2014
Que signifient ^, $, L et NE dans une redirection 301 URL Rewriting et .htaccess 25 Mai 2013
Que signifie "faire du lien" ? Débuter en référencement 28 Février 2012
que signifie la catégorie "campagne" dans le trafic du site? Google Analytics 13 Janvier 2012
Qu'est-ce que ça signifie Débuter en référencement 21 Septembre 2010
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice