Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
3008 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec PHP 8

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Problème avec PHP 8

n°2378491
le tonton
www.laurentverdier.com
Posté le 11-03-2021 à 15:58:23  profilanswer
 

Je ne sais pas si je suis au bon endroit pour poser ma question.... Si ce n'est pas le cas, je déplacerais mon poste :)
 
J'aimerais activer PHP 8 sur mon site internet Wordpress 5.7 + Thème AVADA.  
Normalement, les deux sont compatible avec PHP 8.
 
Seulement dés que je l'active, mon site plante (grosse frayeur :D)  
Je n'ai plus accès à rien, j'ai juste une page qui se charge et qui me met  -->  
"There has been a critical error on this website."
"Learn more about troubleshooting WordPress."

Pourtant j'essaye de ne pas utiliser des extensions exotique et surtout elle sont toutes à jour.
 
Cependant, dés que je repasse en 7.4, je retrouve mon site à l'identique.  
 
Comment est-ce que je peux isoler et régler le problème ?   :)


Message édité par le tonton le 11-03-2021 à 16:02:05

---------------
https://www.laurentverdier.com
mood
Publicité
Posté le 11-03-2021 à 15:58:23  profilanswer
 

n°2378493
mechkurt
Posté le 11-03-2021 à 16:18:05  profilanswer
 

Regarder dans les logs de ton hébergeur ou activer le debug temporairement pour que l'erreur s'affiche dans le navigateur.
 
Ça sent l'appel à une fonction déprécié (ou un changement de syntaxe) dans le thème ou un plugin...


---------------
D3
n°2378576
le tonton
www.laurentverdier.com
Posté le 12-03-2021 à 14:26:55  profilanswer
 

Merci pour ton aide, je vais essayer de faire ça... même si je ne suis pas sur d'y arriver :D
 
J'imagine que c'est dans le CPanel de mon hébergeur que ça se passe ?


Message édité par le tonton le 12-03-2021 à 14:31:14

---------------
https://www.laurentverdier.com
n°2378583
le tonton
www.laurentverdier.com
Posté le 12-03-2021 à 14:57:24  profilanswer
 

Est-ce que ça vous parle ça ?  
 
[Fri Mar 12 03:28:25.266066 2021] [access_compat:error] [pid 1643:tid 47788211590912] [client 00.000.000.00:0] AH01797: client denied by server configuration: /home/public_html/wp-content/uploads/wpcf7_uploads/
[Thu Mar 11 15:36:54.233489 2021] [authz_core:error] [pid 4578:tid 47788082980608] [client 000.000.000.00:0] AH01630: client denied by server configuration: /home/public_html/.user.ini, referer: https://www.laurentverdier.com/.user.ini


Message édité par le tonton le 12-03-2021 à 15:16:40

---------------
https://www.laurentverdier.com
n°2378584
mechkurt
Posté le 12-03-2021 à 15:00:46  profilanswer
 

Dans ton error.log tu auras surement au moment de ton test (cherche via ton ip et le jour / heure ton essai) :

Code :
  1. Fatal error line xyz of file /chemine/vers/unfichier.php "ne peut pas faire je sais pas quoi ni pour quel raison"


---------------
D3
n°2378586
le tonton
www.laurentverdier.com
Posté le 12-03-2021 à 15:05:58  profilanswer
 

Voilà, normalement c'est celui-là.. Est-ce possible ?  

Code :
  1. [Fri Mar 12 15:04:01.152028 2021] [authz_core:error] [pid 17244:tid 47788241008384] [client 00.00.000.000:0] AH01630: client denied by server configuration: /home/[]/public_html/.user.ini


 
A moins que je ne soit pas au bon endroit...


Message édité par le tonton le 12-03-2021 à 15:15:54

---------------
https://www.laurentverdier.com
n°2378589
le tonton
www.laurentverdier.com
Posté le 12-03-2021 à 15:14:49  profilanswer
 

J'ai suivie cette procédure, je suis dans le bon ?  
--> https://aide.lws.fr/base/cPanel/Tut [...] sur-cPanel


---------------
https://www.laurentverdier.com
n°2378592
mechkurt
Posté le 12-03-2021 à 15:25:02  profilanswer
 

Nop, ça c'est une erreur de ton serveur apache qui affiche les pages, nous on cherche l'erreur php, c'est en dessous sur ta page d'aide.


---------------
D3
n°2378630
le tonton
www.laurentverdier.com
Posté le 12-03-2021 à 19:31:58  profilanswer
 

Bien justement je ne trouve pas le module "Editeur INI MultiPHP"  :cry:


---------------
https://www.laurentverdier.com
n°2378706
mechkurt
Posté le 13-03-2021 à 13:32:05  profilanswer
 

Bizarre un hébergeur qui ne donne pas accès à la log php...
 
Sinon tu peux aussi éditer ton fichier php et mettre :

Code :
  1. error_reporting(E_ALL);
  2. ini_set("display_errors", 1);


https://www.php.net/manual/fr/error [...] lay-errors
Ça devrait afficher ton erreur dans la page...
 
Mais ne laisses pas ça en production, c'est juste pour débuger ton problème !


---------------
D3
mood
Publicité
Posté le 13-03-2021 à 13:32:05  profilanswer
 

n°2378727
le tonton
www.laurentverdier.com
Posté le 13-03-2021 à 18:35:11  profilanswer
 

mechkurt a écrit :

Bizarre un hébergeur qui ne donne pas accès à la log php...
 
Sinon tu peux aussi éditer ton fichier php et mettre :

Code :
  1. error_reporting(E_ALL);
  2. ini_set("display_errors", 1);


https://www.php.net/manual/fr/error [...] lay-errors
Ça devrait afficher ton erreur dans la page...
 
Mais ne laisses pas ça en production, c'est juste pour débuger ton problème !


Je leur ai demandé par mail comment je pouvais faire... j'attend une réponse..


---------------
https://www.laurentverdier.com
n°2378937
le tonton
www.laurentverdier.com
Posté le 15-03-2021 à 12:15:16  profilanswer
 

Je crois que j'ai réussi.  :)  
 
 
Est-ce que ça vous parle plus ?

Message cité 1 fois
Message édité par le tonton le 18-03-2021 à 09:53:43

---------------
https://www.laurentverdier.com
n°2378950
mechkurt
Posté le 15-03-2021 à 13:52:57  profilanswer
 

Code :
  1. PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/vela9286/public_html/wp-includes/wp-db.php:1688


 
Bizarre que Worpdress utilise encore mysql_connect qui est déprécié depuis longtemps !
https://www.php.net/manual/fr/funct [...] onnect.php
Met à jour ton install de wordpress avent de changer de version de php et ça devrait régler le problème...


Message édité par mechkurt le 15-03-2021 à 13:53:15

---------------
D3
n°2379116
le tonton
www.laurentverdier.com
Posté le 16-03-2021 à 15:07:23  profilanswer
 

C'est étrange, j'ai développé mon site sur un wordpress tout neuf il y a moins de 12mois et il est à jour.  
 
Je suis actuellement sous Wordpress  5.7
Je fait toutes le mises à jours... est qu'il y en aurais une plus récente encore ?


---------------
https://www.laurentverdier.com
n°2379124
mechkurt
Posté le 16-03-2021 à 15:24:17  profilanswer
 

Nop, si ton WP est a jour ça ne vient pas de là...
Après vérification sur une intall WP, la ligne correspond à une tentative déséspé pour se connecter.
Wp (qui est très fort) s'adapte à l’hébergement  et tente "par tout les moyens" de se connecter, sauf que là en php 7 si y'a pas mysqli ben il ne risque pas d'y avoir mysql ! :- /
 
Du coups je penses que tu est comme ces personnes ci-dessous avec un php7 mais un connecteur mysqli désactivé...
 
https://stackoverflow.com/questions [...] ql-connect
https://wordpress.org/support/topic [...] ess-files/
 
Essaye de voir avec le support de ton hébergeur s'ils ont d'autres installations de WP 5.7 en php 7.4 fonctionnel car en l'état, on dirait que le code switch sur la partie non mysqli qui est déprécié
 
D'après le code :

Code :
  1. // Use ext/mysqli if it exists unless WP_USE_EXT_MYSQL is defined as true.
  2.  if ( function_exists( 'mysqli_connect' ) ) {
  3.   $this->use_mysqli = true;
  4.   if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
  5.    $this->use_mysqli = ! WP_USE_EXT_MYSQL;
  6.   }
  7.  }


Ça ne peut être que si tu as la constante WP_USE_EXT_MYSQL définis à true (sans doute dans le config.php à la racine) ou alors que l'extension mysqli n'est pas installé (mais en 2021 c'est franchement bizarre)...


---------------
D3
n°2379128
le tonton
www.laurentverdier.com
Posté le 16-03-2021 à 15:30:42  profilanswer
 

Je vous avoue que j'ai du mal à suivre  :lol:  
 
https://www.laurentverdier.com/download/images/mysqli.png
 
mysqli est déjà activé par défaut, que ça soit sur PHP7 ou PHP8
 
Sur PHP 7.4 tout est ok, ça fonctionne correctement.
 
Je vais contacter mon hébergeur "o2switch" pour voir si ils peuvent m'aider...


Message édité par le tonton le 16-03-2021 à 16:49:48

---------------
https://www.laurentverdier.com
n°2379141
mechkurt
Posté le 16-03-2021 à 16:50:47  profilanswer
 

Ben cherche si tu as une constante WP_USE_EXT_MYSQL de definis quelque part dans ton code car sinon tout devrait fonctionner...


---------------
D3
n°2379154
le tonton
www.laurentverdier.com
Posté le 16-03-2021 à 17:26:47  profilanswer
 

Je ne sais pas ce qu'est "une constante WP_USE_EXT_MYSQL"
Je n'ai pas de fichier "config.php" sur mon serveur. J'en ai un "wp-config.php" mais il ne contient pas "WP_USE_EXT_MYSQL"
Donc à mon avis il y a quelque choses que je ne comprend pas.  
 
 
 
Et la réponse de l'hébergeur ne s'est pas faites attendre :  
 
Bonjour,  
 
Cela dépend directement du code de votre site.
 
De notre côté, nous ne sommes pas Webmaster, nous ne connaissons pas le code de celui-ci.
 
Je pense que votre site fait appel à des fonctions qui ne sont pas compatibles avec PHP 8.0.
 
Il doit y avoir des incompatibilité dans votre site concernant PHP 8.0.
 
Cordialement,
Ludovic

 
Donc sur le coup je vais devoir régler le souci sans l'aide de l'hébergeur.


Message édité par le tonton le 16-03-2021 à 17:32:12

---------------
https://www.laurentverdier.com
n°2379156
B4X
kebab-case
Posté le 16-03-2021 à 17:40:35  profilanswer
 

C'est pas le job d'un hébergeur.
Remplace mysql_connect() par mysqli_connect()
Il faudra le faire partout, pour toutes les fonctions préfixées mysql_***, qui deviendront donc mysqli_***


---------------
In vanitas veritas.
n°2379161
le tonton
www.laurentverdier.com
Posté le 16-03-2021 à 17:57:11  profilanswer
 

B4X a écrit :

C'est pas le job d'un hébergeur.

J'ai bien compris  :)  

B4X a écrit :

Remplace mysql_connect() par mysqli_connect()
Il faudra le faire partout, pour toutes les fonctions préfixées mysql_***, qui deviendront donc mysqli_***


Dans quel fichier ?  
Je dois ouvrir tous les fichiers .php que je croise sur mon serveur et chercher tous les mysql afin de les transformer en mysqli ?  
 
Est-ce qu'il existe un outil pour m'aider à les chercher ?  
 
Au vue du jeune aàde ce site, je suis surpris que ça coince... pourquoi mes mysql ne sont pas directement en mysqli ?  :D  


---------------
https://www.laurentverdier.com
n°2379173
B4X
kebab-case
Posté le 16-03-2021 à 18:38:10  profilanswer
 

Commence par /wp-includes/wp-db.php à la ligne 1688
 
Si ça change la teneur du PHP Fatal error dans ton log t'es sur la bonne piste
 

le tonton a écrit :

Code :
  1. [15-Mar-2021 11:09:08 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/vela9286/public_html/wp-includes/wp-db.php:1688
  2. ...
  3. thrown in /home/vela9286/public_html/wp-includes/wp-db.php on line 1688



 
Oui, il faut appliquer pour tous les fichiers.
Oui, NotePad++.
Pour le "pourquoi", je n'en ai pas la réponse. WordPress étant un vieux CMS, peut-être que ces fonctions obsolètes persistent et sont maintenues pour des raisons de rétrocompatibilité.
 
Avant tout ça, je te suggère d'essayer la solution proposée par Mechkurt. Une recherche sur Google évoque effectivement la constante WP_USE_EXT_MYSQL.
Donc remplace  

Citation :

define('WP_USE_EXT_MYSQL', true);


par  

Citation :

//define('WP_USE_EXT_MYSQL', true);


dans wp-config.php
et baste.


---------------
In vanitas veritas.
n°2379201
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 06:11:19  profilanswer
 

Hello   :hello:  
Je m'y remet...
Dans le fichier PHP de mon "wp-config.php", il n'y a pas de trace de  

Code :
  1. WP_USE_EXT_MYSQL


 
C'est peut être ça le problème ?
 
J'ai essayé de coller le code :  

Code :
  1. //define('WP_USE_EXT_MYSQL', true);


comme recommandé plus haut, mais ça ne change rien..


Message édité par le tonton le 17-03-2021 à 06:48:19

---------------
https://www.laurentverdier.com
n°2379202
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 06:44:24  profilanswer
 

voilà à quoi ressemble mon fichier "wp-config"
Ma modification est en ligne 41
J'ai pas l'impression que ça change quelque chose..
 


Message édité par le tonton le 17-03-2021 à 13:45:52

---------------
https://www.laurentverdier.com
n°2379219
B4X
kebab-case
Posté le 17-03-2021 à 09:06:41  profilanswer
 

Bizarre.
C'est ici que ça merde chez toi : https://github.com/WordPress/WordPr [...] b.php#L614
Dans ce cas, remplace mysql_connect par mysqli_connect, comme proposé initialement : https://github.com/WordPress/WordPr [...] .php#L1688
Et regarde à nouveau ce que ça dit dans les logs.


---------------
In vanitas veritas.
n°2379228
mechkurt
Posté le 17-03-2021 à 10:07:29  profilanswer
 

Je conseillerais plutôt de mettre ligne 41 de ton wp-config.php :

Code :
  1. define('WP_USE_EXT_MYSQL', false);


sans les // au début qui commentes la ligne
 
2 choses l'une soit ça pète ailleurs dans ton code à la définition de la constante et on saura ou ça se trouves, soit tu as toujours la même erreur et on creusera un peu plus le fichier wp-db.php.
 
Par contre je te déconseilles de faire les modifications directement dans ce fichier car ce te coupera des mises à jour de WP...
 
NB: Et tu devrais cacher tes clefs de salage, elle ne devrait pas être publique car elle permettent de falsifier les cookies par exemple.
Tu devrais les changer je penses que ce serait plus prudent...


---------------
D3
n°2379261
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 13:56:00  profilanswer
 

mechkurt a écrit :

Je conseillerais plutôt de mettre ligne 41 de ton wp-config.php :

Code :
  1. define('WP_USE_EXT_MYSQL', false);


sans les // au début qui commentes la ligne
 
2 choses l'une soit ça pète ailleurs dans ton code à la définition de la constante et on saura ou ça se trouves, soit tu as toujours la même erreur et on creusera un peu plus le fichier wp-db.php.
 
Par contre je te déconseilles de faire les modifications directement dans ce fichier car ce te coupera des mises à jour de WP...

Je peut le faire dans un autre fichier ? lequel ? (Un existant ou je dois en créer un ?)
 

mechkurt a écrit :

NB: Et tu devrais cacher tes clefs de salage, elle ne devrait pas être publique car elle permettent de falsifier les cookies par exemple.
Tu devrais les changer je penses que ce serait plus prudent...


J'ai effacé mon code, j'espère que je n'ai pas fait de boulette.  
Je posterais des morceaux à l'avenir ;-)
 
 
Si non, j'ai trouvé "WP_USE_EXT_MYSQL" dans le wp-db.php
Peut être que c'est là que ça foire..
 

Code :
  1. public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
  2.  if ( WP_DEBUG && WP_DEBUG_DISPLAY ) {
  3.   $this->show_errors();
  4.  }
  5.  // Use ext/mysqli if it exists unless WP_USE_EXT_MYSQL is defined as true.
  6.  if ( function_exists( 'mysqli_connect' ) ) {
  7.   $this->use_mysqli = true;
  8.   if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
  9.    $this->use_mysqli = ! WP_USE_EXT_MYSQL;
  10.   }
  11.  }


 

Code :
  1. if ( $this->dbh->connect_errno ) {
  2.    $this->dbh = null;
  3.    /*
  4.     * It's possible ext/mysqli is misconfigured. Fall back to ext/mysql if:
  5.     *  - We haven't previously connected, and
  6.     *  - WP_USE_EXT_MYSQL isn't set to false, and
  7.     *  - ext/mysql is loaded.
  8.     */
  9.    $attempt_fallback = true;
  10.    if ( $this->has_connected ) {
  11.     $attempt_fallback = false;
  12.    } elseif ( defined( 'WP_USE_EXT_MYSQL' ) && ! WP_USE_EXT_MYSQL ) {
  13.     $attempt_fallback = false;
  14.    } elseif ( ! function_exists( 'mysql_connect' ) ) {
  15.     $attempt_fallback = false;
  16.    }
  17.    if ( $attempt_fallback ) {
  18.     $this->use_mysqli = false;
  19.     return $this->db_connect( $allow_bail );
  20.    }
  21.   }
  22.  } else {


 
Est-ce que ça vous dit quelque chose ? :)

Message cité 1 fois
Message édité par le tonton le 17-03-2021 à 14:02:47

---------------
https://www.laurentverdier.com
n°2379267
mechkurt
Posté le 17-03-2021 à 14:26:08  profilanswer
 

le tonton a écrit :

Je peut le faire dans un autre fichier ? lequel ? (Un existant ou je dois en créer un ?)


Ben non ligne 41 tu enlèves le commentaire (les // ) et tu passes la valeur de true a false, dans le but de forcer l'utilisation de mysqli (vu que mysql n'est pas dispo sur ton hébergement en PHP 8).

le tonton a écrit :


J'ai effacé mon code, j'espère que je n'ai pas fait de boulette.  
Je posterais des morceaux à l'avenir ;-)
 
 
Si non, j'ai trouvé "WP_USE_EXT_MYSQL" dans le wp-db.php
Peut être que c'est là que ça foire..
 

Code :
  1. public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
  2.  if ( WP_DEBUG && WP_DEBUG_DISPLAY ) {
  3.   $this->show_errors();
  4.  }
  5.  // Use ext/mysqli if it exists unless WP_USE_EXT_MYSQL is defined as true.
  6.  if ( function_exists( 'mysqli_connect' ) ) {
  7.   $this->use_mysqli = true;
  8.   if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
  9.    $this->use_mysqli = ! WP_USE_EXT_MYSQL;
  10.   }
  11.  }


 

Code :
  1. if ( $this->dbh->connect_errno ) {
  2.    $this->dbh = null;
  3.    /*
  4.     * It's possible ext/mysqli is misconfigured. Fall back to ext/mysql if:
  5.     *  - We haven't previously connected, and
  6.     *  - WP_USE_EXT_MYSQL isn't set to false, and
  7.     *  - ext/mysql is loaded.
  8.     */
  9.    $attempt_fallback = true;
  10.    if ( $this->has_connected ) {
  11.     $attempt_fallback = false;
  12.    } elseif ( defined( 'WP_USE_EXT_MYSQL' ) && ! WP_USE_EXT_MYSQL ) {
  13.     $attempt_fallback = false;
  14.    } elseif ( ! function_exists( 'mysql_connect' ) ) {
  15.     $attempt_fallback = false;
  16.    }
  17.    if ( $attempt_fallback ) {
  18.     $this->use_mysqli = false;
  19.     return $this->db_connect( $allow_bail );
  20.    }
  21.   }
  22.  } else {


 
Est-ce que ça vous dit quelque chose ? :)


Ben oui j'ai vu cette portion de code, c'est bien pour ça que je te dit de forcer cette constante WP_USE_EXT_MYSQL a false ! ^^


---------------
D3
n°2379274
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 14:39:54  profilanswer
 

Ok, donc j'ai fait la modification dans le fichier "wp-config"
 
Et voici l'erreur dans mon fichier log :  
 


Message édité par le tonton le 18-03-2021 à 09:55:25

---------------
https://www.laurentverdier.com
n°2379279
mechkurt
Posté le 17-03-2021 à 14:51:30  profilanswer
 

Code :
  1. [17-Mar-2021 13:36:28 UTC] PHP Warning:  Constant WP_DEBUG already defined in /home/vela9286/public_html/wp-config.php on line 85


je sais pas comment tu t'y est pris mais tu as touché au define WP_DEBUG au lieu d'ajouter celui que je t'ai demandé...
 
Vire ton WP_DEBUG en trop et ajoute define('WP_USE_EXT_MYSQL', false); ou tu veux !
 
Y'a de grande chance que ça bug de la même manière mais ce coups ci pour WP_USE_EXT_MYSQL et du coups on saura ou intervenir...


---------------
D3
n°2379283
xtieu
Posté le 17-03-2021 à 14:55:20  profilanswer
 

l'erreur est assez claire,

Code :
  1. PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/vela9286/public_html/wp-includes/wp-db.php:1688


 
Il est à jour ton wp ?
 
Les fonctions mysql_ ne'xistent plus depuis PHP7

Message cité 1 fois
Message édité par xtieu le 17-03-2021 à 15:00:23

---------------
"Jean-Claude m'a Tuer" - © OS10
n°2379284
mechkurt
Posté le 17-03-2021 à 14:57:46  profilanswer
 

Mais arrêté avec ça, il est déjà assez embrouillé comme ça, cet appelle est dans un fichier cœur de WP pour garantir la rétro compatibilité de l'hébergement.
Ce n'est pas bizarre que ça existe, c'est bizarre de passer dans cette boucle, et c'est probablement à cause de cette %£$µ§! de constante!
Et on vas finir par découvrir ou est ce qu'elle est initialisé à true (plugin ou thème)...

Message cité 1 fois
Message édité par mechkurt le 17-03-2021 à 14:59:57

---------------
D3
n°2379290
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 15:28:53  profilanswer
 

xtieu a écrit :

l'erreur est assez claire,

Code :
  1. PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/vela9286/public_html/wp-includes/wp-db.php:1688


 
Il est à jour ton wp ?
 
Les fonctions mysql_ ne'xistent plus depuis PHP7


Oui :-)
 
Pour en avoir le coeur net et être sur que ce n'était pas un problème avec mon wordpress spécifiquement, j’ai pu installer une nouvelle vertion de wordpress sur un autre espace disponible sur mon serveur o2switch.
Je peux faire ce que vous voulez sur cette partie “expérimentale”
 
http://www.pascalverdiercom.vela92 [...] rdier.com/

  • J’ai commencé par faire un premier test, j’ai fraichement installé WordPress (donc directement 5.7)
  • J’ai supprimé les deux extension de bases déjà pré installé.
  • J’ai laissé le template par défaut “Twenty Twenty-One”


La page s’affiche bien sur PHP 7.4
J’active PHP 8 et patatrac, “PHP Fatal error”
 

Code :
  1. [17-Mar-2021 05:57:00 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /home/vela9286/pascalverdier.com/wp-includes/wp-db.php:1688
  2. Stack trace:
  3. #0 /home/vela9286/pascalverdier.com/wp-includes/wp-db.php(632): wpdb->db_connect()
  4. #1 /home/vela9286/pascalverdier.com/wp-includes/load.php(545): wpdb->__construct()
  5. #2 /home/vela9286/pascalverdier.com/wp-settings.php(124): require_wp_db()
  6. #3 /home/vela9286/pascalverdier.com/wp-config.php(90): require_once('/home/vela9286/...')
  7. #4 /home/vela9286/pascalverdier.com/wp-load.php(37): require_once('/home/vela9286/...')
  8. #5 /home/vela9286/pascalverdier.com/wp-blog-header.php(13): require_once('/home/vela9286/...')
  9. #6 /home/vela9286/pascalverdier.com/index.php(17): require('/home/vela9286/...')
  10. #7 {main}
  11.   thrown in /home/vela9286/pascalverdier.com/wp-includes/wp-db.php on line 1688


 
Donc ça comment à me sembler étrange que sur une installation toute fraiche de wordpress (il parait que je suis quasi le seul) il y ai un souci avec PHP8
 
Est-ce que l'hébergeur peut avoir un role là dedans ?
 

mechkurt a écrit :

Mais arrêté avec ça, il est déjà assez embrouillé comme ça, cet appelle est dans un fichier cœur de WP pour garantir la rétro compatibilité de l'hébergement.
Ce n'est pas bizarre que ça existe, c'est bizarre de passer dans cette boucle, et c'est probablement à cause de cette %£$µ§! de constante!
Et on vas finir par découvrir ou est ce qu'elle est initialisé à true (plugin ou thème)...


Oui oui, je suis complètement dépassé  :sweat:  
Merci pour votre patience.  :jap:  


Message édité par le tonton le 17-03-2021 à 15:31:20

---------------
https://www.laurentverdier.com
n°2379293
B4X
kebab-case
Posté le 17-03-2021 à 15:46:54  profilanswer
 

Crée un fichier test.php n'importe où avec le code ci-après :  

Citation :


<?php var_dump(function_exists('mysqli_connect')); ?>


Exécute-le et poste le résultat ici.


---------------
In vanitas veritas.
n°2379294
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 16:20:51  profilanswer
 

Alors, voici à quoi ressemble mon fichier wp-config :


Message édité par le tonton le 18-03-2021 à 08:52:01

---------------
https://www.laurentverdier.com
n°2379295
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 16:23:38  profilanswer
 

B4X a écrit :

Crée un fichier test.php n'importe où avec le code ci-après :  

Citation :


<?php var_dump(function_exists('mysqli_connect')); ?>


Exécute-le et poste le résultat ici.


J'ai créer le fichier, je ne sais pas comment l'"exécuter" ?  :whistle:


---------------
https://www.laurentverdier.com
n°2379296
B4X
kebab-case
Posté le 17-03-2021 à 16:27:16  profilanswer
 

Ouvre la page dans ton navigateur :  
ton-site point com /chemin/vers/test.php


---------------
In vanitas veritas.
n°2379304
mechkurt
Posté le 17-03-2021 à 17:08:36  profilanswer
 

Je cherches pourquoi $this->use_mysqli est à false dans ton cas :
 
Il est intialisé dans la classe à false :

Code :
  1. private $use_mysqli = false;


https://github.com/WordPress/WordPr [...] b.php#L582
 
Puis on le passe à "true" si il est activé :

Code :
  1. if ( function_exists( 'mysqli_connect' ) ) {
  2.   $this->use_mysqli = true;
  3.   if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
  4.    $this->use_mysqli = ! WP_USE_EXT_MYSQL;
  5.   }
  6.  }


https://github.com/WordPress/WordPr [...] b.php#L614
 
Et on le repasses à false en cas de fallback :

Code :
  1. if ( $this->dbh->connect_errno ) {
  2.    $this->dbh = null;
  3.    /*
  4.     * It's possible ext/mysqli is misconfigured. Fall back to ext/mysql if:
  5.     *  - We haven't previously connected, and
  6.     *  - WP_USE_EXT_MYSQL isn't set to false, and
  7.     *  - ext/mysql is loaded.
  8.     */
  9.    $attempt_fallback = true;
  10.    if ( $this->has_connected ) {
  11.     $attempt_fallback = false;
  12.    } elseif ( defined( 'WP_USE_EXT_MYSQL' ) && ! WP_USE_EXT_MYSQL ) {
  13.     $attempt_fallback = false;
  14.    } elseif ( ! function_exists( 'mysql_connect' ) ) {
  15.     $attempt_fallback = false;
  16.    }
  17.    if ( $attempt_fallback ) {
  18.     $this->use_mysqli = false;
  19.     return $this->db_connect( $allow_bail );
  20.    }
  21.   }


https://github.com/WordPress/WordPr [...] .php#L1659
 
Je penses quand même que y'a un soucis avec l’hébergement, un WP tout neuf devrait fonctionner (en tout cas il est sensé être compatible php8 depuis la version 5.6).
 
Tu pourrais nous faire un test avec un fichier php ayant ça comme contenu :

Code :
  1. <?php
  2. phpinfo();
  3. ?>


---------------
D3
n°2379327
le tonton
www.laurentverdier.com
Posté le 17-03-2021 à 19:50:06  profilanswer
 

B4X a écrit :

Crée un fichier test.php n'importe où avec le code ci-après :  

Citation :


<?php var_dump(function_exists('mysqli_connect')); ?>


Exécute-le et poste le résultat ici.

C'est fait, mais ça n'affiche rien.  
J'ai juste collé la ligne de code :  

Code :
  1. <?php var_dump(function_exists('mysqli_connect')); ?>


Et j'ai nommé le fichier "test.php"
--> https://www.laurentverdier.com/test.php
 

mechkurt a écrit :


Je penses quand même que y'a un soucis avec l’hébergement, un WP tout neuf devrait fonctionner (en tout cas il est sensé être compatible php8 depuis la version 5.6).

Je vais essayer de re-contacter mon hébergeur en le brossant dans le sens du poil afin de voir si il est plus locace.
 

mechkurt a écrit :


Tu pourrais nous faire un test avec un fichier php ayant ça comme contenu :

Code :
  1. <?php
  2. phpinfo();
  3. ?>



Oui, c'est fait et là ça fonctionne ;-)
--> https://www.laurentverdier.com/testphpinfo.php
 
 
Encore une fois un grand merci à tous les intervenants pour le temps que vous passez à m'aider. Seul j'était à des kilomètres de faire tout cela :/


Message édité par le tonton le 17-03-2021 à 20:01:49

---------------
https://www.laurentverdier.com
n°2379331
le tonton
www.laurentverdier.com
Posté le 18-03-2021 à 08:08:05  profilanswer
 

Hello les amis !  :pt1cable:  
 
J'ai reçu un mail d'un mystérieux sauveur qui m'a proposé de décocher "mysqli" et cocher "nd_mysqli" dans les réglages PHP de mon Cpanel.  :love:  
 
https://www.laurentverdier.com/download/images/nd-mysqli.png
 
Et booooom ! c'est passé direct ! [:kaio]


Message édité par le tonton le 18-03-2021 à 08:09:22

---------------
https://www.laurentverdier.com
n°2379368
mechkurt
Posté le 18-03-2021 à 10:22:16  profilanswer
 

De rien, désolé mais je ne connais pas bien cpanel, je cherchais à  avoir cette info :
https://www.laurentverdier.com/test [...] ule_mysqli
 
Tu peux supprimer ton fichier testphpinfo.php si ton problème est réglé !


---------------
D3
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec PHP 8

 

Sujets relatifs
[PHP] Problème stylesheet CSS indisponible sur une page (MODEL MVC)Probleme d'installation de PHP-8.0.0
[PHP] Problème nouveau avec exif_read_dataProbleme list -> apprentissage PHP
Problème d'alloc mémoire avec PHP et lib GD pour générer des imagesProbleme de PHP Formulaire de contact
[résolu]problème comparaison Php/MySqlprobleme detection Adblock en Javascript+PHP tourne pas rond
Problème PHP (pour GLPI) après MAJ firmware QnapProbleme version de Wamp : SQL, PHP, et surtout de moi
Plus de sujets relatifs à : Problème avec PHP 8


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR