erreur fatale : Using $this when not in object context
5 réponses
JPW
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié
ce qui marchait sur l'ancien me donne l'erreur
Fatal error: Using $this when not in object context in
/home/volpassi/www/cartespostales/include/functions.inc.php on line 44
voici la portion de code :
function is_invalidate_email($email) {
//if(eregi("^[a-z0-9\._-]+@{1}([a-z0-9]{1,}[a-z0-9-]*[a-z0-9]{1,}\.{1})+([a-z]+\.){0,1}([a-z]+){1}$",trim($email)) ) if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",trim($email)) ) { if ($this->check_banned_list) { if($this->is_banned_email($email)) { return true; } } return false; } return true;}je suis au minimum très mauvais en phpje ne sais pas ou chercherqui peut me mettre sur la voie ???mercijpw
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Florian Sinatra
*JPW* @ 19/10/2006 18:35 :
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié ce qui marchait sur l'ancien me donne l'erreur
Je doute très fort que tu aies le même code sur les deux serveurs.
Fatal error: Using $this when not in object context in
je suis au minimum très mauvais en php
Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à l'objet courant, et n'a rien à faire hors d'un objet.
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié
ce qui marchait sur l'ancien me donne l'erreur
Je doute très fort que tu aies le même code sur les deux serveurs.
Fatal error: Using $this when not in object context in
je suis au minimum très mauvais en php
Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this
hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour
le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à
l'objet courant, et n'a rien à faire hors d'un objet.
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié ce qui marchait sur l'ancien me donne l'erreur
Je doute très fort que tu aies le même code sur les deux serveurs.
Fatal error: Using $this when not in object context in
je suis au minimum très mauvais en php
Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à l'objet courant, et n'a rien à faire hors d'un objet.
Je doute très fort que tu aies le même code sur les deux serveurs.
ben si : j'ai copié les sites d'un serveur à l'autre par ftp
la différence c'est que sur le nouveau j'ai une version plus récente de php php 5 au lieu de php4 et que la varible d'environnement globale est à off et à on sur l'ancien serveur
je suis donc affirmatif le code est le même le problème vient d'ailleurs
jpw
Fatal error: Using $this when not in object context in je suis au minimum très mauvais en php Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this
hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à l'objet courant, et n'a rien à faire hors d'un objet.
"Florian Sinatra" <florian.sinatra@bluewin.ch> a écrit
Je doute très fort que tu aies le même code sur les deux serveurs.
ben si : j'ai copié les sites d'un serveur à l'autre par ftp
la différence c'est que sur le nouveau j'ai une version plus récente de php
php 5 au lieu de php4 et que la varible d'environnement globale est à off
et à on sur l'ancien serveur
je suis donc affirmatif le code est le même le problème vient d'ailleurs
jpw
Fatal error: Using $this when not in object context in
je suis au minimum très mauvais en php
Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this
hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour
le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à
l'objet courant, et n'a rien à faire hors d'un objet.
Je doute très fort que tu aies le même code sur les deux serveurs.
ben si : j'ai copié les sites d'un serveur à l'autre par ftp
la différence c'est que sur le nouveau j'ai une version plus récente de php php 5 au lieu de php4 et que la varible d'environnement globale est à off et à on sur l'ancien serveur
je suis donc affirmatif le code est le même le problème vient d'ailleurs
jpw
Fatal error: Using $this when not in object context in je suis au minimum très mauvais en php Et en anglais ? Je te traduis : "Erreur fatale: Utilisation de $this
hors d'un contexte d'objet".
je ne sais pas ou chercher qui peut me mettre sur la voie ???
Tu as vraisemblablement dû copier un bout de code *dans* un objet pour le coller *hors* d'un objet. Or, $this est la "variable" qui se réfère à l'objet courant, et n'a rien à faire hors d'un objet.
"Florian Sinatra" a écrit dans le message de news:
*JPW* @ 20/10/2006 16:05 :
ben si : j'ai copié les sites d'un serveur à l'autre par ftp
je suis donc affirmatif le code est le même le problème vient d'ailleurs
D'accord. Et tu as vérifié à la ligne 44 ?
ben si je savais quoi et comment vérifier je ne serais pas là
if ($this->check_banned_list)
y'a environ une demi douzaine d'include dans le script
jpw
m-e-
"JPW" a écrit dans le message de news:
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié ce qui marchait sur l'ancien me donne l'erreur
Fatal error: Using $this when not in object context in /home/volpassi/www/cartespostales/include/functions.inc.php on line 44
La méthode en question doit être appelée quelque part de manière statique :
<?php LaClasse::is_invalidate_email($email); ?>
Or, l'utilisation de $this dans une méthode invoquée statiquement était permis sous PHP 4 ($this étant alors considéré comme n'importe quelle autre variable), mais plus sous PHP 5.
Ainsi, pour régler le problème, tout en conservant le même comportement que sous PHP 4, la connaissance de PHP et des scripts en question seront nécessaires. Aussi, d'autres problèmes du même type peuvent apparaître ailleurs rendant éventuellement la tâche ardue.
Enfin, voici quelques esquisses de solutions possibles, même si je doûte qu'elles puissent vous être utiles :
A- modifier le corps de la méthode, afin que dans le cas d'une invocation statique $this ne soit pas utilisé, comme dans l'exemple suivant :
<?php class LaClass { // ... function is_invalidate_email($email) { if (! isset($this)) { return LaClass::static_is_invalidate_email($email); } // corps actuel de la méthode ... }
// le mot clé "static" peut ne pas être employé pour maintenir // la compatibilité avec PHP 4 static function static_is_invalidate_email($email) { // méthode "is_invalidate_email" épurée de ses "$this" } //... } ?>
// deviendrai : $o = new LaClasse(); $o->is_invalidate_email($email); ?>
C- Ou encore une combinaison des deux précédentes solutions :
<?php class LaClass { // le mot clé "static" peut ne pas être employé pour maintenir // la compatibilité avec PHP 4 static function static_is_invalidate_email($email) { // méthode "is_invalidate_email" épurée de ses "$this" } //... }
// deviendrai : $o = new LaClasse(); $o->static_is_invalidate_email($email);
?>
"JPW" <jpw@libertysurf.invalid> a écrit dans le message de news:
4pphpcFk3tasU1@individual.net...
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié
ce qui marchait sur l'ancien me donne l'erreur
Fatal error: Using $this when not in object context in
/home/volpassi/www/cartespostales/include/functions.inc.php on
line 44
La méthode en question doit être appelée quelque part de manière
statique :
<?php
LaClasse::is_invalidate_email($email);
?>
Or, l'utilisation de $this dans une méthode invoquée
statiquement était permis sous PHP 4 ($this étant alors
considéré comme n'importe quelle autre variable), mais plus sous
PHP 5.
Ainsi, pour régler le problème, tout en conservant le même
comportement que sous PHP 4, la connaissance de PHP et des
scripts en question seront nécessaires. Aussi, d'autres
problèmes du même type peuvent apparaître ailleurs rendant
éventuellement la tâche ardue.
Enfin, voici quelques esquisses de solutions possibles, même si
je doûte qu'elles puissent vous être utiles :
A- modifier le corps de la méthode, afin que dans le cas d'une
invocation statique $this ne soit pas utilisé, comme dans
l'exemple suivant :
<?php
class LaClass {
// ...
function is_invalidate_email($email) {
if (! isset($this)) {
return LaClass::static_is_invalidate_email($email);
}
// corps actuel de la méthode ...
}
// le mot clé "static" peut ne pas être employé pour
maintenir
// la compatibilité avec PHP 4
static function static_is_invalidate_email($email) {
// méthode "is_invalidate_email" épurée de ses "$this"
}
//...
}
?>
// deviendrai :
$o = new LaClasse();
$o->is_invalidate_email($email);
?>
C- Ou encore une combinaison des deux précédentes solutions :
<?php
class LaClass {
// le mot clé "static" peut ne pas être employé pour
maintenir
// la compatibilité avec PHP 4
static function static_is_invalidate_email($email) {
// méthode "is_invalidate_email" épurée de ses "$this"
}
//...
}
bonjour j'utilise un script qui n'est plus maintenu
et je viens de changer de serveur dédié ce qui marchait sur l'ancien me donne l'erreur
Fatal error: Using $this when not in object context in /home/volpassi/www/cartespostales/include/functions.inc.php on line 44
La méthode en question doit être appelée quelque part de manière statique :
<?php LaClasse::is_invalidate_email($email); ?>
Or, l'utilisation de $this dans une méthode invoquée statiquement était permis sous PHP 4 ($this étant alors considéré comme n'importe quelle autre variable), mais plus sous PHP 5.
Ainsi, pour régler le problème, tout en conservant le même comportement que sous PHP 4, la connaissance de PHP et des scripts en question seront nécessaires. Aussi, d'autres problèmes du même type peuvent apparaître ailleurs rendant éventuellement la tâche ardue.
Enfin, voici quelques esquisses de solutions possibles, même si je doûte qu'elles puissent vous être utiles :
A- modifier le corps de la méthode, afin que dans le cas d'une invocation statique $this ne soit pas utilisé, comme dans l'exemple suivant :
<?php class LaClass { // ... function is_invalidate_email($email) { if (! isset($this)) { return LaClass::static_is_invalidate_email($email); } // corps actuel de la méthode ... }
// le mot clé "static" peut ne pas être employé pour maintenir // la compatibilité avec PHP 4 static function static_is_invalidate_email($email) { // méthode "is_invalidate_email" épurée de ses "$this" } //... } ?>
// deviendrai : $o = new LaClasse(); $o->is_invalidate_email($email); ?>
C- Ou encore une combinaison des deux précédentes solutions :
<?php class LaClass { // le mot clé "static" peut ne pas être employé pour maintenir // la compatibilité avec PHP 4 static function static_is_invalidate_email($email) { // méthode "is_invalidate_email" épurée de ses "$this" } //... }