[erledigt]POSTER_NAME als Variable mit session_start export

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.
Antworten
skipper3
Mitglied
Beiträge: 4
Registriert: 14.02.2007 23:34

[erledigt]POSTER_NAME als Variable mit session_start export

Beitrag von skipper3 »

Hallo zusammen!

Dies ist zwar mein erstes posting hier - aber neu bin ich hier nicht.
Seit längerer Zeit lese ich hier im forum und finde es toll, wie viele Tipps man hier bekommt.

Jetzt aber möchte ich um eine Anregung bitten, weil ich nicht mehr weiter komme.

Folgendes Problem habe ich:

Ich habe bei den postings unterhalb von posternamen, avatar, Anzahl der Beiträge, etc. eine kleine Tabelle eingeblendet.
Darin werden Einträge aus einer Tabellenabfrage ngezeigt. Für diese Abfrage brauche ich den posternamen (damit in der Tabelle nur Einträge aufscheinen, die den jeweiligen poster betreffen).

Die Tabelle füge ich folgendermassen in die "page-header.php" ein:



// The following assigns all _common_ variables that may be used at any point
// in a template.
//
$template->assign_vars(array('WHAT_INCLUDE' => implode("",file("http://www.xxxxxx.de/xxxx/tabelleanzeigen.php")),
'SITENAME' => $board_config['sitename'],
'SITE_DESCRIPTION' => $board_config['site_desc'],
'PAGE_TITLE' => $page_title,



In der zugehörigen "viewtopic.php" mit "WHAT_INCLUDE":



<!-- BEGIN postrow --> <tr>
<td class="{postrow.ROW_CLASS}" align="left"
valign="top" width="150"><span class="name"><a
name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b></span>{WHAT_INCLUDE}<br>
<span class="postdetails">{postrow.POSTER_RANK}<br>
{postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}<br>
<br>
{postrow.POSTER_JOINED}<br>
{postrow.POSTER_POSTS}<br>
{postrow.POSTER_FROM}



Die Tabelle "tabellenanzeigen.php" wird problemlos angeziegt.

Meine Frage: wie kriege ich den poster-namen in meine "tabellenanzeigen.php" als Variable so rein, dass ich damit in der tabellenabfrage arbeiten kann.

Ich habe alles schon probiert, was sich hier im Forum dazu findet, mit
session_start, $_SESSION, etc., aber nichts funktioniert.

Vielen Dank für Eure Tipps!

Gruss
domainmaster
Zuletzt geändert von skipper3 am 18.02.2007 23:23, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Warum rufst du das ganze so kompliziert auf? Du könntest doch die Datei auch direkt includieren, dann würdest du dir den Seitenaufruf sparen und könntest die Standardvariablen einfach weiterverwenden. Falls du das nicht willst kannst du den Namen ja per Query-String anhängen, also tabelleanzeigen.php?n=name aufrufen. Es wäre aber deutlich sicherer wenn du das nicht tun würdest, weil dann eine Externe Datei weniger im Spiel ist.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
skipper3
Mitglied
Beiträge: 4
Registriert: 14.02.2007 23:34

Beitrag von skipper3 »

Vielen Dank für die Antwort.
Die beiden Lösungen die Du vorschlägst funktionieren. Dennoch möchte ich den POSTER_NAME als Variable zur Verfügung haben, weil das Ergebnis der Abfrage nicht nur im Feld mit Namen, etc. des Posters eingeblendet werden soll, sondern auch noch an diversen Stellen auf der dazugehörenden Homepage.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Du möchtest also den Namen des Users, der gerade eingeloggt ist ausgeben können über z.B. {THIS_USER_NAME} ? Oder wie meinst du das?

Wenn du das so meinst, dann reicht es in der page_header.php sowas hinzuzufügen:

Code: Alles auswählen

$template->assign_vars(array('THIS_USER_NAME' => $userdata['user_name']));
Dann bekommst du da beim Gastuser eventuell allerdings Anonymous als namen, eventuell solltest du diesen Fall per IF abfangen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
skipper3
Mitglied
Beiträge: 4
Registriert: 14.02.2007 23:34

Beitrag von skipper3 »

Nicht genau so. Ich möchte

<------- hier links

unterhalb der Angaben zum jeweiligenPoster (nickname, Anzahl Beiträge, Avatar, etc.) eine Tabelle einblenden.
Das Einblenden funktioniert einwandfrei (wie oben beschrieben).
In dieser Einblendung sind Daten aus einer externen Tabelle.
Auch die Abfrage aus dieser Tabelle funktioniert.
Zusätzlich brauche ich aber in der Abfrage den Namen des Posters, damit aus der externen Tabelle nur die Datensätze angezeigt werden, die diesen Poster betreffen.
Und hier ist mein Problem. Ich kriege den Namen des Posters (obwohl er genau hier eingeblendet ist) nicht in eine Variable rein, die ich dann bei der Datenbankabfrage einsetzen kann.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Du bekommst den Namen schon, aber leider hast Du die Template Variable im Header deklariert und schon kannst Du daran so ohne weiteres nichts ändern.

Am besten wäre es, wenn Du das dann in der viewtopic.php regelst:

Code: Alles auswählen

template->assign_block_vars('postrow', array(
'POSTER_TABELLE' => implode("",file("http://www.xxxxxx.de/xxxx/tabelleanzeigen.php?n=".poster_id),
Dann fragst Du in der tabellenanzeige.php Datei per GET nach n ab und überprüfst das nochmal mit intval(). Das sollte klappen.

Oder Du schreibst Dir eine kleine Funktion, weil Du das ja überall haben möchtest.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
skipper3
Mitglied
Beiträge: 4
Registriert: 14.02.2007 23:34

Beitrag von skipper3 »

Danke für Eure Hilfe.
Habe nun dank Euren Anregungen eine leidlich funktionierende Version hingekriegt auch wenn ich mit der Konstruktion noch nicht ganz zufrieden bin.
Antworten

Zurück zu „Coding & Technik“