Ausgabe von ID & Nickname auf anderer Seite

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB2 oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Ausgabe von ID & Nickname auf anderer Seite

Beitrag von Domitz »

Hallo, ich habe folgenden Code, der es mir ermöglicht Andere Texte einzugeben, die dann im Forum wiedergegeben werden.

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Profil :: Blog';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);



/***** Inhaltsbereich ******/


//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Bis jetzt habe ich es immer so gemacht, dass ich die id & den Nicknamen via Variablen datei.php?id=4&nickname=Domitz
in die Datei kommen.

Doch leider könnte man ja dann die Daten beliebig ändern, ich möchte jedoch die ID & den Usernamen der Person die sich die Seite ansieht durch die Datenbank auslesen und somit versteckt ausgeben.
Somit kann keiner seine ID oder seinen Usernamen ändern.
Kann mir wer sagen wie ich das hinbekomme?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Das $userdata-Array enthält alle Daten des aktuellen Benutzers. $userdata['user_id'] enthält die User-ID, $userdata['username'] den Namen etc.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Re: Ausgabe von ID & Nickname auf anderer Seite

Beitrag von Domitz »

Ok, ich habe es jetzt so gemacht:

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, $user_id, $username, PAGE_INDEX);
init_userprefs($userdata);

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Profil :: Blog';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);



/***** Inhaltsbereich ******/


//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Die Userid lässt sich nun problemlos auslesen, der nickname aber leider nicht...
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Äh, das ist definitiv der falsche Ansatz... :wink:

Teste mal deine alte Vorlage mit einem

Code: Alles auswählen

echo 'Benutzername: ' . $userdata['username'] . '<br />';
echo 'User-ID: ' . $userdata['user_id'];
im Inhaltsbereich, dadurch sollte dir die Verwendung des Arrays klar werden. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Ah, vielen Dank :)
Klappt super.
LG Dominik
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Wie kann ich die User Id und den Usernamen hierdrin auslesen lassen?

Code: Alles auswählen

  $datei = "gb.log";
  $eintrag = $user."|".date('d.m.Y')."|".$inhalt;
  $fp = @fopen($datei,'a');
  @rewind($fp);
  @fputs($fp, $eintrag."\n");
  @fclose($fp); 
Habe das so geregelt:

Code: Alles auswählen

  $datei = "gb.log";
  $eintrag = $userdata['username']."|".$userdata['user_id']."|".date('d.m.Y')."|".$inhalt;
  $fp = @fopen($datei,'a');
  @rewind($fp);
  @fputs($fp, $eintrag."\n");
  @fclose($fp);
klappt aber leider nicht.
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Jan500 »

was klappt nicht? was passiert (nicht)?

du schreibst auslesen.. woraus? fopen mit a schreibt nur nicht lesen
du willst $eintrag in die gb.log eintragen oder?

wo hast du den code unten postioniert?

bei
/***** Inhaltsbereich ******/ ?

entfern mal die @ dann zeigt er dir fehler an wenn was nicht klappt (kannst du später wieder hinzufügen)
hat die datei genug schreibrechte?

Jan
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Die ganze Datei sieht so aus:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, $user_id, $username, PAGE_INDEX);
init_userprefs($userdata); 
$user = $_POST["Name"];
$user = htmlentities($user);
$ip = $_SERVER['REMOTE_ADDR'];
$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", "<br>", $inhalt);

$email = $_POST["EMail"];
$email = htmlentities($email);

if ($inhalt == "")
   {
   echo "<b>Du musst auch etwas schreiben :)!</b>";
   }
else
   {
  $datei = "gb.log";
  $eintrag = $userdata['username']."|".$userdata['user_id']."|".date('d.m.Y')."|".$inhalt;
  $fp = @fopen($datei,'a');
  @rewind($fp);
  @fputs($fp, $eintrag."\n");
  @fclose($fp); 

   echo "Eingetragen";
   }
?>
Incognito
Mitglied
Beiträge: 88
Registriert: 10.03.2007 15:33

Beitrag von Incognito »

Ich habe ein ähnliches Problem:
Es ist folgender Code, mit dem ich den Usernamen ermitteln und in die DB schrieben will:

Code: Alles auswählen

<?php
// Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true);
$phpbb_root_path = '../../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);


// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup();          // Sprachvariablen laden
?>
Man kann damit zwar herrlich überprüfen, ob ein User Moderator,.. ist, aber wenn ich es in die DB schreibe:

Code: Alles auswählen

$sql="INSERT INTO cms_content (id, title, cat, type, content, username) VALUES ('', '$content_title', '$kategorie', '$content_type', '$content_inhalt', '$userdata[username]')";
Steht in der Tabelle: Array[username]

Woran liegt das?
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Incognito hat geschrieben:

Code: Alles auswählen

$sql="INSERT INTO cms_content (id, title, cat, type, content, username) VALUES ('', '$content_title', '$kategorie', '$content_type', '$content_inhalt', '$userdata[username]')";
Steht in der Tabelle: Array[username]

Woran liegt das?
$userdata ist nun mal nur ein Array der Wert liegt in $userdata['username']
Und das kann man innerhalb von "Strings" nicht aufrufen, also versuche es mal mit

Code: Alles auswählen

$sql="INSERT INTO cms_content (id, title, cat, type, content, username) VALUES ('', '$content_title', '$kategorie', '$content_type', '$content_inhalt', '" . $userdata['username'] . "')";
Und nochwas:
Deine "Seite" scheint für phpBB3 zu sein, du versuchst aber eine Variable aufzurufen die nur in phpBB2 existiert.

Wie wäre es bei phpBB3 mit:

Code: Alles auswählen

$user->data['username']
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Antworten

Zurück zu „phpBB 2.0: Mod-Bastelstube“