anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 19 Mär, 2024 03:35

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 52 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: phpBB2/3 Foreneinbindung by Alkatar
BeitragVerfasst: So 06 Mai, 2007 20:36 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Hallo ihr,
dies hier ist mein erster öffentlicher Hack, also sry schonma, falls der Code nicht ganz optimal ist;)
also
Dies ist ein Mod, mit dem Spieler im LoGD unter Profil sich einen Forumaccount in einem phpBB-Forum einrichten lassen können.
(s. http://anpera.homeip.net/forum/viewtopic.php?t=3617 )

FUNKTIONIERT JETZT MIT phpBB2 UND phpBB3

Einbauschwierigkeit: SEHR leicht^^
Bugs: Bisher keine Bekannten
WICHTIG: Damit das funktioniert, muss der Datenbankbenutzer von LoGD die Rechte auf die Forumsdatenbank haben
Einbauanleitung hier und auch in der Datei forumacc.php:

Öffne forumacc.php

CONFIG bitte anpassen (direkt unter page_header("Forumaccount erstellen");)

Öffne prefs.php
Suche
$this->bbcode_second_pass_code('', 'addnav("Bio", $biolink);')
Füge danach ein
$this->bbcode_second_pass_code('', '//Forumseinbindung by Alkatar
output("`n`n<form action='forumacc.php?op=forumacc' method='POST'>",true);
output("<input type='submit' class='button' value='Forumaccount erstellen'>", true);
output("</form>",true);
addnav("","forumacc.php?op=forumacc");
//Forumseinbindung by Alkatar Ende
')
Ich hoffe es gefällt euch. Feedback jeglicher Art ist immer Willkommen;)
mfg
Alkatar


Dateianhänge:
Dateikommentar: Unterstützt jetzt phpBB2 und phpBB3...Bitte in der Datei wie beschrieben einstellen
forumacc.rar [1.46 KIB]
2396-mal heruntergeladen

_________________
Kaldacin


Zuletzt geändert von Alkatar91 am So 08 Feb, 2009 17:42, insgesamt 5-mal geändert.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 21:32 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
sql befehl fehlt

ALTER TABLE accounts ADD forumacc TINYINT(4) NOT NULL DEFAULT '0';

da fehlt der nette befehl der das feld in der DB erzeugt damit die abfrage ob schonmal erstellt oder nicht auch geht

und HTTP_GET_VARS würde ich besser zu $_GET machen da register_long_arrays soviel ich schon xmal hier und in anderen php befassenden foren gelesen habe aussterben.
dann

[php]das hier
$session['user']['forumacc']==1;
sollte besser
$session['user']['forumacc']=1;
sein
damit es auf 1 gesetzt wird
und diesen
$sql = "SELECT * FROM $db_name.phpbb_users where username='$user'";

zu machen
$sql = "SELECT * FROM $db_name.phpbb_users where username='$user' AND forumacc<1";
ist auch besser für die abfrage[/php]

und in der anleitung steht

/**Einbauanleitung:**/

besser so /**Einbauanleitung:**

damit der nachfolgende text der anleitung auskommentiert sind.

und es heisst forumaccount und nicht forumaccound.

aber dennoch thx für das script irgendwie hatte ich nicht die idee dazu *schäm*

PS: sollte ich mich irren entschuldige ich mich natürlich


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 21:45 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
azraeldemon hat geschrieben:
sql befehl fehlt

ALTER TABLE accounts ADD forumacc TINYINT(4) NOT NULL DEFAULT '0';
da fehlt der nette befehl der das feld in der DB erzeugt damit die abfrage ob schonmal erstellt oder nicht auch geht


xD
den Braucht man garnet, ich hab nur vergessen die eine zeile zu löschen, der überprüft direkt, ob es den namen schon im Forum gibt.

azraeldemon hat geschrieben:
und HTTP_GET_VARS würde ich besser zu $_GET machen da register_long_arrays soviel ich schon xmal hier und in anderen php befassenden foren gelesen habe aussterben.
dann

azraeldemon hat geschrieben:
[php]das hier
$session['user']['forumacc']==1;
sollte besser
$session['user']['forumacc']=1;
sein
damit es auf 1 gesetzt wird
und diesen
$sql = "SELECT * FROM $db_name.phpbb_users where username='$user'";

zu machen
$sql = "SELECT * FROM $db_name.phpbb_users where username='$user' AND forumacc<1";
ist auch besser für die abfrage[/php]


S. oben^^
azraeldemon hat geschrieben:
und in der anleitung steht

/**Einbauanleitung:**/

besser so /**Einbauanleitung:**

damit der nachfolgende text der anleitung auskommentiert sind.

ups :bash: Danke
azraeldemon hat geschrieben:
und es heisst forumaccount und nicht forumaccound.

ups :bash: Danke
azraeldemon hat geschrieben:
aber dennoch thx für das script irgendwie hatte ich nicht die idee dazu *schäm*

Gern geschehen, dafür mach ich das ja;)
azraeldemon hat geschrieben:
PS: sollte ich mich irren entschuldige ich mich natürlich

DANKEEE, brauchst du net;)
mfg
Alkatar91
PS:hab das ma alles geupdatet

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 21:47 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
so noch eine frage bzw

anmerkung

du hast die tabellen des forums in der DB des spiels oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 21:49 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Nein, hab ich nicht^^
Die Datenbank wird durch das $db_name. gewechselt
damit das funktioniert, muss der Logd-dbbenutzer rechte für die phpBB datenbank haben( habs grad auch nochma oben hingeschrieben)

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 21:56 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
und durch die dbconnectdaten wird aber zur spieldb connected

und nicht zur db des forums

beispiel

ich habe datenbanken

blabla-spiel <-- dort sucht er sich den namen
blabla-forum <-- dort sollte suchen

kann er aber nicht da er nicht zur datenbank des forums connecten kann

denn es kommt immer diese nette fehler meldung
[php]SELECT * FROM where username='Azrael'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where username='Azrael'' at line 1[/php]

db-name_phpbb_users(egal wie man sie nennt) findet er nicht. Wird er auch nie finden da wie schon gesagt er nicht an die DB des forums kommt


Zuletzt geändert von azraeldemon am So 06 Mai, 2007 22:06, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 22:01 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Ich hab keine ahnung, bei mir funktioniert das einwandfrei mit 2 verschiedenen Datenbanken.
Falls das bei dir nit funzt, müsste ich nochma gucken
mfg
Alkatar91

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 22:07 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Hast du $db_name="" geändert?

Der Benutzer, der in der dbirgendwas.php steht, muss auch die Forumrechte haben

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 22:11 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
azraeldemon hat geschrieben:
db-name_phpbb_users(egal wie man sie nennt) findet er nicht. Wird er auch nie finden da wie schon gesagt er nicht an die DB des forums kommt


das muss auch $dbname.phpbb_users heißen

Ich hab mir grad ma den source von dir da angeguckt und festgestellt, das du da mist gebaut hast(sry)
downloade die Datei da oben nochma und tuh die so wie sie ist rein(du musst dann natürlich bei $db_name das richtige einfügen)

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 22:24 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 18 Jun, 2006 18:38
Beiträge: 179
Wohnort: Herne
LoGD: http://www.mystara-logd.net/source.php
das ich evtl schon die ganze zeit am machen bin und meine $db_name ist forum

und phpbb_ habe ich nicht in meiner forumdb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 06 Mai, 2007 23:03 
Offline
Großmeister
Großmeister

Registriert: Fr 21 Jul, 2006 00:00
Beiträge: 416
Hier wäre die Function mysql_eb_query([string db_name],[string sqlbefehl]); besser ;)
Mit dieser Function muss man nicht erst eine Verbindung zu einer Datenbank aufnehmen sondern muss den Datenbanknamen einfach als erstes Argument in die Function schreiben und so erspart man sich die kleinen Schönheitsfehler und mögliche Fehler. Natürlich muss man erst zum Mysqlserver connecten hier mal ein kleines beispiel
[php]
<?php
require_once('dbconnect.php');

$db = @mysql_connect($DB_HOST,$DB_USER,$DB_PASS);

$sql = 'SELECT `name`,`acctid` FROM `accounts` WHERE acctid=1';
mysql_db_query($DB_NAME,$sql);

mysql_close($db);
?>
[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 07 Mai, 2007 06:18 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Ich lass das aber vorerst so, vllt änder ich das späater mal, aber Danke für den Tipp

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 07 Mai, 2007 10:47 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Kamui hat geschrieben:
Hier wäre die Function mysql_eb_query([string db_name],[string sqlbefehl]); besser ;)
Mit dieser Function muss man nicht erst eine Verbindung zu einer Datenbank aufnehmen sondern muss den Datenbanknamen einfach als erstes Argument in die Function schreiben und so erspart man sich die kleinen Schönheitsfehler und mögliche Fehler. Natürlich muss man erst zum Mysqlserver connecten hier mal ein kleines beispiel
[php]
<?php
require_once('dbconnect.php');

$db = @mysql_connect($DB_HOST,$DB_USER,$DB_PASS);

$sql = 'SELECT `name`,`acctid` FROM `accounts` WHERE acctid=1';
mysql_db_query($DB_NAME,$sql);

mysql_close($db);
?>
[/php]


Warum immer so kompliziert????
Seit PHP 4.2 gibt es für mysql_connect() den optionalen Parameter [neue Verbindung]. Nachzulesen hier: http://de.php.net/manual/de/function.mysql-connect.php

Wer noch eine ältere PHP-Version nutzt, kann mit einem kleinen Trick, auch eine neue Verbindung aufbauen. Anstelle von localhost einfach 127.0.0.1 benutzen....

Aber warum einfach wenn es auch kompliziert geht....*fg*

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 07 Mai, 2007 11:40 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Warum überhaupt sowas?
LoGD verbindet doch automatisch mit dem Mysqlserver und wählt dann die Datenbank vom Logd. das wird aber durch das $db_name. ausgeschaltet und er wählt die datenbank des Forums aus.

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 07 Mai, 2007 12:48 
Offline
Großmeister
Großmeister

Registriert: Fr 21 Jul, 2006 00:00
Beiträge: 416
@Dom: Eben ;D
Aber sorry ich hab mich nicht großartig mich damit beschäftigt und muss es nötig sein noch einmal neu zu connecten? o.o Ich halte das für nicht so resourceschonend wie mysql_db_query da dort nicht nochmal zum mysqlcilent verbunden wird sondern die aufgebaute Verbindung genutzt wird und der Query einfach in eine andere Datenbank auf dem Mysqlserver injeziert wird oder liebe ich da falsch? o.O


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 07 Mai, 2007 13:04 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Der Meinung bin ich auch^^

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 08 Mai, 2007 08:47 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 24 Okt, 2005 23:20
Beiträge: 180
Geschlecht: Männlich
LoGD: http://logd.wyrmslayer.de
Man möge mich korrigieren, wenn ich falsch liege, aber hat Doms Lösung nicht den Vorteil, dass es völlig wurscht ist, ob die Forums-DB auf dem selben Server liegt und der selbe Nutzer die Rechte hat?

In meinem Fall z.B. liegen das logD und das Forum auf 2 unterschiedlichen Subdomains, demnach ist der Pfad zur DB unterschiedlich und auch der DB-Nutzer, also ist das Script in seiner Ur-Form für mich nicht verwendbar.

_________________
YoM hat geschrieben:
LÖLz... ne, dafür ham wir unsere Mods, als Admins dürfen wir ehrlich sein. *gg*
---Original Message---
bist du eigentlich zum freundlich sein verpflichtet?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 08 Mai, 2007 14:08 
Offline
Großmeister
Großmeister

Registriert: Fr 21 Jul, 2006 00:00
Beiträge: 416
Das schon aber in den meisten Fällen ist es so das beide Datenbanken auf dem selben Mysqlcilent liegen also von daher wäre dann meine Lösung die schnellere wenn die Daten aber nicht auf einem gemeinsamen Mysqlcilent liegen wirst du wohl nicht um Dom's Lösung herum kommen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 08 Mai, 2007 16:02 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Und wie wärs denn mit mysql_select_db?

[php]
<?php
require_once('dbconnect.php');

mysql_select_db($DB_NAME);
$sql = 'SELECT `name`,`acctid` FROM `accounts` WHERE acctid=1';
db_query($sql);
?>
[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 08 Mai, 2007 16:16 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Kamui hat geschrieben:
Das schon aber in den meisten Fällen ist es so das beide Datenbanken auf dem selben Mysqlcilent liegen also von daher wäre dann meine Lösung die schnellere wenn die Daten aber nicht auf einem gemeinsamen Mysqlcilent liegen wirst du wohl nicht um Dom's Lösung herum kommen


Gehen wir mal von der Masse aus...
Alle grossen Hoster, haben seperate My-SQL Server. Sprich auch nicht den selben My-SQL Benutzer.
Auch werden sehr viele hingehen, die einen Root-Server betreiben, und für LotGD und Forum verschiedene Benutzer eingerichtet haben. Zwecks Sicherheit und Log auswertung.

Aber jedem wie es beliebt...

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 52 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum