Vous n'êtes pas identifié(e).
Bonjour à tous,
Je vais avoir besoin d'un coup de main, voila !!! avec les fêtes qui approche mes enfants m ont demandé (comme tous les ans) de remettre en ligne une petite application php "mygift" que j'avais trouvé sur le web il y a quelques années et qui leur plait beaucoup . Seulement voilà j'ai mis à jour ma debian cette année et évidemment l'application ne marche plus avec le php 7.3.
Donc je vais avoir besoin de vous pour corriger tout les soucis (enfin j'espère).
J'ai donc commencé par chercher un outil pour me permettre de trouver et lister toutes les [error] et [warning] que php 7.* me trouvent et j'ai trouvé .
J'ai donc maintenant une liste de 4 pages d'erreurs qui s'affiche comme ça :
File: /var/www/html/cadeaux/includes/Database.sqlite.class.php
> Line 12: [Error] PHP 4 constructors are now deprecated
function Database($server, $user, $password, $database)
{
}
File: /var/www/html/cadeaux/includes/Category.class.php
> Line 8: [Error] PHP 4 constructors are now deprecated
function Category($id = '')
{
}
File: /var/www/html/cadeaux/includes/Database.class.php
> Line 13: [Error] PHP 4 constructors are now deprecated
function Database($server, $user, $password, $database)
{
}
> Line 69: [Error] Removed function "mysql_num_rows" called
mysql_num_rows($result);
> Line 70: [Error] Removed function "mysql_fetch_assoc" called
mysql_fetch_assoc($result);
> Line 76: [Error] Removed function "mysql_free_result" called
mysql_free_result($result);
> Line 89: [Error] Removed function "mysql_fetch_assoc" called
mysql_fetch_assoc($result);
> Line 93: [Error] Removed function "mysql_free_result" called
mysql_free_result($result);
> Line 105: [Error] Removed function "mysql_fetch_assoc" called
mysql_fetch_assoc($result);
> Line 106: [Error] Removed function "mysql_free_result" called
mysql_free_result($result);
etc.......
n'étant vraiment pas très fort en PHP je m'adresse à vous pour m'aider à corriger .
Merci d'avance à qui voudra bien m'aider
Hors ligne
J'ai peut être un début de réponse pour la première erreur :
Ce qui veux donc dire je suppose qu'il faut que je change soit le nom de la classe soit le nom de la fonction ?
(j'écrit au fur et à mesure de mes recherches vous m'excuserez)
Ahhh!!!! non !!! y a une histoire de (__construct) mais j'ai pas tout compris ?
en effet si je remplace function GiftList($listId) par function __construct($listId) que je relance mon "utilitaire" de debbugage cette erreur n'apparait plus, mais étant donnée que je change le nom de cette fonction je sent pointer d'autres erreurs à venir !! non ?
d'autant plus que j'ai d'autres fonctions définies dans cette class et que pour le coup j'ai pas d'erreurs sur ces autres fonctions ????? , bon j'attend vos réactions !
je vous joint ci-dessous le contenu du fichier d'origine en question :
class GiftList {
var $listId;
var $gifts;
var $ownerName;
function GiftList($listId)
{
global $database, $user;
if (empty($listId))
$listId = $user->id;
$this->listId = $listId;
$sqlQuery = "SELECT g.*, ".$database->timestamp("g.created")." as ts_created, ".$database->timestamp("g.updated")." as ts_updated, u.id as claimerId, u.name as claimerName, o.name as ownerName, cat.category as category_name FROM gft_category cat, gft_gift g
LEFT OUTER JOIN gft_user o ON g.owner=o.id
LEFT OUTER JOIN gft_claim c ON c.giftId=g.id
LEFT OUTER JOIN gft_user u ON c.userId=u.id ";
$whereClause = "WHERE forUser = '".addslashes($listId)."' AND g.category = cat.id ";
if ($listId != $user->id) {
$sqlQuery .= "LEFT OUTER JOIN gft_visibility v ON (v.giftId=g.id AND v.userId = '".addslashes($user->id)."') ";
$whereClause .= "AND (restricted = 0 OR v.userId is not null) ";
}
$whereClause .= "ORDER BY offered, offeredOn, cat.category, g.name";
$tmpGifts = $database->fetch($sqlQuery.$whereClause);
$curTime = time();
foreach ($tmpGifts as $tmpGift) {
if (!is_array($this->categories) || !in_array($tmpGift["category_name"], $this->categories))
$this->categories[] = $tmpGift["category_name"];
if ($curTime-$tmpGift["ts_created"] < 4*24*3600)
$tmpGift["new"] = true;
else if ($curTime-$tmpGift["ts_updated"] < 4*24*3600)
$tmpGift["recent"] = true;
$this->gifts[$tmpGift["category_name"]][] = $tmpGift;
}
$database->loadObject($this, "select name as ownerName from gft_user where id='".addslashes($listId)."'");
}
function numFree() {
$numFree = 0;
foreach ($this->gifts as $giftArr) {
if (empty($giftArr["claimerId"]))
$numFree++;
}
return $numFree;
}
function sendByEmail($to, $format = "")
{
global $user, $strings;
//ob_start();
$message = Controler::processTemplate("emailTextList", $user, $this);
//$message = ob_get_contents();
//ob_end_clean();
$result = $user->sendMail($to, $strings["LANG_EMAIL_SUBJECT"], $message, "X-Mailer: myGifts/PHP");
//echo "$message";
return $result;
}
function getParams()
{
}
}
Controler::registerHandler("giftList", "display", "GiftList", array("id"));
Controler::registerHandler("myList", "display", "GiftList", array("user"), 1);
Controler::registerHandler("sendByEmail", "all", "GiftList", array("user", "to"));
?>
Merci de votre aide et bonne soirée
Dernière modification par steph-ero (27-10-2019 18:40:24)
Hors ligne
en effet si je remplace function GiftList($listId) par function __construct($listId) que je relance mon "utilitaire" de debbugage cette erreur n'apparait plus, mais étant donnée que je change le nom de cette fonction je sent pointer d'autres erreurs à venir !! non ?
non
le constructeur est bien appelé, qu'il s'appelle __construct ou GiftList
Hors ligne
non
le constructeur est bien appelé, qu'il s'appelle __construct ou GiftList
Ok merci pour ton aide
Hors ligne