Voir la version complète : Call to a member function on a non-object
bonjour,
depuis la mise à jour des serveurs avant l'été, j'ai un script qui ne fonctionne plus sur ovh (un diaporama photo, avec le message indiqué dans l'objet de mon message).
il marchait tres bien avant, et je viens de verifier, il fonctionne chez un hebergeur gratuit
quelqu'un a t'il rencontré le meme type de probleme?
Merci
Shadow aok
09/09/2006, 15h38
Merci d'indiquer le nom du script, l'erreur complète et ton domaine.
Le code ne doit pas respecter les standards actuels de php mais il doit très bien tourner sur des versions de php plus anciennes.
bonjour,
le sript est celui de zen photo (que j'ai un peu modifié pour l'integrer dans mon site, mais rien de fondamental)
l'erreur complete est la suivante:
Fatal error: Call to a member function on a non-object in /home.1/f/o/y/foyerfam/www/espacephotos/index.php on line 5
merci pour votre aide.
PS: en local j'utilise la derniere version de easyphp 1.8.0.1
Shadow aok
09/09/2006, 17h02
Sans me donner la version du script ou le code de ton index.php, comment veux-tu que je puisse voir quoi que ce soit ? :rolleyes:
l'erreur se fait sur la ligne 5 qui envoit:
$theme = $_zp_gallery->getCurrentTheme();
j'ai trouvé la fonction getCurrentTheme qui definit :
function getCurrentTheme() {
if (empty($this->theme)) {
$themefile = SERVERPATH . "/cache/theme.txt";
$theme = "";
if (is_readable($themefile) && $fp = @fopen($themefile, "r")) {
$theme = fgets($fp);
$themes = $this->getThemes();
if (!isset($themes[$theme])) {
$theme = "";
}
fclose($fp);
}
if (empty($theme)) {
$theme = "default";
}
$this->theme = $theme;
}
return $this->theme;
}
voilà j'espere avoir bien identifié la source du bug pour éviter de coller trop de code.
Merci d'avance
Shadow aok
09/09/2006, 17h12
C'est simple, cette fonction est appellée comme faisant partie d'une classe et on lui passe un objet en paramètre.
Donc là il faut voir le fichier contenant la fonction getCurrentTheme, pour savoir si il s'agit bien d'une classe, mais aussi tout index.php pour voir si la classe est bien instanciée.
Sinon essaye en passant sur la dernière version du script.
déjà, merci pour vos réponses.
le fichier contenant la fonction getCurrentTheme se nomme effectivement classes.php, et est appelé en require_once dans la page d'index:
index.php :
require_once('espacephotos/zen/template-functions.php');
template-functions.php:
require_once("classes.php");
sinon, j'utilise déjà la derniere version du script.
Ca parait juste?
ps: pour info, j'utilise en local php 4.3.10, et l'erreur n'a pas lieu
Shadow aok
09/09/2006, 18h52
Quel est le domaine concerné que je puisse y jeter un oeil ?
Quel est le domaine concerné que je puisse y jeter un oeil ?
il s'agit du domaine www.foyerfamily.com
(et le script sur www.foyerfamily.com/index.php?pid=111).
Merci pour votre aide.
Shadow aok
10/09/2006, 11h24
A première vue le code à l'air correct.
Essaye voir dans index.php de remplacer la première ligne :
require_once("zen/template-functions.php");
par
include_once("zen/template-functions.php");
Sinon, vois sur le forum du script, je n'ai pas le temps de l'installer moi-même et de le tester.
ok je vais essayer ca, mais je viens de m'appercevoir que sans rien changer à mon site, j'ai maintenant un message "could not connect à the database", c'est vraiment bizarre.... (www.foyerfamily.com/index2.php) vu que j'ai les bon parametres de connexion et que de toute facon je n'avais pas changé ces parametres.
Bref, en tout cas merci beaucoup pour tes réponses et ton aide!
vBulletin® v.3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org