Erreur PHP incompréhensible
Résolu
petitmarco
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
petitmarco Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
petitmarco Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Erreur PHP incompréhensible
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Expert php pinterest - Télécharger - Langages
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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
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');
?>
-------------------------------------------
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 ;)
$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 par
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question