X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fregister_functions.php;h=2eac520fe61802cff03aab275fc57ad9ef7d6aac;hp=817cc3f3dd3b639af46cd7f81f027e55b5c55bab;hb=c8d76610eb94093d4eed4fcd8a6cb72e74c8f6d8;hpb=325bb973c136c921d0c36384ca9655aa7744283e diff --git a/inc/libs/register_functions.php b/inc/libs/register_functions.php index 817cc3f3dd..2eac520fe6 100644 --- a/inc/libs/register_functions.php +++ b/inc/libs/register_functions.php @@ -14,10 +14,9 @@ * $Date:: $ * * $Tag:: 0.2.1-FINAL $ * * $Author:: $ * - * Needs to be in all Files and every File needs "svn propset * - * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * + * Copyright (c) 2009, 2010 by Mailer Developer Team * * For more information visit: http://www.mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -39,7 +38,7 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} +} // END - if // function ifRequiredRegisterFieldsAreSet (&$array) { @@ -47,8 +46,10 @@ function ifRequiredRegisterFieldsAreSet (&$array) { $ret = true; foreach ($array as $key => $value) { // Check all fields that must register - $result = SQL_QUERY("SELECT `id` FROM `{?_MYSQL_PREFIX?}_must_register` WHERE `field_name`='".$key."' AND `field_required`='Y' LIMIT 1", - __FUNCTION__, __LINE__); + $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_must_register` WHERE `field_name`='%s' AND `field_required`='Y' LIMIT 1", + array($key), __FUNCTION__, __LINE__); + + // Entry found? if (SQL_NUMROWS($result) == 1) { // Check if extension country is not found (you have to enter the 2-chars long country code) or // if extensions is present check if country code was selected @@ -81,41 +82,34 @@ function registerGenerateCategoryTable ($mode, $return=false) { if (isAdmin()) $AND = ''; // Look for categories - $result = SQL_QUERY("SELECT `id`, `cat`, `visible` FROM `{?_MYSQL_PREFIX?}_cats` ".$AND." ORDER BY `sort` ASC", + $result = SQL_QUERY('SELECT `id`, `cat`, `visible` FROM `{?_MYSQL_PREFIX?}_cats` ' . $AND . ' ORDER BY `sort` ASC', __FUNCTION__, __LINE__); - if (SQL_NUMROWS($result) > 0) { + if (!SQL_HASZERONUMS($result)) { // List alle visible modules (or all to the admin) - $SW = 2; $OUT .= ''; while ($content = SQL_FETCHARRAY($result)) { // Prepare array for the template - $content = array( - 'sw' => $SW, - 'cat' => $content['cat'], - 'def_y' => '', - 'def_n' => '', - 'id' => $content['id'], - ); + $content['default_yes'] = ''; + $content['default_no'] = ''; // Mark categories if ((postRequestParameter('cat', $content['id']) == 'Y') || ((getConfig('register_default') == 'Y') && (!isPostRequestParameterSet('cat', $content['id'])))) { - $content['def_y'] = ' checked="checked"'; + $content['default_yes'] = ' checked="checked"'; } else { - $content['def_n'] = ' checked="checked"'; + $content['default_no'] = ' checked="checked"'; } // Load template and switch color $OUT .= loadTemplate('guest_cat_row', true, $content); - $SW = 3 - $SW; - } + } // END - while $OUT .= '
'; // Free memory SQL_FREERESULT($result); } else { // No categories setted up so far... - $OUT .= loadTemplate('admin_settings_saved', true, getMessage('NO_CATEGORIES_VISIBLE')); + $OUT .= loadTemplate('admin_settings_saved', true, '{--NO_CATEGORIES_VISIBLE--}'); } if ($return === true) { @@ -130,26 +124,26 @@ function registerGenerateCategoryTable ($mode, $return=false) { // Outputs a 'failed message' function registerOutputFailedMessage ($messageId, $extra='') { if (empty($messageId)) { - outputHtml('
' . $extra . '
'); + outputHtml('
' . $extra . '
'); } else { - outputHtml('
{--' . $messageId . '--}' . $extra . '
'); + outputHtml('
{--' . $messageId . '--}' . $extra . '
'); } } // Run a filter for must-fillout fields function FILTER_REGISTER_MUST_FILLOUT ($content) { // Get all fields for output - $result = SQL_QUERY("SELECT `field_name`, `field_required` FROM `{?_MYSQL_PREFIX?}_must_register` ORDER BY `id` ASC", + $result = SQL_QUERY('SELECT `field_name`, `field_required` FROM `{?_MYSQL_PREFIX?}_must_register` ORDER BY `id` ASC', __FUNCTION__, __LINE__); // Walk through all entries while ($row = SQL_FETCHARRAY($result)) { // Must the user fill out this element? $value = ''; - if ($row['field_required'] == 'Y') $value = '(*)'; + if ($row['field_required'] == 'Y') $value = '(*)'; // Add it - $content['must_fillout_'.strtolower($row['field_name']).''] = $value; + $content['must_fillout_' . strtolower($row['field_name']) . ''] = $value; } // END - while // Free memory @@ -222,11 +216,18 @@ function isRegistrationDataComplete () { } // END - if // Do this check only when no admin is logged in - foreach (postRequestParameter('cat') as $id => $answer) { - if ($answer == 'Y') $GLOBALS['register_selected_cats']++; - } // END - foreach + if (is_array(postRequestParameter('cat'))) { + // Only continue with array + foreach (postRequestParameter('cat') as $id => $answer) { + // Is this category choosen? + if ($answer == 'Y') { + $GLOBALS['register_selected_cats']++; + } // END - if + } // END - foreach + } // END - if // Enougth categories selected? + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isOkay='.intval($isOkay).',selected='.$GLOBALS['register_selected_cats'].'/'.getConfig('least_cats')); $isOkay = (($isOkay) && ($GLOBALS['register_selected_cats'] >= getConfig('least_cats'))); if ((postRequestParameter('email') != '!') && (getConfig('check_double_email') == 'Y')) { @@ -238,13 +239,16 @@ function isRegistrationDataComplete () { } // END - if // Check for IP timeout? + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isOkay='.intval($isOkay)); if ((!isAdmin()) && (getConfig('ip_timeout') > 0)) { // Check his IP number - $GLOBALS['registration_ip_timeout'] = (countSumTotalData(detectRemoteAddr() , 'user_data', 'userid', 'REMOTE_ADDR', true, " AND (`joined` > (UNIX_TIMESTAMP() - {?ip_timeout?}) OR `last_update` > (UNIX_TIMESTAMP() - {?ip_timeout?}))") == 1); - $isOkay = false; + $GLOBALS['registration_ip_timeout'] = (countSumTotalData(detectRemoteAddr() , 'user_data', 'userid', 'REMOTE_ADDR', true, " AND ((UNIX_TIMESTAMP() - `joined`) < {?ip_timeout?} OR (UNIX_TIMESTAMP() - `last_update`) < {?ip_timeout?}) LIMIT 1") == 1); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isOkay='.intval($isOkay).',timeout='.intval($GLOBALS['registration_ip_timeout'])); + $isOkay = (($isOkay) && (!$GLOBALS['registration_ip_timeout'])); } // END - if // Return result + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isOkay='.intval($isOkay)); return $isOkay; } @@ -254,24 +258,19 @@ function doRegistration () { if (strlen(postRequestParameter('day')) == 1) setPostRequestParameter('day' , '0' . postRequestParameter('day')); if (strlen(postRequestParameter('month')) == 1) setPostRequestParameter('month', '0' . postRequestParameter('month')); - // Get total ... - // ... confirmed, ... - $confirmedUsers = countSumTotalData('CONFIRMED' , 'user_data', 'userid', 'status', true); - // ... unconfirmed ... - $unconfirmedUsers = countSumTotalData('UNCONFIRMED', 'user_data', 'userid', 'status', true); - // ... and locked users! - $lockedUsers = countSumTotalData('LOCKED' , 'user_data', 'userid', 'status', true); - // Generate hash which will be inserted into confirmation mail $hash = generateHash(sha1( - $confirmedUsers . getConfig('ENCRYPT_SEPERATOR') . - $unconfirmedUsers . getConfig('ENCRYPT_SEPERATOR') . - $lockedUsers . getConfig('ENCRYPT_SEPERATOR') . + // Get total confirmed, ... + getTotalConfirmedUser() . getEncryptSeperator() . + // ... unconfirmed ... + getTotalUnconfirmedUser() . getEncryptSeperator() . + // ... and locked users! + getTotalLockedUser() . getEncryptSeperator() . postRequestParameter('month') . '-' . postRequestParameter('day') . '-' . - postRequestParameter('year') . getConfig('ENCRYPT_SEPERATOR') . - detectServerName() . getConfig('ENCRYPT_SEPERATOR') . - detectRemoteAddr() . getConfig('ENCRYPT_SEPERATOR') . + postRequestParameter('year') . getEncryptSeperator() . + detectServerName() . getEncryptSeperator() . + detectRemoteAddr() . getEncryptSeperator() . detectUserAgent() . '/' . getConfig('SITE_KEY') . '/' . getConfig('DATE_KEY') . '/' . @@ -288,28 +287,22 @@ function doRegistration () { $GLOBALS['register_sql_data'] = ''; if (isExtensionInstalledAndNewer('theme', '0.0.8')) { // Okay, add design here - $GLOBALS['register_sql_columns'] = ', `curr_theme`'; - $GLOBALS['register_sql_data'] = ", '" . getCurrentTheme() . "'"; + $GLOBALS['register_sql_columns'] .= ', `curr_theme`'; + $GLOBALS['register_sql_data'] .= ", '" . getCurrentTheme() . "'"; } // END - if // Check if I shall disable sending mail to newly registered members out about active/begging rallye // // First comes first: begging rallye - if (isExtensionInstalledAndNewer('beg', '0.1.7')) { - // Okay, shall I disable now? - if (getConfig('beg_new_mem_notify') != 'Y') { - $GLOBALS['register_sql_columns'] .= ', `beg_ral_notify`, `beg_ral_en_notify`'; - $GLOBALS['register_sql_data'] .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()'; - } // END - if + if (!isBegNewMemberNotifyEnabled()) { + $GLOBALS['register_sql_columns'] .= ', `beg_rallye_enable_notify`, `beg_rallye_disable_notify`'; + $GLOBALS['register_sql_data'] .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()'; } // END - if // Second: active rallye - if (isExtensionInstalledAndNewer('bonus', '0.7.7')) { - // Okay, shall I disable now? - if (getConfig('bonus_new_mem_notify') != 'Y') { - $GLOBALS['register_sql_columns'] .= ', `bonus_ral_notify`, `bonus_ral_en_notify`'; - $GLOBALS['register_sql_data'] .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()'; - } // END - if + if (!isBonusNewMemberNotifyEnabled()) { + $GLOBALS['register_sql_columns'] .= ', `bonus_rallye_enable_notify`, `bonus_rallye_disable_notify`'; + $GLOBALS['register_sql_data'] .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()'; } // END - if // Write user data to table @@ -319,12 +312,12 @@ function doRegistration () { $countryData = bigintval(postRequestParameter('country_code')); } // END - if - ////////////////////////////// - // Create user's account... // - ////////////////////////////// - // - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_data` (gender, surname, family, street_nr,%s, zip, city, email, birth_day, birth_month, birth_year, password, max_mails, receive_mails, refid, status, user_hash, REMOTE_ADDR, joined, last_update".$GLOBALS['register_sql_columns'].") -VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONFIRMED','%s','%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()".$GLOBALS['register_sql_data'].")", + // Create user's account... + SQL_QUERY_ESC("INSERT INTO + `{?_MYSQL_PREFIX?}_user_data` +(`gender`, `surname`, `family`, `street_nr`,%s, `zip`, `city`, `email`, `birth_day`, `birth_month`, `birth_year`, `password`, `max_mails`, `receive_mails`, `refid`, `status`, `user_hash`, `REMOTE_ADDR`, `joined`, `last_update`".$GLOBALS['register_sql_columns'].") + VALUES +('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONFIRMED','%s','%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()".$GLOBALS['register_sql_data'].")", array( $countryRow, substr(postRequestParameter('gender'), 0, 1), @@ -344,7 +337,7 @@ VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONF bigintval(postRequestParameter('refid')), $hash, detectRemoteAddr(), - ), __FILE__, __LINE__); + ), __FUNCTION__, __LINE__); // Get his userid $userid = bigintval(SQL_INSERTID()); @@ -352,7 +345,7 @@ VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONF // Did this work? if ($userid == '0') { // Something bad happened! - loadTemplate('admin_settings_saved', false, getMessage('USER_NOT_REGISTERED')); + loadTemplate('admin_settings_saved', false, '{--USER_NOT_REGISTERED--}'); // Stop here return; @@ -366,26 +359,8 @@ VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONF } // END - if // Write his welcome-points - // @TODO Rewrite this whole if() block to addPointsThroughReferalSystem(). This will also make following if() block obsolete // @TODO Wether the registration bonus should only be added to user directly or through referal system should be configurable - $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_points` WHERE `userid`=%s AND `ref_depth`=0 LIMIT 1", - array($userid), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == '0') { - // Add only when the line was not found (maybe some more secure?) - $locked = 'points'; - - // Pay him later. First he has to confirm some mails! - if (getConfig('ref_payout') > 0) $locked = 'locked_points'; - - SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_points` (`userid`, `ref_depth`, `%s`) VALUES (%s,0,'{?points_register?}')", - array($locked, $userid), __FILE__, __LINE__); - - // Update mediadata as well - if ((isExtensionInstalledAndNewer('mediadata', '0.0.4')) && ($locked == 'points')) { - // Update database - updateMediadataEntry(array('total_points'), 'add', getConfig('points_register')); - } // END - if - } // END - if + addPointsDirectly('register_welcome', $userid, getPointsRegister()); // Write catgories if ((is_array(postRequestParameter('cat'))) && (count(postRequestParameter('cat')))) { @@ -393,47 +368,47 @@ VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONF if ($joined == 'Y') { // Insert category entry SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_cats` (`userid`, `cat_id`) VALUES (%s, %s)", - array($userid, bigintval($cat)), __FILE__, __LINE__); + array($userid, bigintval($cat)), __FUNCTION__, __LINE__); } // END - if } // END - foreach } // END - if // ... rewrite a zero referal id to the main title - if (postRequestParameter('refid') == '0') setPostRequestParameter('refid', getConfig('MAIN_TITLE')); + if (!isValidUserId(postRequestParameter('refid'))) setPostRequestParameter('refid', getMainTitle()); // Is ZIP code set? if (isPostRequestParameterSet('zip')) { // Prepare data array for the email template // Start with the gender... $content = array( - 'hash' => $hash, - 'userid' => $userid, - 'gender' => translateGender(postRequestParameter('gender')), - 'surname' => SQL_ESCAPE(postRequestParameter('surname')), - 'family' => SQL_ESCAPE(postRequestParameter('family')), - 'email' => SQL_ESCAPE(postRequestParameter('email')), - 'street' => SQL_ESCAPE(postRequestParameter('street_nr')), - 'city' => SQL_ESCAPE(postRequestParameter('city')), - 'zip' => bigintval(postRequestParameter('zip')), - 'country' => $countryData, - 'refid' => SQL_ESCAPE(postRequestParameter('refid')), - 'pass' => SQL_ESCAPE(postRequestParameter('pass1')), + 'hash' => $hash, + 'userid' => $userid, + 'gender' => SQL_ESCAPE(postRequestParameter('gender')), + 'surname' => SQL_ESCAPE(postRequestParameter('surname')), + 'family' => SQL_ESCAPE(postRequestParameter('family')), + 'email' => SQL_ESCAPE(postRequestParameter('email')), + 'street' => SQL_ESCAPE(postRequestParameter('street_nr')), + 'city' => SQL_ESCAPE(postRequestParameter('city')), + 'zip' => bigintval(postRequestParameter('zip')), + 'country' => $countryData, + 'refid' => SQL_ESCAPE(postRequestParameter('refid')), + 'password' => SQL_ESCAPE(postRequestParameter('pass1')), ); } else { // No ZIP code entered $content = array( - 'hash' => $hash, - 'userid' => $userid, - 'gender' => translateGender(postRequestParameter('gender')), - 'surname' => SQL_ESCAPE(postRequestParameter('surname')), - 'family' => SQL_ESCAPE(postRequestParameter('family')), - 'email' => SQL_ESCAPE(postRequestParameter('email')), - 'street' => SQL_ESCAPE(postRequestParameter('street_nr')), - 'city' => SQL_ESCAPE(postRequestParameter('city')), - 'zip' => '', - 'country' => $countryData, - 'refid' => SQL_ESCAPE(postRequestParameter('refid')), - 'pass' => SQL_ESCAPE(postRequestParameter('pass1')), + 'hash' => $hash, + 'userid' => $userid, + 'gender' => SQL_ESCAPE(postRequestParameter('gender')), + 'surname' => SQL_ESCAPE(postRequestParameter('surname')), + 'family' => SQL_ESCAPE(postRequestParameter('family')), + 'email' => SQL_ESCAPE(postRequestParameter('email')), + 'street' => SQL_ESCAPE(postRequestParameter('street_nr')), + 'city' => SQL_ESCAPE(postRequestParameter('city')), + 'zip' => '', + 'country' => $countryData, + 'refid' => SQL_ESCAPE(postRequestParameter('refid')), + 'password' => SQL_ESCAPE(postRequestParameter('pass1')), ); } @@ -453,11 +428,11 @@ VALUES ('%s','%s','%s','%s','%s',%s,'%s','%s',%s, %s,%s,'%s',%s, %s,'%s','UNCONF // Send mail to user (confirmation link!) $email = $content['email']; - sendEmail($content['email'], getMessage('GUEST_SUBJECT_CONFIRM_LINK'), $messageGuest); + sendEmail($content['email'], '{--GUEST_CONFIRM_LINK_SUBJECT--}', $messageGuest); $content['email'] = $email; // Send mail to admin - sendAdminNotification(getMessage('ADMIN_SUBJECT_NEW_ACCOUNT'), 'register-admin', $content, $userid); + sendAdminNotification('{--ADMIN_NEW_ACCOUNT_SUBJECT--}', 'register-admin', $content, $userid); } // [EOF]