Probleme bei Verwendung von Classes auf phpBB

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 06.07.2017 20:07

canonknipser hat geschrieben: include($phpbb_root_path . 'inc/page_header.' . $phpEx); dahinter. Aber spätestens hier bekommst du von phpBB was auf die Finger, da die "Superglobals" $_POST, $_GET usw. deaktiviert sind. Variablen aus Übergaben erhältst du über das $request-Objekt, egal ob es GET, POST, COOKIE oder SERVER-Daten sind: https://area51.phpbb.com/docs/31x/codin ... ml#general
also aus data['ha'] = (isset ($_POST['ha'])) ? $_POST['ha'] : $_GET['ha']; wird $data['ha] = $request->variable('ha', 0)


Habs jetzt relativ weit umstellen können. Eine Frage noch zu den Superglobals :

wenn ich etwas wie :

Code: Alles auswählen

elseif (isset ($_GET['m']) && $_GET['m'] == 'other')


habe - wie wird das jetzt mit der request-Var ?

habs mit :

Code: Alles auswählen

elseif ($request->variable('m', 0) == 'other')


versucht ... Aber nur eine Seite schafft es angezeigt zu werden. Bei der zweiten bekomme ich im Moment eine weisse Page

Ich weiss nicht wie ich jetzt noch voran komme.

Greetz
Uwe

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 06.07.2017 21:13

Hi,
Wenn du in die Coding guidelines schaust, hat die Klasse request für die Methode variable zwei Parameter:
der erste Parameter ist der Variablenname, der zweite der Defaultwert, falls die Variable nicht existiert und dann durch die Methode angelegt werden soll.
In deinem Fall möchtest du für die Variable m einen String zurückbekommen, also: $request->variable('m', ''). In deinem originalen Script wurde keine Typprüfung vorgenommen, was auch mal ordentlich in die Hose gehen kann.

Und weiße Seiten bedeuten in der Regel eine Abbruch des Scriptes mit einem php-Fehler; da solltest du nähere Informationen im error_log deines Webservers finden.
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 06.07.2017 21:59

okay,
jetzt habe ich nur noch zwei Fragen :

1.) muss ich auf jeder Seite den Connect über das Session Management herstellen ?
2.) Wenn ich die Zeile

Code: Alles auswählen

define('IN_PHPBB', true);
auf einer Unterseite mit drin lasse - dann bekomme ich :

Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'Only variables can be assigned to. Unexpected token "operator" of value "matches" ("name" expected) in "minsppl.html" at line 8.' in /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/TokenStream.php:87 Stack trace: #0 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/ExpressionParser.php(541): Twig_TokenStream->expect(5, NULL, 'Only variables ...') #1 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/TokenParser/For.php(30): Twig_ExpressionParser->parseAssignmentExpression() #2 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/Parser.php(187): Twig_TokenParser_For->parse(Object(Twig_Token)) #3 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/Parser.php(100): Twig_Parser->subparse(NULL, false) #4 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/Environment.php(619): Twig_Parser->parse(Object(Twig_TokenStream)) #5 /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/Envi in /var/www/vhosts/appmeier.eu/httpdocs/vendor/twig/twig/lib/Twig/TokenStream.php on line 87

wenn ich es kommentiere bekomme ich eine leere Seite, aber keinen Eintrag im logfile auf dem Server
obiger Fehler wird jedoch im Log eingetragen
Ich habe phpbb 3.2 wie zu Beginn einmal gesagt einfach installiert und nichts besonderes ein- oder ausgechaltet (TWIG ??)

Auf meiner Einstiegsseite ist sowohl Session Management wie auch das define drin, und es geht. Von dort aus gehe ich auf eine weitere Seite, welche sich derzeit wie beschrieben verhält.

danke für jede Hilfe

Uwe

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 06.07.2017 22:10

wie sieht denn deine minsppl.html aus? Denn da meckert Twig (der Template-Parser) ja die Zeile 8 an:
'Only variables can be assigned to. Unexpected token "operator" of value "matches" ("name" expected) in "minsppl.html" at line 8.'

Pack doch mal die ersten 20 Zeilen deiner minsppl.html hier in code-Tags
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 06.07.2017 22:47

Musste da leider viel "Doppelcode" verwenden weil ich im Moment nicht die zeit finde es anders einzubinden.
Der Code aus den Zeilen 21 - 850 ist eine Datei die früher eine eigene datei war (page_header.php) doch leider bekam ich die Variablen aus dieser datei nicht in die Hauptseite (scores.php) und auch diese minsppl.php. Daher habe ich die datei in beide dateien übernommen.
Ich weiss das es anders geht, aber erst einmal laufen haben, dann weiter sehen - habe ich gedacht

Trotzdem hier die ersten Zeilen (die ja in der scores.php funktionieren)

Code: Alles auswählen

<?php

//include ('./inc/start_up.php');
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$tmi_inc_path = './tmi_inc/';
$tmi_css_path = './tmi_css/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($tmi_inc_path . 'common.' . $phpEx);
include($tmi_inc_path . 'functions.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

$data['page'] = PAGE_MINUTENSPIELPLAN;

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

####################
## ein paar tabellen zum kompletten zugriff auslesen
## bzw. arrays anlegen (teams/saisons/ligen)
####################
$css_to_include = './tmi_css/minutenspielplan.css';
//
// put all the teams into
// $all_teams[team_id] => teamname
//
$sql = "SELECT *
    FROM " . TEAMS_TABLE;
if (!($result = $db->sql_query ($sql)))
{
     trigger_error ('error getting data');
}
if ($row = $db->sql_fetchrow ($result))
{
   do
    {
        $all_teams[$row['team_id']] = $row['team_name'];
    }
    while ($row = $db->sql_fetchrow ($result));
}
else
{
    trigger_error ('error getting data 2');
}

$db->sql_freeresult ($result);


auf die Sprungmarke $data['page'] = PAGE_MINUTENSPIELPLAN

Code: Alles auswählen

switch ($data['page'])
{
.....
case PAGE_MINUTENSPIELPLAN:
      //if (isset ($_GET['saison']) || isset ($_POST['saison']))
        if ($request->variable('saison', 0))
        {
            //$data['saison'] = (isset ($_POST['saison'])) ? $_POST['saison'] : $_GET['saison'];
         $data['saison'] = $request->variable('saison', 0);
        }
        else
        {
            $data['saison'] = $xtradata['saison_aktuell'];
        }
        //if (isset ($_GET['woche']) || isset ($_POST['woche']))
      if ($request->variable('woche', 0))
        {
            //$data['woche'] = (isset ($_POST['woche'])) ? $_POST['woche'] : $_GET['woche'];
         $data['woche'] = $request->variable('woche', 0);
       }
        else
        {
            $data['woche'] = $xtradata['woche_aktuell'];
        }
        break;
        ....
        default:
        // regeln/satzung -> nothing to do
}

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 07.07.2017 10:25

UweA hat geschrieben:minsppl.php.
...
Öhm:
canonknipser hat geschrieben:wie sieht denn deine minsppl.htmlaus?
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

Benutzeravatar
Mahony
Ehemaliger
Beiträge: 10875
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon Mahony » 07.07.2017 12:28

Hallo UweA
Schau auch mal hier ==>> Was tun bei Illegal use of $_SERVER Fehlermeldung


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.

UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 07.07.2017 13:31

sorry canonknipser ... war schon spät und meine Aeuglein lngsam zu ...

Code: Alles auswählen

<!-- INCLUDE ./page_header.html -->
<!-- INCLUDECSS ./tmi_css/gen.css -->
<!-- INCLUDECSS ./tmi_css/minutenspielplan.css -->

<span class="head">Saison {T_SAISONNAME}&nbsp;&nbsp;--&nbsp;&nbsp;Woche {T_WOCHENNAME}</span>
<br /><br />
<table class="tbl-playerstats" cellpadding="4">
<!-- BEGIN matches -->
    <tr>
        <td class="{matches.C_MINUTE}">{matches.T_MINUTE}.- </td>
        <td class="{matches.C_ANSTOSS}">{matches.T_ANSTOSS}</td>
        <td class="{matches.C_PARTIE}">{matches.T_PARTIE}</td>
        <td class="{matches.C_QU}">[{matches.T_QU1} - {matches.T_QU0} - {matches.T_QU2}]</td>
        <td class="{matches.C_ERG}">[{matches.T_ERGA} : {matches.T_ERGB}]</td>
    </tr>
<!-- END matches -->
</table>
<br />
<!-- INCLUDE page_tail.html -->


mehr ist es nicht

Benutzeravatar
Mahony
Ehemaliger
Beiträge: 10875
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon Mahony » 07.07.2017 14:04

Hallo
Zeile 8 sollte das hier sein

Code: Alles auswählen

<!-- BEGIN matches -->


Wenn es sich um einen Kommentar (mehrere Kommentare) handelt, so dürfen diese NICHT mit BEGIN ODER END anfangen, da dies in phpBB3.x nicht als Kommentare gewertet wird.

Die Lösung dafür wäre, den Kommentar so zu gestalten

Code: Alles auswählen

<!-- ANFANG matches -->
und

Code: Alles auswählen

<!-- ENDE matches -->



Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 07.07.2017 14:11

Intern werden die Templates in die Template-Syntax von TWIG umgewandelt und dann verarbeitet.

Deine Fehlermeldung liegt daran, dass deine Schleifenvariable matches in TWIG ein Vergleichsoperator ist.


Benenne matches in spiele oder so um, dann sollte das funktionieren - bis zum nächsten Problemchen :cookie:
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC


Zurück zu „Coding & Technik“