Fatal error: Call to a member function page_header()

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 page_header()

Re: Fatal error: Call to a member function page_header()

par @rthur » 24 janv. 2018, 11:13

Bonjour,

Désolé mon message ne va peut être pas être très constructif mais je pense que tu ne devrais pas du tout utiliser le code que tu as récupéré.
Il a été écrit en 2009, nous sommes en 2018, pour une très vieille version de PHP et pour une très vieille version de phpBB.

Alors, certes, sur un malentendu ça pourrait peut être marcher, mais honnêtement tu risque de passer + de temps à tenter de faire du débugage que de refaire un développement propre.
Ou si tu n'as pas les compétences pour faire un developpement "from scratch", essaye de trouver des modules maintenus à jour qui pourrait correspondre à ton besoin.

Par exemple, si tu veux juste récupérer la liste des derniers sujets de ton forum sur une page externe, il existe un module qui va générer des flux RSS :
https://www.phpbb.com/customise/db/exte ... extension/
Et ensuite c'est très facile de lire et afficher sur une page tiers le contenu d'une page RSS

Re: Fatal error: Call to a member function page_header()

par bobmorane » 23 janv. 2018, 10:01

Merci pour ton aide, Berzemus :-)


J'ai inséré tes 3 lignes comme ça:

Code : Tout sélectionner

$template->assign_vars(array( 'POST_CONTENT' => $text, )); // printf("Classe de l'objet: %s <br>\n", get_class($site)); var_dump($site); exit(); // // Output page $site->page_header($user->lang['POST_PAGE']); $template->set_filenames(array( 'body' => 'mypost_body.html', ));
Voici le résultat obtenu :?
[phpBB Debug] PHP Warning: in file [ROOT]/modif_postimage.php on line 45: get_class() called without object from outside a class
Classe de l'objet:

D:\wamp64\www\phpBB3_32patched_debug\modif_postimage.php:46:null

Re: Fatal error: Call to a member function page_header()

par Berzemus » 23 janv. 2018, 09:47

Salut!
J'imagine que c'est de cette ligne qu'on parle:
$site->page_header($user->lang['POST_PAGE']);
Manifestement, $site ne contient pas la méthode page_header().

J'en connais pas plus sur phpbb, ni ou $site est instancié, mais avec quelques infos de débogage, on pourrait s'en tirer, comme faire dire à PHP ce que contient exactement l'objet $site:

à insérer quelque part juste avant la ligne 45, et voir ce que ça donne:
printf("Classe de l'objet: %s <br>\n", get_class($site));
var_dump($site);
exit();

Fatal error: Call to a member function page_header()

par bobmorane » 23 janv. 2018, 09:11

J'essaye d'adapter à mes besoins un script trouvé ici http://forum.danielchalseche.fr.cr/viewtopic.php?t=53#

Voici le code PHP que j'utilise:

Code : Tout sélectionner

<?php /** * * @author Daniel Chalsèche (Dakin Quelia) http://www.danielchalseche.be/ * * @package Post * @version $Id: post.php 2009-08-12 02:31:25 Dakin Quelia $ * @copyright (c) 2009 Daniel Chalsèche * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * @ignore */ define('IN_PHPBB', true); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; $phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx); // Start session management $user->session_begin(); $auth->acl($user->data); $user->setup(''); //echo $user; $sql = 'SELECT post_text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url FROM ' . POSTS_TABLE; $result = $db->sql_query($sql); $post = $db->sql_fetchrow($result); $db->sql_freeresult($result); $post['bbcode_options'] = (($post['enable_bbcode']) ? OPTION_FLAG_BBCODE : 0) + (($post['enable_smilies']) ? OPTION_FLAG_SMILIES : 0) + (($post['enable_magic_url']) ? OPTION_FLAG_LINKS : 0); $text = generate_text_for_display($post['rules_text'], $post['bbcode_uid'], $post['bbcode_bitfield'], $post['bbcode_options']); $template->assign_vars(array( 'POST_CONTENT' => $text, )); // Output page $site->page_header($user->lang['POST_PAGE']); $template->set_filenames(array( 'body' => 'mypost_body.html', )); $site->page_footer(); ?>
et le contenu mypost_body.html:

Code : Tout sélectionner

<div class="panel"> <div class="inner"><span class="corners-top"><span></span></span> <div id="main"> <h2><strong>{L_TITLE}</strong></h2> <p>{POST_CONTENT}</p> </div> <span class="corners-bottom"><span></span></span></div> </div>
Mais, quand j’exécute le php (en local sous WAMP64), j'obtiens cette erreur:

Image

:roll: :shock: Quelqu'un peut-il m'aider à la résoudre ?
Merci d'avance.