FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 27-07-2019 17:00:18

sakenplastic
Membre
Inscription : 27-07-2019
Messages : 3

[Résolu] Message d'erreur sur les discussion

Bonjour j'ai ceux message qui s'affiche comme erreur sur les discussions et seulement sur les discussions, je commence dans le PHP et je ne trouves pas la solution..
Quelqu'un aurait-ils une idée ?

Deprecated: Function create_function() is deprecated in /var/www;monsite/public_html/include/parser.php on line 840


Merci d'avance !

Hors ligne

#2 27-07-2019 18:52:32

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Message d'erreur sur les discussion

Ce n'est pas une erreur, mais un avertissement.
Votre hébergeur a changé de version PHP, il faut passer à FluxBB 1.5.11.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#3 02-08-2019 10:49:19

LudoR
Membre
Inscription : 31-07-2019
Messages : 3

Re : [Résolu] Message d'erreur sur les discussion

Otomatic a écrit :

Ce n'est pas une erreur, mais un avertissement.
Votre hébergeur a changé de version PHP, il faut passer à FluxBB 1.5.11.

Bonjour,

Je rencontre le même problème, pourtant j'ai bien la dernière version d'installé.

Deprecated: Function create_function() is deprecated in /homepages/38/d719782760/htdocs/forum/include/parser.php on line 764

Deprecated: Function create_function() is deprecated in /homepages/38/d719782760/htdocs/forum/include/parser.php on line 840


Que puis-je faire svp ?

Dernière modification par LudoR (02-08-2019 10:50:00)

Hors ligne

#4 02-08-2019 15:35:14

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Message d'erreur sur les discussion

Bonjour,

Ce n'est — pour le moment — qu'un avertissement et ça n'empêche pas le fonctionnement du forum.
Une solution d'attente est de faire précéder les appels create_function( par une arobe @ : @create_function(, de ce fait les avertissements ne sont pas affichés et comme pour le moment la fonction create_function() n'est considérée que comme obsolète, même avec PHP 7.3.8, elle existe toujours et fonctionne.

On peut aussi effectuer les modifications idoines dans le fichier include/parser.php pour toutes les lignes qui contiennent create_function en remplaçant par une fonction anonyme.
Par exemple :
Fichier parser.php
- Ligne 98
Remplacer

$temp = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $text);

par

$temp = preg_replace_callback($re_list, function($matches) { return preparse_list_tag($matches[2], $matches[1]); }, $text);

- Ligne 643
Remplacer

$content = preg_replace_callback($re_list, create_function('$matches', 'return preparse_list_tag($matches[2], $matches[1]);'), $content);

par

$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);

- Ligne 737
Remplacer

$content = preg_replace_callback($re_list, create_function('$matches', 'return handle_list_tag($matches[2], $matches[1]);'), $content);

par

$content = preg_replace_callback($re_list, function($matches) { return handle_list_tag($matches[2], $matches[1]); }, $content);

- Ligne 764
Remplacer

$text = preg_replace_callback('%\[quote=(&quot;|&\#039;|"|\'|)([^\r\n]*?)\\1\]%s', create_function('$matches', 'global $lang_common; return "</p><div class=\"quotebox\"><cite>".str_replace(array(\'[\', \'\\"\'), array(\'&#91;\', \'"\'), $matches[2])." ".$lang_common[\'wrote\']."</cite><blockquote><div><p>";'), $text);

par

$text = preg_replace_callback('%\[quote=(&quot;|&\#039;|"|\'|)([^\r\n]*?)\\1\]%s', function($matches) use ($lang_common) { return '</p><div class="quotebox"><cite>'.str_replace(array('[', '\\"'), array('&#91;', '"'), $matches[2])." {$lang_common['wrote']}</cite><blockquote><div><p>"; }, $text);

Vous avez vu le principe, on remplace create_function() par function() qui est une fonction anonyme.

Attention : Le remplacement de la ligne 840 est beaucoup plus complexe qu'une simple ligne à remplacer, il faut aussi modifier les éléments du tableau $replace_callback[].
Ligne 770
Remplacer

$replace_callback[] = 'handle_list_tag($matches[2], $matches[1])';

par

$replace_callback[] = function($matches) { return handle_list_tag($matches[2], $matches[1]); };

Lignes 789 à 805
Remplacer

			$replace_callback[] = 'handle_img_tag($matches[1].$matches[3], true)';
			$replace_callback[] = 'handle_img_tag($matches[2].$matches[4], true, $matches[1])';
		}
		else
		{
			$replace_callback[] = 'handle_img_tag($matches[1].$matches[3], false)';
			$replace_callback[] = 'handle_img_tag($matches[2].$matches[4], false, $matches[1])';

par

			$replace_callback[] = function($matches) { return handle_img_tag($matches[1].$matches[3], true); };
			$replace_callback[] = function($matches) { return handle_img_tag($matches[2].$matches[4], true, $matches[1]); };
		}
		else
		{
			$replace_callback[] = function($matches) { return handle_img_tag($matches[1].$matches[3], false); };
			$replace_callback[] = function($matches) { return handle_img_tag($matches[2].$matches[4], false, $matches[1]); };

Lignes 822 à 833
Remplacer

	$replace_callback[] = 'handle_url_tag($matches[1])';
	$replace_callback[] = 'handle_url_tag($matches[1], $matches[2])';
	$replace[] = '<a href="mailto:$1">$1</a>';
	$replace[] = '<a href="mailto:$1">$2</a>';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewtopic.php?id=\'.$matches[1])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewtopic.php?id=\'.$matches[1], $matches[2])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewtopic.php?pid=\'.$matches[1].\'#p\'.$matches[1])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewtopic.php?pid=\'.$matches[1].\'#p\'.$matches[1], $matches[2])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewforum.php?id=\'.$matches[1])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/viewforum.php?id=\'.$matches[1], $matches[2])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/profile.php?id=\'.$matches[1])';
	$replace_callback[] = 'handle_url_tag(\''.get_base_url(true).'/profile.php?id=\'.$matches[1], $matches[2])';

par

	$replace_callback[] = function($matches) { return handle_url_tag($matches[1]); };
	$replace_callback[] = function($matches) { return handle_url_tag($matches[1], $matches[2]); };
	$replace[] = '<a href="mailto:$1">$1</a>';
	$replace[] = '<a href="mailto:$1">$2</a>';
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?id='.$matches[1], $matches[2]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewtopic.php?pid='.$matches[1].'#p'.$matches[1], $matches[2]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/viewforum.php?id='.$matches[1], $matches[2]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1]); };
	$replace_callback[] = function($matches) { return handle_url_tag(get_base_url(true).'/profile.php?id='.$matches[1], $matches[2]); };

Ligne 840
Remplacer

$text = preg_replace_callback($pattern_callback[$i], @create_function('$matches', 'return '.$replace_callback[$i].';'), $text);

par

$text = preg_replace_callback($pattern_callback[$i], $replace_callback[$i], $text);

Je vous conseille fortement d'effectuer une sauvegarde du fichier parser.php AVANT d'effectuer les modifications


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#5 04-08-2019 17:06:29

sakenplastic
Membre
Inscription : 27-07-2019
Messages : 3

Re : [Résolu] Message d'erreur sur les discussion

D'accord, merci pour toutes ces précisions je vais essayer ça !

Hors ligne

#6 04-08-2019 17:30:41

sakenplastic
Membre
Inscription : 27-07-2019
Messages : 3

Re : [Résolu] Message d'erreur sur les discussion

Otomatic a écrit :

Ce n'est pas une erreur, mais un avertissement.
Votre hébergeur a changé de version PHP, il faut passer à FluxBB 1.5.11.

D'ailleurs le message s'affiche alors que je suis bien en 1.5.11, je viens de vérifier happy

Hors ligne

#7 04-10-2020 06:45:37

JeanDenis
Membre
Inscription : 17-06-2020
Messages : 6

Re : [Résolu] Message d'erreur sur les discussion

Bonjour à tous,

J'avais, moi aussi cet avertissement... ( http://adhoc.71site.fr/forum/index.php ) Je viens d'effectuer les modifications suggérées par Otomatic...

Impeccable ! Grands mercis à lui !

Très cordialement,

Jean-Denis

Hors ligne

#8 25-01-2023 19:25:05

LeChapitre
Membre
Lieu : Liege
Inscription : 12-02-2006
Messages : 239
Site Web

Re : [Résolu] Message d'erreur sur les discussion

Bonjour,

Vu la date de ce message, je voudrais savoir si pour une version de php 7.4 la procédure est toujours d'actualité.

Merci de l'info.

Cordialement,

Hors ligne

#9 26-01-2023 03:09:19

Elementair
Membre
Inscription : 12-01-2021
Messages : 54

Re : [Résolu] Message d'erreur sur les discussion

Bonjour.

Oui toujours d'actualité pour php 7.4.

Hors ligne

#10 28-01-2023 12:51:33

LeChapitre
Membre
Lieu : Liege
Inscription : 12-02-2006
Messages : 239
Site Web

Re : [Résolu] Message d'erreur sur les discussion

Bonjour,

Après modification du fichier /include/parser.php je n'ai plus accès au contenu des diverses discussions.

Voici le message d'erreur : Parse error: syntax error, unexpected 'if' (T_IF) in /home/domainebe/public_html/forum/include/parser.php on line 101

J'ai passé la version de php en 7.3 autrement, j'ai toujours ce message-là d'erreur :


Deprecated: Function get_magic_quotes_runtime() is deprecated in /home/domainebe/public_html/forum/include/common.php on line 79

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/domainebe/public_html/forum/include/common.php on line 83

Merci d'avance pour votre aide.

Cordialement,

Hors ligne

#11 28-01-2023 12:55:57

LeChapitre
Membre
Lieu : Liege
Inscription : 12-02-2006
Messages : 239
Site Web

Re : [Résolu] Message d'erreur sur les discussion

Re,

En version php 7.4

Voici d'autre message d'erreur :

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/domainebe/public_html/forum/include/functions.php on line 1806

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/domainebe/public_html/forum/include/functions.php on line 1830

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/domainebe/public_html/forum/include/functions.php on line 2034

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/domainebe/public_html/forum/include/utf8/utils/bad.php on line 273

Deprecated: Function get_magic_quotes_runtime() is deprecated in /home/domainebe/public_html/forum/include/common.php on line 79

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/domainebe/public_html/forum/include/common.php on line 83

Hors ligne

#12 28-01-2023 15:14:22

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Message d'erreur sur les discussion

LeChapitre a écrit :

Deprecated in /home/domainebe/public_html/forum/include/common.php on line 79
Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/domainebe/public_html/forum/include/common.php on line 83

Dans le fichier include/common.php remplacer :

if (get_magic_quotes_runtime())
	set_magic_quotes_runtime(0);

par :

/* Turn off magic_quotes_runtime - PHP 7.4.0
if (get_magic_quotes_runtime())
	set_magic_quotes_runtime(0);
*/
LeChapitre a écrit :

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/domainebe/public_html/forum/include/functions.php on line 1806

Il faut remplacer, par exemple :

		if ($entry{0} == '.')

par

		if ($entry[0] == '.')

c'est-à-dire {x} par [x] pour toutes les lignes où il y a l'avertissement.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

Pied de page des forums