Fatal error: Call to a member function url()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fatal error: Call to a member function url()

par zeus » 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 ;)

par fab » 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

par zeus » 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

fatal error

par LE BOULER » 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

par fab » 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

Fatal error: Call to a member function url()

par LE BOULER » 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 ?