Seite 1 von 1

IRC-Chat (pjirc), nick, passwort

Verfasst: 29.01.2004 07:23
von makue
Hallo,

einen Chat in das PHPBB zu integrieren finde ich nicht schlecht. Für mich kommt aus diversen Gründen nur ein IRC in Frage. Pjirc macht einen guten Eindruck und wenn man sich mal durchliest was die alles noch realisieren wollen, sieht das wirklich gut aus.

Ich habe hier schon diverse Themen über Chateinbindung gelesen, allerdings fand ich nichts zu meinem konkreten Problem.

1. Ich möchte gern Usernamen + Passwort(!) aus dem PHPBB übernehmen. Eventuell mit einem Extra Klartext-Passwort-Feld in der Datenbank. Falls ein User mit diesem nick schon online ist muss versucht werden, ob man seinen eventuell registrierten nick mit "recover" freigeben kann. Ganz so wichtig ist diese Option nicht, man kann nickserv ja so einstellen, dass so ein User nach einer Minute den von anderen registrierten nick verliert.

2. Ein neuer Chatbesucher sollte sich bei nickserv identifizieren, falls der nick nicht registriert ist, sollte er das an dieser Stelle werden.

3. Ich möchte gern im Board anzeigen, wie viele User derzeit im Chat sind.

Vollen Zugriff auf den IRC-Server habe ich, ich könnte da also ein Script installieren, was die Useranzahl im Chat ermittelt. Ich bin selbst bereit an einer Lösung mitzuarbeiten, falls es noch keine dafür gibt. Ich bin daher für jeden kleinen Tipp dankbar.

Verfasst: 01.02.2004 19:38
von makue
Also, das mit Anmeldung und Passwort habe ich hinbekommen. Eine andere Frage: Hat jemand ein SubSilver Color-Set? Also die default-Farben passen nicht richtig zum SubSilver.

Verfasst: 29.02.2004 14:30
von exhale
wie hast du dsa gemacht?

Verfasst: 29.02.2004 15:35
von makue
Anmeldung: Ich benutze den nick aus der Datenbank und versuche über die JavaScript-Schnittstelle des Applets, mittels nickserv den nick zu registrieren. Dann hinterher noch ein identify, falls der nick schon registriert war. Bzw. noch ein "release", falls ein anderer den Nick benutzt.

Dass mit dem Passwort konnte ich leider nur mit einem zusätzlichen Passwort im Klartext ändern. Habe halt ein Klartext-Passwortfeld zur User-Tabelle hinzugefügt und bei jedem einloggen wird das neu geschrieben. Hier mal das, was ich in der chat.php ergänzt habe:

Code: Alles auswählen

if (strlen($userdata['user_irc_pass'])>1) {
	$nickserv  = "/msg nickserv ghost ".$userdata['username']." ".$userdata['user_irc_pass'].";";
	$nickserv .= "/msg nickserv release ".$userdata['username']." ".$userdata['user_irc_pass'].";";
	$nickserv .= "/nick ".$userdata['username'].";";
	$nickserv .= "/msg nickserv register ".$userdata['user_irc_pass']." ".$userdata['user_email'].";";
	$nickserv .= "/msg nickserv identify ".$userdata['user_irc_pass'].";";
	$nickserv .= "/join ".$board_config['irc_channel'].";";
}	
$userdata['irc_commands'] = $nickserv.$userdata['irc_commands'];
Falls es Dich noch interessiert wie ich das Passwort schreibe, kann ich das gern auch noch posten.

Verfasst: 29.02.2004 17:17
von exhale
wohin soll ich das in der datei einfügen? einfach rein irgendwo oder?

Verfasst: 29.02.2004 17:28
von makue
nach dem $template->assign_vars-Block, also nach:

Code: Alles auswählen

	'SOUND_BEEP' => $board_config['irc_sound_beep'],
	'SOUND_QUERY' => $board_config['irc_sound_query'])
);
Aber bedenke, so allein bringt das noch nichts. Das Passwortfeld muss noch in die User-Tabelle "phpbb_users" (user_irc_pass varchar(32)). Anschließend in der login.php nach diesem Code:

Code: Alles auswählen

				if ($row['user_badlogin']<$board_config['max_login_error'] || $row['user_blocktime']<time() )
				{				
					if( md5($password) == $row['user_password'] && $row['user_active'] )
					{
dies einfügen:

Code: Alles auswählen

						$sql = "UPDATE " . USERS_TABLE . " SET user_irc_pass='".$password."'
							WHERE username = '" . str_replace("\'", "''", $username) . "'";
						if ( !($result = $db->sql_query($sql)) )
						{
							message_die(GENERAL_ERROR, 'Error updating correct login data', '', __LINE__, __FILE__, $sql);
						}
Ich hoffe, dass das jetzt alles war. Wenn Du auf einem IRC-Server bist der keine Services wie den nickserv hat, kannst Du Dir das natürlich alles sparen!

Nachtrag: Die Passwörter der automatisch einloggenden User werden so nicht gespeichert! Ich habe mir so geholfen, dass ich einfach den Cookienamen des Boards geändert habe wonach sich alle einmal mit Passwortangabe einloggen mussten.