Seite 1 von 1

Problem mit small Profil panel

Verfasst: 21.02.2006 13:08
von charlymcfly
Zum Glück wurde ich durch einen meiner User darauf aufmerksam gemacht. Sobald man irgendwelche einstellungen ändert kommt immer dieser text das man grundlegende einstellungen geändert habe und den account wieder freischalten muß. Komischerweise funktioniert es auch bei der mailänderung und beim passwort dann kriegt man ne mail und schaltet wieder frei. Aber wenn man Wohnort Avatar flagge oder die zeitzone ändert dann ist der gleiche text nur ohne mail.

Auch ein einspielen der orinal usercp_profile ändert nichts an diesem Fehler sieht es leider so aus als wäre der Fehler schon im mod von anfang an.

Wäre schön wenn sich jemand die usercp_profile mal ansehen könnte und mir helfen kann das problem zu beheben

Ich natürlich schon ein wenig getestet und habe es ( kann ich selbst garned glauben) geschafft das die email richtig geschickt und auch alles richtig angezeigt bekomme im browser. Ich habe für die mails den code auf diesen Hier abgeändert:

Code: Alles auswählen

			if ($pmode == "2") 
			{
				$message = $lang['Profile_updated'] . '<br /><br />'. sprintf($lang['Click_return_profile'],  '<a href="' . append_sid("kontrollzentrum.$phpEx") . '">', '</a>') .'<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
			}
			else if ($pmode == "3") 
			{
				$message = $lang['Profile_updated'] . '<br /><br />'. sprintf($lang['Click_return_profile'],  '<a href="' . append_sid("kontrollzentrum.$phpEx") . '">', '</a>') .'<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
			}
			else if ($pmode == "4") 
			{
				$message = $lang['Profile_updated'] . '<br /><br />'. sprintf($lang['Click_return_profile'],  '<a href="' . append_sid("kontrollzentrum.$phpEx") . '">', '</a>') .'<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
			}
			else
			{
				//
				// The users account has been deactivated, send them an email with a new activation key
				//
				include($phpbb_root_path . 'includes/emailer.'.$phpEx);
				$emailer = new emailer($board_config['smtp_delivery']);

				$emailer->from($board_config['board_email']);
				$emailer->replyto($board_config['board_email']);

				$emailer->use_template('user_activate', stripslashes($user_lang));
				$emailer->email_address($email);
				$emailer->set_subject($lang['Reactivate']);

				$emailer->assign_vars(array(
					'SITENAME' => $board_config['sitename'],
					'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),
					'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',

					'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)
				);
				$emailer->send();
				$emailer->reset();

				$message = $lang['Profile_updated_inactive'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
			}
und für die account deaktivierung habe ich das so abgeändert obwohl ich mir nicht ganz sicherbin ob ich da nun damit fehler eingebaut habe oder nicht:

Code: Alles auswählen

			if ($pmode == "2") {
				$user_active = 'user_active';
				$user_actkey = 'user_actkey';
			}
			else if ($pmode == "3") {
				$user_active = 'user_active';
				$user_actkey = 'user_actkey';
			}
			else if ($pmode == "4") {
				$user_active = 'user_active';
				$user_actkey = 'user_actkey';
			}
			else
			{
				$user_active = 0;

				$user_actkey = gen_rand_string(true);
				$key_len = 54 - ( strlen($server_url) );
				$key_len = ( $key_len > 6 ) ? $key_len : 6;
				$user_actkey = substr($user_actkey, 0, $key_len);

				if ( $userdata['session_logged_in'] )
				{
					session_end($userdata['session_id'], $userdata['user_id']);
				}
			}
so funktioniert auch die an und abmeldung richtig aber nun fehlt mir leider noch das einbauen des richtigen aktivierungskeys.

Dafür ist doch eigentlich dieser orginalteil zuständig oder?

Code: Alles auswählen

if( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN )
leider bekomme ich es nicht hin das ich den code ohne probleme/fehlermeldung mit einbauen kann.

Würde mich freuen wenn Ihr mir dabei helfen könntet und auch sagen könntet ob ich mit den codeänderungen nun trotzdem die sicherheit gegeben ist oder ob ich nun ein sicherheitsloch damit produziere?

Verfasst: 22.02.2006 23:56
von charlymcfly
Kann mir denn niemand bei diesem Problem helfen und mal schaun ob ich das richtig gemacht habe?