Erreur PHP incompréhensible

Résolu
Bonjour,

Depuis que j'ai déplacé le site intranet de mon entreprise d'un PC à un autre, j'ai cette erreur qui apparaît

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\Program Files\EasyPHP 2.0b1\www\core\front\category.php on line 74

N'étant pas un as du PHP mais + un bidouiller, est ce que quelqu'un pourrait me porter secours.
--

La bêtise a ceci de terrible qu'elle peut ressembler à la plus profonde sagesse.
:-p
Configuration: Windows XP
Firefox 2.0.0.16

6 réponses

  1. SUPER, la solution de "Mimiste" fonctionne, j'ai enlevé le &, et plus de message d'erreur, et le site fonctionne

    Merci encore à vous
    ;-)
    1. Merci de vos réponses, je vais essayer les deux et je reviens pour informer du résultats
      1. Bonjour

        Il faut modifier la ligne pour remplacer par
        results=Pager_Wrapper_DB($db, $sSQL, $params);
        


        mais il faut aussi modifier la déclaration de la fonction Pager_Wrapper_DB dans Pager/Pager_Wrapper.php pour rajouter un '&' avant son 1er paramètre.

        Il faut recommencer ça pour chaque appel de fonction avec un paramètre passé par référence (qui commence par &) : le & doit être dans la déclaration de la fonction, pas dans l'appel.
        1. Effectivement il y a un passage par reference

          $results=Pager_Wrapper_DB(&$db, $sSQL, $params);

          tu le reconnais au & devant &$db

          essai d'enlever le & et regarde si ça ne pose pas de probleme a la fonction Pager_Wrapper_DB sinon il faudra montrer son code aussi ;)
          1. OK, merci de ta réponse voici le code PHP - (pour info, ce n'est pas moi qui l'ai écrit, c'est une source gratuite)

            la ligne 74 est en gras en bas
            $results=Pager_Wrapper_DB(&$db, $sSQL, $params);

            ------------------------
            <?php

            defined( 'IN_KB' ) or die( 'Restricted access' );

            // ################### BACK END ######################
            require_once 'Pager/Pager.php';
            require_once 'Pager/Pager_Wrapper.php';
            $id = ( empty($_GET['id']) ) ? 1 : (int)$_GET['id'];

            // ################### CATEGORY NAME ######################
            $path=$Category->breadcrumb($id,0);
            $sSQL='SELECT cName FROM '.PREFIX.'categories WHERE cID='.$id;
            $result=$db->query($sSQL);
            $rs=$result->fetchRow();
            $catTitle=$rs['cName'];
            $result->free();

            // ################### SUBCATEGORYS ######################
            $sSQL='SELECT cID, parent_id, cName,cDescription FROM '.PREFIX.'categories WHERE cDisplay="Y" AND parent_id='. $id.' ORDER BY cORDER ASC, cName ASC';
            $result = $db->query($sSQL);
            $catrows = $result->numRows();
            $category = array();
            while ($row = $result->fetchRow())
            {
            $category[]=$row;
            }
            $result->free();
            $template->assign('category',$category);
            $template->assign('catrows',$catrows);

            // ################### ARTICLES ######################

            $sSQL="SELECT article_id FROM ".PREFIX."article2cat WHERE category_id=".$id;
            $result = $db->query($sSQL);
            $totalItems = (int)$result->numRows();
            $count=1;
            $aID='';
            while ($row = $result->fetchRow())
            {
            if($count<$totalItems)
            {
            $comma=", ";
            }
            else
            {
            $comma="";
            }
            $aID.=$row['article_id']. $comma;
            $count++;
            }
            if($aID<>"")
            {
            $sSQL='SELECT aID,aTitle,aShortDesc,aDate,aHits FROM '.PREFIX.'articles WHERE aID IN ('.$aID.') AND aDisplay="Y" ORDER BY aDate';
            $params = array(
            'mode' => 'Sliding',
            'perPage' => $KB->settings['max_search'],
            'delta' => 2,
            'urlVar' => 'num',
            'spacesBeforeSeparator' => '1',
            'spacesAfterSeparator' => '1',
            );
            $results=Pager_Wrapper_DB(&$db, $sSQL, $params);
            }

            $template->assign('data', $results['data']);
            $template->assign('maxPage', $results['page_numbers']['total']);
            $template->assign('pageNum', $results['page_numbers']['current']);
            $template->assign('numrows', $results['totalItems']);
            $template->assign('links', $results['links']);

            // ################### DISPLAY TEMPLATE ######################
            $template->assign('breadcrumb', $path);
            $template->assign('catTitle', $catTitle);
            $template->assign('body', 'category.tpl');
            ?>
            -------------------------------------------
            1. Salut

              Apparement c'est un souci entre le code (un passage de parametre) et la configuration du serveur

              Comme dis dans l'erreur deux solutions s'offrent a toi :

              - Modifier la façon dont le parametre est passé

              - Activer le mode de passage actuel grace au fichier INI

              Je te conseille la premiere solution etant donné qu'il est aussi precisé que : "However, future versions may not support this any longer" Qui veut dire que dans les futures versions cette fonction ne sera plus du tout supportée !

              Si tu ne sais pas trop comment faire colle ici le code qui ce trouve environ ligne 74 de category.php