Seite 1 von 1

Änderungen im Profil nicht mehr möglich => erledigt

Verfasst: 09.04.2006 10:18
von Slytherin
Hi,
meine User können ihre Profilangaben nicht mehr verändern.
Die Angaben bleiben einfach stehen und verändern sich nicht...
In der DB und im ACP, wenn man einen User verändern will, lassen sich die Profilangaben merkwürdigerweise verändern.

Slytherin

Verfasst: 09.04.2006 11:39
von Dirkk
Hast du vielleicht

"Style überschreiben
Vom Benutzer gewähltes Style überschreiben"
auf ja gestellt?

im ACP unter Allgemeines=>Konfiguration

Verfasst: 09.04.2006 11:59
von Slytherin
Nee, für einmal ist die Lösung so einfach nicht ... :D

Slytherin

Verfasst: 10.04.2006 12:55
von Slytherin
Stellt jemand ähnliches fest?
Ich habe soeben bemerkt, dass es nicht nur die Styles sind, die man nicht mehr im eigenen Profil verändern kann - sondern alles :o Hat das was mit dem Update zu tun?

Slytherin

Verfasst: 11.04.2006 18:23
von Slytherin
Ich scheine mit dem Problem alleine dazustehen ... :-?

Slytherin

Verfasst: 11.04.2006 18:49
von Sanchez17
Slytherin hat geschrieben:Ich scheine mit dem Problem alleine dazustehen ... :-?

Slytherin
Ja,

ich kann frei unter meinen Styles ohne Probleme wählen,und benutzte phpbb2.0.20...

Vll. hat sich bei dir ein Fehler beim Update reingeschlichen :-?

Verfasst: 16.04.2006 16:21
von Slytherin
Gut möglich, ich kann nur momentan keinen entdecken ...
Hier mal meine:
profile.php
includes/usercp_viewprofile.php
includes/usercp_register.php
Der Fehler befindet sich wohl in der usercp_register.php unter folgendem Abschnitt:

Code: Alles auswählen

//
// Did the user submit? In this case build a query to update the users profile in the DB
//
if ( isset($HTTP_POST_VARS['submit']) )
{
	include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);

	$passwd_sql = '';
	if ( $mode == 'editprofile' )
	{
		if ( $user_id != $userdata['user_id'] )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
		}
	}
	else if ( $mode == 'register' )
	{
		if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
		}
	}

	if ($board_config['enable_confirm'] && $mode == 'register')
	{
		if (empty($HTTP_POST_VARS['confirm_id']))
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
		}
		else
		{
			$confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']);
			if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id))
			{
				$confirm_id = '';
			}
			
			$sql = 'SELECT code 
				FROM ' . CONFIRM_TABLE . " 
				WHERE confirm_id = '$confirm_id' 
					AND session_id = '" . $userdata['session_id'] . "'";
			if (!($result = $db->sql_query($sql)))
			{
				message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql);
			}

			if ($row = $db->sql_fetchrow($result))
			{
				if ($row['code'] != $confirm_code)
				{
					$error = TRUE;
					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
				}
				else
				{
					$sql = 'DELETE FROM ' . CONFIRM_TABLE . " 
						WHERE confirm_id = '$confirm_id' 
							AND session_id = '" . $userdata['session_id'] . "'";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql);
					}
				}
			}
			else
			{		
				$error = TRUE;
				$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
			}
			$db->sql_freeresult($result);
		}
	}

	$passwd_sql = '';
	if ( !empty($new_password) && !empty($password_confirm) )
	{
		if ( $new_password != $password_confirm )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];
		}
		else if ( strlen($new_password) > 32 )
		{
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_long'];
		}
		else
		{
			if ( $mode == 'editprofile' )
			{
				$sql = "SELECT user_password
					FROM " . USERS_TABLE . "
					WHERE user_id = $user_id";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql);
				}

				$row = $db->sql_fetchrow($result);

				if ( $row['user_password'] != md5($cur_password) )
				{
					$error = TRUE;
					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Current_password_mismatch'];
				}
			}

			if ( !$error )
			{
				$new_password = md5($new_password);
				$passwd_sql = "user_password = '$new_password', ";
			}
		}
	}
	else if ( ( empty($new_password) && !empty($password_confirm) ) || ( !empty($new_password) && empty($password_confirm) ) )
	{
		$error = TRUE;
		$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];
	}
Slytherin

Verfasst: 16.04.2006 18:11
von Slytherin
Hi,
hat sich inzwischen nach intensivem Nachforschen erledigt.

Slytherin