Seite 1 von 1

Problem bei der erstellung neuer user ausserhalb von phpBB

Verfasst: 11.04.2004 20:16
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

Verfasst: 11.04.2004 22:00
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

Verfasst: 11.04.2004 22:45
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.

Verfasst: 11.04.2004 22:52
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.

Verfasst: 11.04.2004 23:12
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

Verfasst: 12.04.2004 01:39
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?