UserID in <!-- PHP --> übernehmen

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
Benutzeravatar
Pofi
Mitglied
Beiträge: 252
Registriert: 06.10.2007 10:17
Wohnort: Wuppertal
Kontaktdaten:

UserID in <!-- PHP --> übernehmen

Beitrag von Pofi »

Moin :grin:

Ich stehe gerade etwas auf dem Schlauch.

Ich suche nach einer Möglichkeit, die UserID in eine Variable zu packen.

Code: Alles auswählen

<!-- PHP -->
// Prüfen ob eine ID übergeben wurde
    if( isset($_GET['userid']) )
    { 
	$userid = $_GET["userid"];
	// Verbindung zum Datenbankserver
	mysql_connect("lalalalala", "dumdidum", "47110815") or die (mysql_error ());

	// Datenbank auswählen
	mysql_select_db("usr_web267_2") or die(mysql_error());

	mysql_query("CREATE TABLE IF NOT EXISTS user_".$userid." (
	  id INT AUTO_INCREMENT,
	  
	  Erstellt DATETIME,
	  Template CHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Header CHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  
	  Vorname CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Nachname CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Geschlecht CHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Geburtsdatum DATE,
	  Sterbedatum DATE,
	  
	  Geburtsort CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Sterbeort CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  
	  Laengengrad CHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Breitengrad CHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  
	  Text1 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text2 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text3 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text4 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text5 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text6 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  Text7 TEXT(65000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
	  
	  PRIMARY KEY(id)
	)") Or die(mysql_error());
	mysql_close ();
	echo "Datenbank erstellt.";
	} 
	else
	{
	echo "Wichtige Daten konnten nicht empfangen werden. Somit konnte auch keine Datenbank angelegt, bzw eine vorhandene Datenbank nicht ausgewertet werden.";
	}
<!-- ENDPHP -->
Dieser Code wurde in eine Templatedatei gepackt. Der User, welche diese Seite aufruft soll einen Tabelleneintrag in einer externen Datenbank bekommen.
Ich habe mir dank einiger Infos von hier und der englischen Partnerseite schon ein Schnipsel erstellt, welche die ID ohne PHP-Umgebung ins Template schreibt.
Ich muss quasi aus {CURRENT_USERNAME_ID} ein $userid machen...

Ich hoffe man versteht was ich meine :wink:

Kann mir jemand helfen, bevor die Kekse alle weg sind?!? :cookie: :D
Fügen Sie hier Ihre Signatur ein.
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von tas2580 »

Ganz so einfach wird das nicht funktionieren. Aber schau dir mal die Cookies an, da gibt es ein Cookie in dem die User ID steht, das könntest du auslesen. Besser ist allerdings wenn du deinen Code in eine PHP Datei packst statt das über das Template zu machen.

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
Benutzeravatar
Pofi
Mitglied
Beiträge: 252
Registriert: 06.10.2007 10:17
Wohnort: Wuppertal
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von Pofi »

Hab das schon befürchtet :-) Ich hatte auch schon ein paar Sachen ausprobiert....

Beim Einschlafen gestern Abend hab ich auch den Gedanken gehabt, einfach eine PHP zu erstellen. Damit hätte ich keine Sorgen und dieses Datenbankzeug alles beisammen... :roll:

Manchmal sind die einfachsten Lösungen, die besseren 8)


Danke dir Tobi; :cookie: Keks? :wink:
Fügen Sie hier Ihre Signatur ein.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von gn#36 »

Ich habe nie mit PHP im Template gearbeitet, aber vielleicht geht ja sowas wie

Code: Alles auswählen

global $user;
$userid = $user->data['user_id'];
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.
Benutzeravatar
Pofi
Mitglied
Beiträge: 252
Registriert: 06.10.2007 10:17
Wohnort: Wuppertal
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von Pofi »

Jo.... Funktioniert :D

Code: Alles auswählen

<!-- PHP -->
global $user;
$userid = $user->data['user_id'];
echo $userid;
<!-- ENDPHP -->
Ich mache meine ersten Gehversuche mit PHP und seit einer Woche auch mit SQL... Da ich noch nicht so recht hinter die Struktur vom neuen phpbb gekommen bin, taste ich mich über die Templatedateien voran :-)
Learning by doing :wink:

Vielen Dank für das Snippet; hat mir enorm geholfen :grin:
Fügen Sie hier Ihre Signatur ein.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von gn#36 »

Eine sinnvolle Dauerlösung ist PHP im Template normalerweise nicht, denn das ist verbunden mit einer ganzen Reihe von Nachteilen:
  • Du musst entweder die Templateänderung bei jedem Update neu einbauen, oder aber das Update selber durchführen
  • Die Trennung von Darstellung und Funktion geht verloren (z.B. blöd, wenn du irgendwann mal mehrere Templates einsetzen willst)
  • Wenn man an mehreren Stellen im Template PHP Code einbaut ist die Reihenfolge in der etwas ausgeführt wird nicht immer ganz klar. Das kann zu schwer zu findenden Fehlern führen.
  • Der PHP Code im Template wird erst sehr spät ausgeführt. Eine Einflussnahme auf phpBB interne Vorgänge ist darüber daher normalerweise nicht möglich.
  • Je nach phpBB Version (bei phpBB 3.0.x sicher, bei 3.1 habe ich nicht nachgesehen) läuft der PHP Code im Kontext einer Klassenmethode. Das kann zu seltsamem Verhalten führen.
  • Der Zugriff auf phpBB interne Variablen ist nicht ganz einfach. Eine Dauerlösung ist die Verwendung von globalen Variablen nicht, Seiteneffekte kann sie auch haben, z.B. wenn die globalen Variablen lokale Variablen mit gleichem Namen überlagern.
Ich empfehle dir daher, dich eingehend mit Erweiterungen zu beschäftigen und es direkt richtig zu machen. Der Aufbau von Erweiterungen ist am Anfang vielleicht etwas verwirrend und das Template System ist auch nicht unbedingt direkt zu Beginn intuitiv.

Lesestoff:
viewtopic.php?f=140&t=238108
viewtopic.php?f=140&t=235138
viewtopic.php?f=140&t=229654
KB:template_system
KB:template_syntax
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.
Benutzeravatar
Pofi
Mitglied
Beiträge: 252
Registriert: 06.10.2007 10:17
Wohnort: Wuppertal
Kontaktdaten:

Re: UserID in <!-- PHP --> übernehmen

Beitrag von Pofi »

Viel zu lesen :grin:

Aber ich hab da richtig Bock drauf. Ich freue mich, wenn ich etwas bastel und das dann auch tatsächlich funktioniert. Allerdings ist das immer mit Arbeit und Zeit verbunden. Obwohl ich sagen muss, dass ich php & SQL in relativ kurzer Zeit soweit verstanden habe, dass man damit vernünftig arbeiten kann.

Ich werde mir die Sachen mal anschauen und etwas rumprobieren. Ich denke, wenn man da ein paar Versuche gemacht hat, sollte das schon klappen.

Vielen Dank für die investierte Zeit, ich kann mir vorstellen, diese hin und wieder nochmal in Anspruch zu nehmen :lol:
Fügen Sie hier Ihre Signatur ein.
Antworten

Zurück zu „Coding & Technik“