Pas d'accès aux variables globales?
-
05-11-2019 - |
Question
Dans main.js
, J'ai un script, qui envoie une demande ajax à script.php
.
$.ajax({
type: "POST",
url: "wp-content/themes/roots/script.php",
data: registerdata,
success: function(result)
{
alert(result);
}
});
return false;
script.php
Validez certaines données et écrivez les données dans la base de données. Pour cela, j'utilise le $wpdb
objet par wordpress ($wpdb->insert())
. Normalement, WordPress fournit une variable globale, $wpdb
, qui est une instanciation de la classe déjà configurée pour parler à la base de données WordPress. Mais pas dans mon cas. J'obtiens l'erreur suivante
Erreur fatale: appel à une fonction membre insert () sur un non-objet
Si je fais
if(class_exists('wpdb') == false){
echo 'class wpdb doesnt exist';
}
else{
echo 'class wpdb exists';
}
dans script.php
, il m'a dit tout le temps «la classe WPDB n'existe pas». Si je fais de même dans function.php
, la classe WPDB existe. Mais pourquoi? Script.php
et function.php
sont dans le même répertoire. Et $wpdb
est chargé automatique et configuré à Global par WordPress. J'ai donc accès tout le temps, n'a pas d'importance dans quel répertoire je suis, non ?!
realpath(ABSPATH . WPINC . '/wp-db.php')
.... ne fonctionne pas non plus. Les constantes ne sont pas définies dans script.php
, aussi. Où est ma faute? register_globals = on
dans php.ini
. n'a rien changé. : /
Pas de solution correcte