Bonjour,
Pouvez vous m'aidé a rendre compatible Arfooo 2.0.2 avec php ( PHP 7 / PHP 7.1 / PHP 7.2)
Merci
comment rendre compatible Arfooo 2.0.2 avec php 7 et plus
9 messages
• Page 1 sur 1
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
Bonjour,
Arfooo Ultimate est compatible avec php7.
Sinon la seule solution facile est gratuite que j'ai trouvé est ici:
http://www.arfooo.fr/script-arfooo/33-script-arfooo-annuaire-php-7.html
Je l'utilise sur deux annuaire est pour le moment RAS.
Arfooo Ultimate est compatible avec php7.
Sinon la seule solution facile est gratuite que j'ai trouvé est ici:
http://www.arfooo.fr/script-arfooo/33-script-arfooo-annuaire-php-7.html
Je l'utilise sur deux annuaire est pour le moment RAS.
- Bodyboard
- Messages: 93
- Inscription: Mer 4 Mar 2009 10:14
- Localisation: Toulouse
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
Bonjour,
Il n'est pas très compliqué de rendre Arfooo compatible avec PHP 7
Je n'ai pas encore fait le passage en php 7.2 par manque de temps mais le miens tourne actuellement sous du php 7.1.26
Voici ce qu'il faut faire :
Remplacer le fichier \core\Database.php par celui-ci
Ensuite il y a 3 fichiers à modifier :
- \components\template_lite\class.compiler.php
Remplacer les lignes 66 et suivantes
par
- \components\template_lite\class.config.php
Remplacer les lignes 35 et suivantes
par
- \components\template_lite\class.template.php
Remplacer les lignes 92 et suivantes
par
Il faudra surement vider les dossiers cache et compiled (sauf les Htaccess) mais ça devrait fonctionner au moins pour du PHP 7.1
Il n'est pas très compliqué de rendre Arfooo compatible avec PHP 7
Je n'ai pas encore fait le passage en php 7.2 par manque de temps mais le miens tourne actuellement sous du php 7.1.26
Voici ce qu'il faut faire :
Remplacer le fichier \core\Database.php par celui-ci
- Code: Tout sélectionner
<?php
/**
* Arfooo
*
* @package Arfooo
* @copyright Copyright (c) Arfooo Annuaire (fr) and Arfooo Directory (en)
* by Guillaume Hocine (c) 2007 - 2010
* http://www.arfooo.com/ (fr) and http://www.arfooo.net
* @author Guillaume Hocine & Adrian Galewski
* @license http://creativecommons.org/licenses/by/2.0/fr/ Creative Commons
*/
/**
* Class to co-operate with MySQL database.
*/
class Database extends Object
{
private $dbHost;
private $dbUser;
private $dbPass;
private $dbName;
private $debug = false;
private $lastInsertId;
private $lastAffectedRows;
private $queriesCnt = 0;
private $queriesTime = 0;
private static $instance = null;
private $connected;
private $conn;
/**
* Returns an instance of Database object
* @return Database
*/
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function setDebug($value)
{
$this->debug = $value;
}
/**
* Generates the standard Database object
*/
public function __construct()
{
$this->dbHost = Config::get("DB_HOST");
$this->dbUser = Config::get("DB_USER");
$this->dbPass = Config::get("DB_PASS");
$this->dbName = Config::get("DB_NAME");
}
/**
* Connect to mysql server and selct database to use
*/
public function connect()
{
$this->conn = $conn = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName);
if(mysqli_connect_errno()){
trigger_error("<b>Can't connect to MySQL server</b></b>");
}
}
/**
* Creates and executes UPDATE query
* @return resource MySQL result resource
*/
public function sqlUpdate($tabname, $vars, $where = "")
{
$sql = "UPDATE $tabname SET ";
foreach ($vars as $key => $value) {
if ($key{0} != "_") {
$value = addslashes($value);
$value = "'" . $value . "'";
}
$sql .= ltrim($key, "_") . "=" . $value . ", ";
}
$sql = substr($sql, 0, -2);
if (!empty($where)) {
$sql .= " WHERE $where";
}
$res = $this->sqlQuery($sql);
return $res;
}
private function removeStartUnderscore($field)
{
return ltrim($field, "_");
}
/**
* Creates and executes INSERT query
* @return resource MySQL result resource
*/
public function sqlInsert($tabname, $varsTab, $multi = false)
{
if (!$multi) {
$varsTab = array($varsTab);
}
$sql = "INSERT INTO $tabname(";
$sql .= implode(", ", array_map(array($this, "removeStartUnderscore"),
array_keys($varsTab[0])));
$sql .= ") VALUES";
$rows = array();
foreach ($varsTab as $vars) {
$vals = array();
foreach ($vars as $key => $val) {
if ($key{0} != "_") {
$val = addslashes($val);
$val = "'" . $val . "'";
}
$vals[] = "$val";
}
$rows[] = "(" . implode(",", $vals) . ")";
}
$sql .= implode(", ", $rows);
$res = $this->sqlQuery($sql);
return $res;
}
/**
* Creates and executes INSERT query - multi inserts in same time
* @return resource MySQL result resource
*/
public function sqlMultiInsert($tabname, $varsTab)
{
return $this->sqlInsert($tabname, $varsTab, true);
}
/**
* Creates and executes DELETE query
* @return resource MySQL result resource
*/
public function sqlDelete($tabname, $where = "")
{
$sql = "DELETE FROM $tabname";
if ($where) {
$sql .= " WHERE $where";
}
$res = $this->sqlQuery($sql);
return $res;
}
/**
* Creates and execute SELECT query
* @return resource MySQL result resource
*/
public function sqlSelect($tabname, $arrWhat = "*", $where = "", $options = "", $joins = "")
{
if (is_array($tabname)) {
$tabname = implode(", ", $tabname);
}
if (is_array($arrWhat)) {
if (count($arrWhat)) {
$what = implode(", ", $arrWhat);
} else {
$what = "*";
}
} else {
$what = $arrWhat;
}
$sql = "SELECT $what FROM $tabname ";
if (is_array($joins) && count($joins) == 2) {
$sql .= " LEFT JOIN $joins[0] ON $tabname.$joins[1] = $joins[0].$joins[1]";
}
if (!empty($where)) {
$sql .= " WHERE $where";
}
if (!empty($options)) {
$sql .= " $options";
}
$res = $this->sqlQuery($sql);
return $res;
}
/**
* Executes custom query
* @return resource MySQL result resource
*/
public function sqlQuery($sql)
{
if (!$this->connected) {
$this->connect();
$this->connected = true;
$this->sqlQuery("SET NAMES " . Config::get('DEFAULT_CHARSET'));
}
$startTime = microtime(true);
$res = mysqli_query($this->conn,$sql);
$endTime = microtime(true);
$queryTime = $endTime - $startTime;
if ($this->debug) {
echo sprintf("%f", $queryTime) . "<br>";
echo "<b>" . $sql . "</b><br><br>";
}
$this->queriesCnt++;
$this->queriesTime += $queryTime;
Display::set("queriesCount", $this->queriesCnt);
Display::set("queriesTime", $this->queriesTime);
if (!$res) {
echo $sql;
$error = mysqli_error();
$errornr = mysqli_errno();
trigger_error("B³±d SQL $error ($errornr)");
}
$this->lastInsertId = mysqli_insert_id($this->conn);
$this->lastAffectedRows = mysqli_affected_rows($this->conn);
return $res;
}
/**
* Get insert id from last query
* @return int
*/
public function insertID()
{
return $this->lastInsertId;
}
/**
* Get affected rows count in last query
* @return int
*/
public function affectedRows()
{
return $this->lastAffectedRows;
}
/**
* Get one row from MySQL result resource
* @param resource MYSQL result resource
* @return array
*/
public function sqlFetchArray($res)
{
$row = mysqli_fetch_assoc($res);
return $row;
}
/**
* Get numberer of rows in MySQL result resource
* @param resource MYSQL result resource
* @return int
*/
public function sqlNumRows($res)
{
$count = mysqli_num_rows($res);
return $count;
}
/**
* Get value from database
* @param string $what field name or complete sql query
* @param string $tabname table which shoulb be used to get value
* @param string $where WHERE part of query
* @param string $opt additional query options
* @return string|boolean return value or false if not exists
*/
public function sqlGet($what, $tabname = "", $where = "", $opt = "")
{
$sql = $what;
if ($tabname != "") {
$sql = "SELECT $what FROM $tabname";
}
if ($where != "") {
$sql .= " WHERE $where";
}
if ($opt != "") {
$sql .= " $opt";
}
$res = $this->sqlQuery($sql);
if (mysqli_num_rows($res) == 0) {
return false;
}
if (mysqli_num_fields($res) > 1) {
return $this->sqlFetchArray($res);
} else {
return $this->mysqli_result($res, 0, 0);
}
}
private function mysqli_result($res,$row=0,$col=0){
$numrows = mysqli_num_rows($res);
if ($numrows && $row <= ($numrows-1) && $row >=0){
mysqli_data_seek($res,$row);
$resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
if (isset($resrow[$col])){
return $resrow[$col];
}
}
return false;
}
public function sqlGetRow($what, $tabname = "", $where = "", $opt = "")
{
$sql = $what;
if ($tabname != "") {
$sql = "SELECT $what FROM $tabname";
}
if ($where != "") {
$sql .= " WHERE $where";
}
if ($opt != "") {
$sql .= " $opt";
}
$res = $this->sqlQuery($sql);
if (mysqli_num_rows($res) == 0) {
return false;
}
return $this->sqlFetchArray($res);
}
/**
* Get all rows from database which will return query
* @param string $what field name or complete sql query
* @param string $tabname table which shoulb be used to get value
* @param string $where WHERE part of query
* @param string $opt additional query options
* @return array
*/
public function sqlGetAll($what, $tabname = "", $where = "", $opt = "")
{
$sql = $what;
if ($tabname != "") {
$sql = "SELECT $what FROM $tabname";
}
if ($where != "") {
$sql .= " WHERE $where";
}
if ($opt != "") {
$sql .= " $opt";
}
$out = array();
$res = $this->sqlQuery($sql);
while ($row = $this->sqlFetchArray($res)) {
$out[] = $row;
}
return $out;
}
/**
* Get rows count which match to query
* @param string $tabname table to use
* @param string $where WHERE part of query
* @return int
*/
public function sqlCount($tabname, $where = "")
{
$sql = "SELECT count(*) as cnt FROM $tabname";
if ($where != "") {
$sql .= " WHERE $where";
}
$res = $this->sqlQuery($sql);
$row = $this->sqlFetchArray($res);
$cnt = intval($row['cnt']);
return $cnt;
}
/**
* Get total number of executed queriee
* @return int
*/
public function getQueriesCnt()
{
return $this->queriesCnt;
}
public function getLastInsertId()
{
return $this->lastInsertId;
}
public function getTotalQueriesCount()
{
return $this->queriesCnt;
}
public function getTotalQueriesTime()
{
return $this->queriesTime;
}
}
Ensuite il y a 3 fichiers à modifier :
- \components\template_lite\class.compiler.php
Remplacer les lignes 66 et suivantes
- Code: Tout sélectionner
public $_obj_params_regexp = null;
public $_templatelite_vars = array();
function Template_Lite_compiler()
{
// matches double quoted strings:
// "foobar"
// "foo\"bar"
// "foobar" . "foo\"bar"
$this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
par
- Code: Tout sélectionner
public $_obj_params_regexp = null;
public $_templatelite_vars = array();
function __construct()
{
$this->Template_Lite_Compiler();
}
function Template_Lite_compiler()
{
// matches double quoted strings:
// "foobar"
// "foo\"bar"
// "foobar" . "foo\"bar"
$this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
- \components\template_lite\class.config.php
Remplacer les lignes 35 et suivantes
- Code: Tout sélectionner
public $_bool_false_regexp = null;
public $_qstr_regexp = null;
function config()
{
$this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
$this->_bool_true_regexp = 'true|yes|on';
$this->_bool_false_regexp = 'false|no|off';
par
- Code: Tout sélectionner
public $_bool_false_regexp = null;
public $_qstr_regexp = null;
function __construct() {
}
function config()
{
$this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
$this->_bool_true_regexp = 'true|yes|on';
$this->_bool_false_regexp = 'false|no|off';
- \components\template_lite\class.template.php
Remplacer les lignes 92 et suivantes
- Code: Tout sélectionner
public $_resource_time;
public $_sections = array();
public $_foreach = array();
function Template_Lite()
{
$this->_version_date = strtotime($this->_version_date);
}
function load_filter($type, $name)
par
- Code: Tout sélectionner
public $_resource_time;
public $_sections = array();
public $_foreach = array();
function __construct() {
}
function Template_Lite()
{
$this->_version_date = strtotime($this->_version_date);
}
function load_filter($type, $name)
Il faudra surement vider les dossiers cache et compiled (sauf les Htaccess) mais ça devrait fonctionner au moins pour du PHP 7.1

Les Pages du Keroinsite - Annuaire généraliste gratuit : http://pages.keroinsite.com
- Keroin
- Messages: 192
- Inscription: Mar 15 Juil 2008 15:48
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
Dernière édition par lechtimi le Sam 27 Juil 2019 08:33, édité 1 fois.
[url=https://www.annonces-de-france.net/]Publier un article[/url]
[url=https://www.hellarides.com/]Contenu marketing[/url]
[url=https://www.hellarides.com/]Contenu marketing[/url]
- lechtimi
- Messages: 110
- Inscription: Lun 3 Mar 2008 06:08
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
merci ! ca marche super
- effi
- Messages: 324
- Inscription: Sam 25 Avr 2009 11:47
- Localisation: Paris
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
Bonjour,
Parmi toutes les versions de Arfooo existantes sur le web, pas une seule n'est compatible avec php 7.2 et supérieur.
Il est temps de dire adieu définitivement à ce beau script.
Parmi toutes les versions de Arfooo existantes sur le web, pas une seule n'est compatible avec php 7.2 et supérieur.
Il est temps de dire adieu définitivement à ce beau script.

-
diaph16 - Messages: 155
- Inscription: Sam 25 Avr 2009 09:17
- Localisation: Lille
Re: comment rendre compatible Arfooo 2.0.2 avec php 7 et plu
Rien pour php 7.2/7.3 ?
Merci
Merci
- aras
- Messages: 278
- Inscription: Mar 2 Déc 2008 23:26
9 messages
• Page 1 sur 1
Retourner vers Installation, aide et report de bugs
-
- Articles en relation
- Réponses
- Vus
- Dernier message
-
- Voici comment rendre compatible Arfooo 2.0.2 avec php 5.6
1, 2de Stef67 » Mer 15 Avr 2015 10:46 - 11 Réponses
- 16055 Vus
- Dernier message de aiel62
Jeu 23 Fév 2017 12:40
- Voici comment rendre compatible Arfooo 2.0.2 avec php 5.6
-
- Comment rendre Url de site non-obligatoire ?
de HarmonieTerre » Lun 18 Mai 2009 06:12 - 7 Réponses
- 2838 Vus
- Dernier message de HarmonieTerre
Jeu 28 Mai 2009 20:38
- Comment rendre Url de site non-obligatoire ?
-
- Comment lancer la migration freeglobes > Arfooo
de Erhan » Dim 9 Jan 2011 00:42 - 2 Réponses
- 2371 Vus
- Dernier message de Erhan
Dim 9 Jan 2011 02:16
- Comment lancer la migration freeglobes > Arfooo
-
- debutant avec arfooo
de tchaw » Mar 28 Déc 2010 14:37 - 4 Réponses
- 2647 Vus
- Dernier message de tchaw
Mer 29 Déc 2010 13:27
- debutant avec arfooo
-
- Arfooo incompatible avec PHP 5.5
1, 2de herbert » Mer 22 Jan 2014 21:45 - 10 Réponses
- 9156 Vus
- Dernier message de Erwan
Dim 22 Mai 2016 12:28
- Arfooo incompatible avec PHP 5.5
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités