Erreur PHP incompréhensible
Résolu
petitmarco
Messages postés
46
Statut
Membre
-
petitmarco Messages postés 46 Statut Membre -
petitmarco Messages postés 46 Statut Membre -
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
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
-
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 -
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');
?>
------------------------------------------- -
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 ;)
-
Bonjour
Il faut modifier la ligne pour remplacer parresults=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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci de vos réponses, je vais essayer les deux et je reviens pour informer du résultats
-
SUPER, la solution de "Mimiste" fonctionne, j'ai enlevé le &, et plus de message d'erreur, et le site fonctionne
Merci encore à vous
;-)