Seite 1 von 1

Birthday Mod Problem

Verfasst: 05.02.2003 14:19
von Silencer
Hallo,

also ich hab folgendes Problem:...
Ich habe den bithdaymod von:
  • ## Mod Title: Birthday PART 1
    ## Mod Version: 1.4.3.
    ## Author: Niels Chr. Denmark < ncr@db9.dk > (Niels Chr. Rød) HTTP://mods.db9.dk
    ##
    ## This mod is for phpBB2!! ver 2.0.4
in ein phpbb 2.0.3 installiert.
Jetzt kommt immer wenn ich mich registrieren will, die Meldung:

Code: Alles auswählen

Could not insert data into users table
Was kann ich dagegen machen??

THX im vorraus

Verfasst: 05.02.2003 14:23
von Acid
..den link:DebugMode aktivieren.

Sicherlich hast Du die DB ned angepasst.. bei dem Hack müsste eine Datei (db_update.php oder ähnlich) dabei gewesen sein, mit der Du das machen kannst.

Verfasst: 05.02.2003 14:37
von Silencer
des ging jetzt aber schnell :)

Also Debug sagt folgendes:

Code: Alles auswählen

Could not insert data into users table

DEBUG MODE

SQL Error : 1136 Column count doesn't match value count at row 1

INSERT INTO phpbb_users (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_birthday, user_next_birthday_greeting, user_active, user_actkey) VALUES (4, 'Test', 1044451991, '098f6bcd4621d373cade4e832627b4f6', 'xxxx@web.de', '', '', '', '', '', '', '', '', 0, 0, '', '', '', 1, 1, 0, 1, 1, 0, 1, 1, 0, 'D M d, Y g:i a', 'german', 1, 0, 1, 1, '')
Line : 556
File : /data/members/free/tripod/de/d/e/v/xxxxx/htdocs/board/includes/usercp_register.php
db_update habe ich durchgeführt...

jaaa.. ich weiß... wieder einer mit lyos... :oops:
aber ich mach des hier nicht für mich :wink:

Verfasst: 05.02.2003 15:16
von Thies
Lade bitte mal die Datei includes/usercp_register.php in einen Editor und kopiere die Zeilen um 556 beginnend mit

//
// Get current date
//

hier ins Forum, Du hast das meines Erachtens etwas falsch aus der Modanleitung übernommen. Da scheint m.E. etwas zu fehlen.

Frank-Andre

Verfasst: 05.02.2003 15:20
von Silencer
Hier :

Code: Alles auswählen

	$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_birthday, user_next_birthday_greeting, user_active, user_actkey)
				VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popuppm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, ";
			if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == USER_ACTIVATION_ADMIN || $coppa )
			{
				$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);
				$sql .= "0, '" . str_replace("\'", "''", $user_actkey) . "')";
			}
			else
			{
				$sql .= "1, '')";
			}

			if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql);
			}

			$sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator)
				VALUES ('', 'Personal User', 1, 0)";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql);
			}

			$group_id = $db->sql_nextid();

			$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
				VALUES ($user_id, $group_id, 0)";
			if( !($result = $db->sql_query($sql, END_TRANSACTION)) )
			{
				message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql);
			}

			if ( $coppa )
			{
				$message = $lang['COPPA'];
				$email_template = 'coppa_welcome_inactive';
			}
			else if ( $board_config['require_activation'] == USER_ACTIVATION_SELF )
			{
				$message = $lang['Account_inactive'];
				$email_template = 'user_welcome_inactive';
			}
			else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )
			{
				$message = $lang['Account_inactive_admin'];
				$email_template = 'admin_welcome_inactive';
			}
			else
			{
				$message = $lang['Account_added'];
				$email_template = 'user_welcome';
			}

			include($phpbb_root_path . 'includes/emailer.'.$phpEx);
			$emailer = new emailer($board_config['smtp_delivery']);

			$email_headers = "From: " . $board_config['board_email'] . "\nReturn-Path: " . $board_config['board_email'] . "\n";

			$emailer->use_template($email_template, stripslashes($user_lang));
			$emailer->email_address($email);
			$emailer->set_subject();//sprintf($lang['Welcome_subject'], $board_config['sitename'])
			$emailer->extra_headers($email_headers);

			if( $coppa )
			{
				$emailer->assign_vars(array(
					'SITENAME' => $board_config['sitename'],
					'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),
					'USERNAME' => $username,
					'PASSWORD' => $password_confirm,
					'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),

					'FAX_INFO' => $board_config['coppa_fax'],
					'MAIL_INFO' => $board_config['coppa_mail'],
					'EMAIL_ADDRESS' => $email,
					'ICQ' => $icq,
					'AIM' => $aim,
					'YIM' => $yim,
					'MSN' => $msn,
					'WEB_SITE' => $website,
					'FROM' => $location,
					'OCC' => $occupation,
					'INTERESTS' => $interests,
					'SITENAME' => $board_config['sitename']));
			}
			else
			{
				$emailer->assign_vars(array(
					'SITENAME' => $board_config['sitename'],
					'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),
					'USERNAME' => $username,
					'PASSWORD' => $password_confirm,
					'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();

			if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )
			{
				//$emailer->use_template("admin_activate", stripslashes($user_lang));
				$emailer->use_template("admin_activate", $board_config['default_lang']);
				$emailer->email_address($board_config['board_email']);
				$emailer->set_subject(); //$lang['New_account_subject']
				$emailer->extra_headers($email_headers);

				$emailer->assign_vars(array(
					'USERNAME' => $username,
					'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 = $message . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

			message_die(GENERAL_MESSAGE, $message);
		} // if mode == register
	}
} // End of submit


if ( $error )
{
	//
	// If an error occured we need to stripslashes on returned data
	//
	$username = stripslashes($username);
	$email = stripslashes($email);
	$new_password = '';
	$password_confirm = '';

	$icq = stripslashes($icq);
	$aim = htmlspecialchars(str_replace('+', ' ', stripslashes($aim)));
	$msn = htmlspecialchars(stripslashes($msn));
	$yim = htmlspecialchars(stripslashes($yim));

	$website = htmlspecialchars(stripslashes($website));
	$location = htmlspecialchars(stripslashes($location));
	$occupation = htmlspecialchars(stripslashes($occupation));
	$interests = htmlspecialchars(stripslashes($interests));
	$signature = stripslashes($signature);
	$signature = ( $signature_bbcode_uid != '' ) ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid\]/si", ']', $signature) : $signature;

	$user_lang = stripslashes($user_lang);
	$user_dateformat = stripslashes($user_dateformat);

}
else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) )
{
	$user_id = $userdata['user_id'];
	$username = htmlspecialchars($userdata['username']);
	$email = $userdata['user_email'];
	$new_password = '';
	$password_confirm = '';

	$icq = $userdata['user_icq'];
	$aim = htmlspecialchars(str_replace('+', ' ', $userdata['user_aim']));
	$msn = htmlspecialchars($userdata['user_msnm']);
	$yim = htmlspecialchars($userdata['user_yim']);

	$website = htmlspecialchars($userdata['user_website']);
	$location = htmlspecialchars($userdata['user_from']);
	$occupation = htmlspecialchars($userdata['user_occ']);
	$interests = htmlspecialchars($userdata['user_interests']);
	if ($userdata['user_birthday']!=999999)
{
	$birthday = realdate($lang['Submit_date_format'],$userdata['user_birthday']); 
	$b_day = realdate('j',$userdata['user_birthday']); 
	$b_md = realdate('n',$userdata['user_birthday']); 
	$b_year = realdate('Y',$userdata['user_birthday']); 
} else
{

Verfasst: 05.02.2003 15:26
von Thies
Sorry, habe auf Arbeit keine Zeilenanzeige, nimm bitte den Code-Teil wieder raus - ist zu lang -, der den ich brauche beginnt mit:

Code: Alles auswählen

			$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password
Frank-Andre

Verfasst: 05.02.2003 15:28
von Silencer
sorry meine schuld... siehe oben! :oops:

Verfasst: 05.02.2003 15:33
von Thies
Wie ich es gedacht habe, Du hast Dich nicht vollständig an die Anleitung gehalten:

Code: Alles auswählen

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
, user_allow_pm

# 
#-----[ IN-LINE AFTER,ADD ]------------------------------------------ 
# 
,user_birthday, user_next_birthday_greeting

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
,";

# 
#-----[ IN-LINE BEFORE,ADD ]------------------------------------------ 
# 
,'$birthday','$next_birthday_greeting'
Den ersten Teil hast Du eingetragen, den zweiten Teil nicht mehr!

Im Code muss in der Teil

Code: Alles auswählen

$user_style, 0, 1, "; 
ersetzt werden durch:

Code: Alles auswählen

$user_style, 0, 1, '$birthday', '$next_birthday_greeting', "; 
Dann müßte es einwandfrei gehen, es sei denn Du hast noch andere Teile des Mods nicht 1:1 übernommen!

Frank-Andre

Verfasst: 05.02.2003 16:35
von Silencer
oh, ähm ja... wer lesen kann ist klar im vorteil :D
THX sowiet finzt des jetzt.
Aber ich hätt da noch ne Frage!

Code: Alles auswählen

Next birthday popup year:
This field keep track of the next year the user shal have a birthday greeting
hier kann ich nur das Jahr 2004 auswählen... wenn aber einer jetzt 2003 Geburtstag hat, dann kriegt der kein Popup?!
wie stell ich das um? ich kann darin auch nix verändern, bleibt immer 2004 egal was ich eingebe.