Seite 1 von 1

Loginfelder beim Posten einer Antwort

Verfasst: 07.02.2005 16:33
von peterpeter
Hallo Leute,

ich habe folgende Frage:
Gibt es eine Möglichkeit, dort wo man eine Antwort postet eine Login und Passwort-Box einzubauen, dass man auch unter seinem Namen posten kann, wenn man sich nicht vorher eingeloggt hat?
Bisher habe ich mein Forum so eingerichtet, dass auch nicht registrierte User als Gast posten können. Ist man nicht eingeloggt, kann man den Namen wählen, bleibt aber weiterhin Gast. Ich würde jetzt gerne eine Box haben, wo man oberhalb der Antwort seine Daten (Username/PW) eingibt und dann auf "Absenden" klicken kann, um unter seinem eigenen Namen zu posten. Also nicht eine Box, wo man erst auf Login klicken muss und dann wieder zurück und posten.

Geht sowas? Wäre nett wenn mir da jemand helfen könnte.

MfG Peter

Verfasst: 07.02.2005 20:51
von QCO
Also dafür müsste man ein paar kleine Änderungen am Code vornehmen...
Wenn du bis morgen Abend warten kannst, mach ich dir so einen Mod.
Jetzt hab ich grad keine Zeit.

Verfasst: 07.02.2005 22:36
von peterpeter
Das wäre super!!

Vielen Dank!

Verfasst: 08.02.2005 17:36
von QCO
Mhh, das war etwas komplizierter, als ich mir das vorgestellt hatte, aber so könnte es funktionieren.
Ich hab nur kurz ausprobiert, bin also nicht sicher, ob alles funktioniert.
Bitte teste nach dem Einbau selbst nochmal alle mögliche Fälle von Nutzername/Passwort/kein Passwort ausführlich.
Ich übernehme keine Haftung für irgendwas.

ÖFFNE posting.php
SUCHE (ungefähr Zeile 540)

Code: Alles auswählen

		case 'newtopic':
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
FÜGE DANACH EIN

Code: Alles auswählen

			// MOD login_with_post
			if ( !empty($HTTP_POST_VARS['password']) )
			{
				$password = $HTTP_POST_VARS['password'];

                $sql = "SELECT user_id, username, user_password, user_active, user_level
                    FROM " . USERS_TABLE . "
                    WHERE username = '" . str_replace("\\'", "''", $username) . "'";
                if ( !($result = $db->sql_query($sql)) )
                {
                    message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
                }

                if( $row = $db->sql_fetchrow($result) )
                {
                    if( md5($password) == $row['user_password'] && $row['user_active'] )
                    {
                        $userdata = session_begin($row['user_id'], $user_ip, PAGE_POSTING, FALSE, FALSE);

                        if( !$userdata['session_logged_in'] )
                        {
                            message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);
                        }
                    }
                    else
                    {
                    	$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Error_login_with_post'] . '' : $lang['Error_login_with_post'];
                    	break;
					}
                }
                else
                {
					$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Error_login_with_post'] . '' : $lang['Error_login_with_post'];
					break;
                }
			}
			// END MOD login_with_post
ÖFFNE language/lang_german/lang_main.php
SUCHE

Code: Alles auswählen

//
// That's all Folks!
// -------------------------------------------------
FÜGE DANACH EIN

Code: Alles auswählen

// MOD login_with_post
$lang['Error_login_with_post'] = 'Benutzername und Passwort passen nicht zusammen. Wenn du deinen Beitrag als Gast verfassen möchtest, gib bitte kein Passwort ein.';
// END MOD login_with_post
ÖFFNE templates/subSilver/posting_body.tpl
SUCHE

Code: Alles auswählen

		<td class="row2"><span class="genmed"><input type="text" class="post" tabindex="1" name="username" size="25" maxlength="25" value="{USERNAME}" /></span></td>
	</tr>
FÜGE DANACH EIN

Code: Alles auswählen

	<tr>
		<td class="row1"><span class="gen"><b>{L_PASSWORD}</b></span></td>
		<td class="row2"><span class="genmed"><input type="password" class="post" tabindex="1" name="password" size="25" maxlength="25" value="" /></span></td>
	</tr>
[edit] Debug-Ausgabe entfernt.
Dank an punkface für den Hinweis...

Verfasst: 08.02.2005 18:20
von punkface
Hab den MOD eben mal getestet, und es funzt. Nur eine Sache..

Code: Alles auswählen

print_r($userdata);
muss (naja, sollte) noch aus dem raus was man in die posting.php einfügen muss, ansonsten klasse [ externes Bild ]

gruß

Verfasst: 08.02.2005 19:34
von QCO
punkface hat geschrieben:Hab den MOD eben mal getestet, und es funzt. Nur eine Sache..

Code: Alles auswählen

print_r($userdata);
Erwischt :oops: :lol: :P

Verfasst: 08.02.2005 19:56
von peterpeter
Hey vielen Dank!!
Werd es gleich mal ausprobieren

Verfasst: 08.02.2005 20:44
von peterpeter
Vielen Dank! Hat alles uper geklappt.

Hast du dir schon mal überlegt, das als MOD zur Verfügung zu stellen?

Verfasst: 08.02.2005 20:52
von QCO
Werd ich machen. Aber dazu muss ich es noch schön formatieren etc.