Fatal error: Call to a member function url()

Petit nouveau ! | 2 Messages

29 juil. 2009, 19:22

bonjour,

Je bosse actuellement sur une création de site et j'ai le message suivant qui s'affiche :
Fatal error: Call to a member function url() on a non-object in /web/maelina/www/templates/whiteemerald/html/mod_login/default.php on line 7
pouvez vous me dire comment resoudre le probleme avec une ligne code .

Voici les premieres lignes de code que je trouve pour default.php :
<?php // no direct access
defined('_JEXEC') or die('Restricted access');

// Load the virtuemart main parse code
require_once( JPATH_ROOT . '/administrator/components/com_virtuemart/virtuemart.cfg.php' );
global $mm_action_url, $sess, $VM_LANG;
$registration_url = $sess->url( SECUREURL.'index.php?option=com_virtuemart&page=shop.registration' );

if($type == 'logout') : ?>
<div id="ngis-logout-form">
Y a t il une ligne de code a rajouter pour afficher le site ?

ViPHP
fab
ViPHP | 2657 Messages

29 juil. 2009, 19:32

Si tu veux avoir des réponses dans le futur sur phpfrance je te conseille vivement d'utiliser les balises [ PHP ] Pour mettre ton code :) Il y a de la coloration et ça aide beaucoup !!!

Là si tu lis bien le message d'erreur il t'explique que ta variable $mess n'est pas un objet. Donc tu n'as pas du l'instancier

Je te conseil aussi de faire un tour sur la documentation officielle pour bien comprendre l'usage de global : http://fr.php.net/global
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Petit nouveau ! | 2 Messages

29 juil. 2009, 20:41

Salut merci d'avoir répondu.


Euh pour etre tout a fait sincere avec toi je suis une vraie burne en php. J'essaye de comprendre mais c'est un peu dur dur !

Pourrais tu me dire ce qu'il faut rajouter pour que le templates s'affiche ?

merci par avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juil. 2009, 20:45

Modération :
LE BOULER, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
fab
ViPHP | 2657 Messages

29 juil. 2009, 21:26

Je suis désolé mais visiblement tu utilises un code tout fait provenant d'un endroit inconnu pour moi :)
Je te conseille donc de t'orienter vers le support de l'éditeur du code en question
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juil. 2009, 21:37

Vu le code, je pense qu'il s'agit d'un programme PHP 4.
Je pense que tu utilises un serveur un PHP 5.

Et comme les configurations changent, je pense que ce code, qui marchait en PHP 4, ne marche plus en PHP5.
De toutes façon, l'utilisation de variables globales est une très mauvaise idées :?

Avec le code que tu nous as donné, il n'est pas possible de trouver précisement la solution, mais voila ce que l'on peut en tirer.

Tout d'abord, le message d'erreur :
Fatal error: Call to a member function url() on a non-object in /web/maelina/www/templates/whiteemerald/html/mod_login/default.php on line 7
En français, il te dit que tu essayes d'appeler une méthode "url()" sur une variable qui n'est pas un objet, à la ligne 7 de ton code.

Et en prennant la ligne 7 de ton code, on trouve ça :
$registration_url = $sess->url( SECUREURL.'index.php?
Donc, on peut en déduire, avec le code et le message d'erreur, que $sess n'est pas un objet.

Maintenant, regardons comment est créé $sess.
A la ligne du dessus, on trouve ce code :
global $mm_action_url, $sess, $VM_LANG;
cette ligne signifie que l'on demande de récupérer les variables $mm_action_url, $sess et $VM_LANG dans un autre endroit.

Et encore la ligne au dessus, on trouve le code suivant :
require_once( JPATH_ROOT . '/administrator/components/com_virtuemart/virtuemart.cfg.php' );
Je pense donc que c'est dans ce fichier là que devrait se trouver la création de la variable $sess, mais qui ne fonctionne pas.
Mais là, je ne peux t'aider plus ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer