Seite 1 von 2

Ausgabe von ID & Nickname auf anderer Seite

Verfasst: 01.03.2008 11:09
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?

Verfasst: 01.03.2008 12:15
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.

Re: Ausgabe von ID & Nickname auf anderer Seite

Verfasst: 01.03.2008 12:51
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...

Verfasst: 01.03.2008 13:55
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:

Verfasst: 01.03.2008 14:44
von Domitz
Ah, vielen Dank :)
Klappt super.
LG Dominik

Verfasst: 11.05.2008 13:42
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.

Verfasst: 11.05.2008 14:57
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

Verfasst: 11.05.2008 22:08
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";
   }
?>

Verfasst: 12.05.2008 12:05
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?

Verfasst: 12.05.2008 12:14
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']