Problem bei der erstellung neuer user ausserhalb von phpBB

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.
Antworten
Angel [bIa]
Mitglied
Beiträge: 5
Registriert: 11.04.2004 19:51

Problem bei der erstellung neuer user ausserhalb von phpBB

Beitrag von Angel [bIa] »

Hi Leute.

Ein "kleines" aber zeitraubendes Problemchen bereitet mir heute schon den ganzen nachmitag kopfschmerzen.

Also: Eine Community soll einen Forum bekommen. Das Problem ist nur, das es erwünscht ist, dass die User sich nicht extra in dem forum registrieren müssen, sondern gleich bei der registrierung in der community sollen die Daten (benutzername, eMail, passwort usw.) auch in dem Forum eingetragen werden.

Ich habe nun folgende Zeile in dem registrierungsscript der community soft eingetragen:

Code: Alles auswählen

// Forumanmeldung:
include("config.php");
$db1 = mysql_connect ($dbhost,$dbuser,$dbpasswd); mysql_select_db ($dbname,$db1);
$test = ("SELECT MAX(user_id) AS total FROM phpbb_users");
$erg = mysql_db_query($dbname,$test,$db1);
while (list($total) = mysql_fetch_row($erg))
			$userid = $total+1;
			
$time = time();
$sql = "INSERT INTO `phpbb_users` ('user_id', `user_active`, `username`, `user_password`, `user_session_time`, `user_session_page`, `user_lastvisit`, `user_regdate`, `user_level`, `user_posts`, `user_timezone`, `user_style`, `user_lang`, `user_dateformat`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_emailtime`, `user_viewemail`, `user_attachsig`, `user_allowhtml`, `user_allowbbcode`, `user_allowsmile`, `user_allowavatar`, `user_allow_pm`, `user_allow_viewonline`, `user_notify`, `user_notify_pm`, `user_popup_pm`, `user_rank`, `user_avatar`, `user_avatar_type`, `user_email`, `user_icq`, `user_website`, `user_from`, `user_sig`, `user_sig_bbcode_uid`, `user_aim`, `user_yim`, `user_msnm`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`) VALUES ('$userid' ,'1','$benutzer','$pass','NULL','NULL','','$time','0','0','2','2','german','D M d, Y g:i a','0','0','0','NULL','1','1','1','1','1','1','1','1','1','1','1','NULL','','0','$email','','','$plz $ort','','','','','','','','','NULL')";
$result = mysql_query($sql);
Nun... Es funktioniert nicht. Es wird einfach kein neuer User angelegt
So bald ich die user_id rausnehme bekomme ich einen neuen User erstellt, der die user_id '0' bekommt und das wars. kein neuer User mehr möglich.
Was mache ich hier falsch?

Ich wäre für jede denkbare Hilfe sehr dankbar.

Gruss, Angel
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Code: Alles auswählen

while (list($total) = mysql_fetch_row($erg)) 
         $userid = $total+1;
könnte das Problem sein (auch wenn ich jetzt das Problem noch nicht direkt sehe :-?). Mach da mal testweise

Code: Alles auswählen

$res = mysql_fetch_row($erg); 
$userid = $res['total'] + 1;
raus. Da hab ich zumindest weniger Bauchschmerzen...

Ist jetzt ohne Fehlerprüfung - aber die scheint ja nicht erwünscht zu sein :roll: :wink:

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Angel [bIa]
Mitglied
Beiträge: 5
Registriert: 11.04.2004 19:51

Beitrag von Angel [bIa] »

Danke für den Tipp, aber daran liegt es nicht an diesen code.

Code: Alles auswählen

$userid=$total+1;
liefert auf jeden fall den richtigen wert (die höchste vorhandene user_id + 1)

Ich versuche mir jetzt erstmal die richtige fehlermeldung ausgeben zu lassen. Mal sehen was genau das problem ist.
Benutzeravatar
SantaZ
Mitglied
Beiträge: 411
Registriert: 20.08.2003 12:06
Wohnort: NRW

Beitrag von SantaZ »

hi,
das interessiert mich auch. Ich hatte mal vor eniger Zeit nach so etwas gesucht. Wurde aber absolut nicht fündig.

Ich hab mein ein bisschen bei google geschaut und dieser hier gefunden:
//PHP-Nuke Registration Addition - by Matt Lyons matt@buffydownunder.com

$cryptpass=crypt($password);
mysql_query("insert into nuke_users (uname, email, url, user_regdate,
user_icq, user_aim, user_yim, user_viewemail, pass) values ('$username',
'$email', '$homepage', '$user_regdate', '$icq', '$aim', '$yahoo',
'$showemail', '$cryptpass')");

-------------------------------------------------------



in the user.php file of php.nuke

Find

user.php?op=COPPA

And just change it to

the url to the register.php file of vbulletin

easy hack, but ingenius, thanks again Matt and Russel
Ich könnte soetwas für phpBB und PhPnuke gut bebrauchen. Es sollen einfach nur die user die sich im PhPbb registrieren ebenfalls in der PhPnuke(5.5) Tabelle eingeschrieben werden.


Könnte der Code oben so etwas darstellen? Scheind mir ein bisschen zu einfach zu sein.
cu SantaZ
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Sonst mal das ganze mit

Code: Alles auswählen

die($sql);
abbrechen und den SQL-Befehl testweise mit phpMyAdmin ausführen.
Was aber auf jeden Fall noch fehlt: die Erstellung der zugehörigen Single User Group.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Angel [bIa]
Mitglied
Beiträge: 5
Registriert: 11.04.2004 19:51

Beitrag von Angel [bIa] »

So. Ich habe es zum laufen gebracht. Der Fehler lag eindeutig in dem MySQL syntax der INSERT INTO Zeile.

Code: Alles auswählen

// Forumanmeldung:
include("config.php");
$db1 = mysql_connect ($dbhost,$dbuser,$dbpasswd); mysql_select_db ($dbname,$db1);
$test = ("SELECT MAX(user_id) AS total FROM phpbb_users");
$erg = mysql_db_query($dbname,$test,$db1);
while (list($total) = mysql_fetch_row($erg))
{
	$userid = $total+1;
}			

$new_password = md5($new_password);
$user_dateformat='D M d, Y g:i a';
$user_lang='german';
$sql = "INSERT INTO phpbb_users (user_lang, user_rank, user_dateformat, user_from, user_style, user_timezone, user_level, user_id, username, user_regdate, user_password, user_email) VALUES (  '" . str_replace("\'", "''", $user_lang) . "',0, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $ort) . "',2, 2, 0, $userid, '" . str_replace("\'", "''", $benutzer) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "')";
$result = mysql_query($sql);
// Ende
Warum das mit dem

Code: Alles auswählen

$res = mysql_fetch_row($erg);
$userid = $res['total'] + 1;
nicht funktioniert hat ist mir jedoch immer noch einen rätsel.
Als Wert kommt daraus $userid=1. Weis einer was ich da beachten muss, damit diese Variante funktioniert?
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“