diff --git a/e107_files/shortcode/batch/signup_shortcodes.php b/e107_files/shortcode/batch/signup_shortcodes.php
index 1339b2a87..743800631 100755
--- a/e107_files/shortcode/batch/signup_shortcodes.php
+++ b/e107_files/shortcode/batch/signup_shortcodes.php
@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_files/shortcode/batch/signup_shortcodes.php,v $
-| $Revision: 1.7 $
-| $Date: 2007-07-30 20:25:24 $
+| $Revision: 1.8 $
+| $Date: 2007-10-11 19:46:29 $
| $Author: e107steved $
|
| Mods to show extended field categories
@@ -321,6 +321,18 @@ global $rs, $password1;
return $rs->form_password("password2xup", 30, $password2, 20);
SC_END
+SC_BEGIN SIGNUP_IS_MANDATORY
+global $pref;
+if (isset($parm))
+{
+ switch ($parm)
+ {
+ case 'email' : if (varset($pref['disable_emailcheck'],FALSE)) return '';
+ }
+}
+return " *";
+SC_END
+
*/
?>
\ No newline at end of file
diff --git a/e107_themes/templates/signup_template.php b/e107_themes/templates/signup_template.php
index e31aaf7b5..35401b5eb 100755
--- a/e107_themes/templates/signup_template.php
+++ b/e107_themes/templates/signup_template.php
@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_themes/templates/signup_template.php,v $
-| $Revision: 1.4 $
-| $Date: 2007-07-30 20:25:36 $
+| $Revision: 1.5 $
+| $Date: 2007-10-11 19:46:36 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
@@ -43,6 +43,9 @@ $sc_style['SIGNUP_REALNAME']['post'] = "
";
+$sc_style['SIGNUP_IS_MANDATORY']['pre'] = "";
+$sc_style['SIGNUP_IS_MANDATORY']['post'] = "";
+
if(!defined($USERCLASS_SUBSCRIBE_START))
{
@@ -279,14 +282,14 @@ $SIGNUP_BODY = "
-
+
-
+
diff --git a/signup.php b/signup.php
index f3c0b44d7..edbbb7a54 100644
--- a/signup.php
+++ b/signup.php
@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/signup.php,v $
-| $Revision: 1.10 $
-| $Date: 2007-06-28 19:38:03 $
+| $Revision: 1.11 $
+| $Date: 2007-10-11 19:46:29 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
@@ -177,7 +177,7 @@ if(!$_POST) // Notice Removal.
$text = " ";
$password1 = "";
$password2 = "";
- $email = "";
+ $email = ""; // Used in shortcodes
$loginname = "";
$realname = "";
$user_timezone = "";
@@ -329,7 +329,7 @@ if (isset($_POST['register']))
$e107cache->clear("online_menu_totals");
$error_message = "";
require_once(e_HANDLER."message_handler.php");
- if ($signup_imagecode && !$_POST['xupexist'] )
+ if (isset($_POST['rand_num']) && $signup_imagecode && !$_POST['xupexist'] )
{
if (!$sec_img->verify_code($_POST['rand_num'], $_POST['code_verify']))
{
@@ -385,18 +385,20 @@ if (isset($_POST['register']))
}
$_POST['loginname'] = $temp_name;
- if ($_POST['loginname'] == "Anonymous")
+ if (strcasecmp($_POST['loginname'],"Anonymous") == 0)
{
$error_message .= LAN_103."\\n";
$error = TRUE;
}
+
// Use LoginName for DisplayName if restricted **** MOVED FORWARD ****
if (!check_class($pref['displayname_class']))
{
$_POST['name'] = $_POST['loginname'];
}
+
// Impose a minimum length on display name
$_POST['name'] = trim($_POST['name']);
if (strlen($_POST['name']) < 2)
@@ -404,7 +406,7 @@ if (isset($_POST['register']))
$error_message .= LAN_SIGNUP_56."\\n";
$error = TRUE;
}
-
+
global $db_debug;
// Check for disallowed names.
if(varsettrue($pref['signup_disallow_text']))
@@ -432,14 +434,14 @@ global $db_debug;
$error_message .= LAN_SIGNUP_55."\\n";
$error = TRUE;
}
-
+
// Check if login name exceeds maximum allowed length
if (strlen($_POST['loginname']) > varset($pref['loginname_maxlength'],30))
{
$error_message .= LAN_SIGNUP_57."\\n";
$error = TRUE;
}
-
+
// Display Name exists.
if ($sql->db_Select("user", "*", "user_name='".$tp -> toDB($_POST['name'])."'"))
{
@@ -472,14 +474,22 @@ global $db_debug;
$password2 = "";
}
+
// Email address confirmation.
+ $email_address_OK = TRUE;
if ($_POST['email'] != $_POST['email_confirm'])
{
$error_message .= LAN_SIGNUP_38."\\n";
$error = TRUE;
$email = "";
$email_confirm = "";
+ $email_address_OK = FALSE;
}
+
+ // Always validate an email address if entered. If its blank, that's OK if checking disabled
+ $_POST['email'] = $tp->toDB(trim(varset($_POST['email'],'')));
+ $do_email_validate = !varset($pref['disable_emailcheck'],FALSE) || ($_POST['email'] !='');
+
// Password length check.
if (trim(strlen($_POST['password1'])) < $pref['signup_pass_len'])
@@ -497,8 +507,8 @@ global $db_debug;
$error = TRUE;
}
- // ========== Verify Custom Signup options if selected ========================
+ // ========== Verify Custom Signup options if selected ========================
$signup_option_title = array(LAN_308, LAN_120, LAN_121, LAN_122, LAN_SIGNUP_28);
$signup_option_names = array("realname", "signature", "image", "timezone", "class");
@@ -511,19 +521,74 @@ global $db_debug;
}
}
- // Check for Duplicate Email address.
- if ($sql->db_Select("user", "user_email, user_ban, user_sess", "user_email='".$tp -> toDB($_POST['email'])."' "))
+
+ //--------------------------------------
+ // Email address checks
+ //--------------------------------------
+ // Email syntax validation.
+ if ($do_email_validate && (!$_POST['email'] || !check_email($_POST['email'])))
{
- $chk = $sql -> db_Fetch();
- if($chk['user_ban']== 2 && $chk['user_sess']){
- // duplicate because unactivated
- $error = TRUE;
- header("Location: ".e_BASE."signup.php?resend");
- exit;
- }else{
- $error_message .= LAN_408."\\n";
- $error = TRUE;
- }
+ $error_message .= LAN_106."\\n";
+ $error = TRUE;
+ $email_address_OK = FALSE;
+ }
+
+ // Check Email against banlist.
+ $wc = $tp -> toDB("*".trim(substr($_POST['email'], strpos($_POST['email'], "@"))));
+ if ($do_email_validate && $sql->db_Select("banlist", "*", "banlist_ip='".$_POST['email']."' OR banlist_ip='{$wc}'"))
+ {
+ $email_address_OK = FALSE;
+ $brow = $sql -> db_Fetch();
+ $error = TRUE;
+ if($brow['banlist_reason'])
+ {
+ $repl = array("\n","\r","
");
+ $error_message = str_replace($repl,"\\n",$tp->toHTML($brow['banlist_reason'],"","nobreak, defs"))."\\n";
+ $email = "";
+ }
+ else
+ {
+ exit;
+ }
+ }
+
+ // Check email address on remote server (if enabled) - but only if previous checks passed.
+ if ($do_email_validate && $email_address_OK && varsettrue($pref['signup_remote_emailcheck']) && $error != TRUE)
+ {
+ require_once(e_HANDLER."mail_validation_class.php");
+ list($adminuser,$adminhost) = split ("@", SITEADMINEMAIL);
+ $validator = new email_validation_class;
+ $validator->localuser= $adminuser;
+ $validator->localhost= $adminhost;
+ $validator->timeout=3;
+ // $validator->debug=1;
+ // $validator->html_debug=1;
+ if($validator->ValidateEmailBox(trim($_POST['email'])) != 1)
+ {
+ $email_address_OK = FALSE;
+ $error_message .= LAN_106."\\n";
+ $error = TRUE;
+ $email = "";
+ $email_confirm = "";
+ }
+ }
+
+ // Check for Duplicate Email address - but only if previous checks passed.
+ if ($do_email_validate && $email_address_OK && $sql->db_Select("user", "user_email, user_ban, user_sess", "user_email='".$_POST['email']."' "))
+ {
+ $chk = $sql -> db_Fetch();
+ if($chk['user_ban']== 2 && $chk['user_sess'])
+ { // duplicate because unactivated
+ $error = TRUE;
+ header("Location: ".e_BASE."signup.php?resend");
+ exit;
+ }
+ else
+ {
+ $email_address_OK = FALSE;
+ $error_message .= LAN_408."\\n";
+ $error = TRUE;
+ }
}
// Extended Field validation
@@ -533,7 +598,6 @@ global $db_debug;
{
if(isset($_POST['ue']['user_'.$ext['user_extended_struct_name']]))
{
-
$newval = trim($_POST['ue']['user_'.$ext['user_extended_struct_name']]);
if($ext['user_extended_struct_required'] == 1 && $newval == "" )
{
@@ -563,56 +627,10 @@ global $db_debug;
}
}
- // Email syntax validation.
- if (!check_email($_POST['email']))
- {
- message_handler("P_ALERT", LAN_106);
- $error_message .= LAN_106."\\n";
- $error = TRUE;
- }
-
- // Check Email against banlist.
- $wc = $tp -> toDB("*".trim(substr($_POST['email'], strpos($_POST['email'], "@"))));
- if ($sql->db_Select("banlist", "*", "banlist_ip='".$tp -> toDB($_POST['email'])."' OR banlist_ip='{$wc}'"))
- {
- $brow = $sql -> db_Fetch();
- $error = TRUE;
- if($brow['banlist_reason'])
- {
- $repl = array("\n","\r","
");
- $error_message = str_replace($repl,"\\n",$tp->toHTML($brow['banlist_reason'],"","nobreak, defs"))."\\n";
- $email = "";
- }
- else
- {
- exit;
- }
- }
-
- // Check email address on remote server (if enabled).
- if (varsettrue($pref['signup_remote_emailcheck']) && $error != TRUE)
- {
- require_once(e_HANDLER."mail_validation_class.php");
- list($adminuser,$adminhost) = split ("@", SITEADMINEMAIL);
- $validator = new email_validation_class;
- $validator->localuser= $adminuser;
- $validator->localhost= $adminhost;
- $validator->timeout=3;
- // $validator->debug=1;
- // $validator->html_debug=1;
- if($validator->ValidateEmailBox(trim($_POST['email'])) != 1)
- {
- $error_message .= LAN_106."\\n";
- $error = TRUE;
- $email = "";
- $email_confirm = "";
- }
-
- }
if($error_message)
{
- message_handler("P_ALERT", $error_message);
+ message_handler("P_ALERT", $error_message);
}
// ========== End of verification.. ====================================================
@@ -626,8 +644,9 @@ global $db_debug;
exit;
}
- if ($sql->db_Select("user", "*", "user_email='".$tp -> toDB($_POST['email'])."' AND user_ban='1'")) {
- exit;
+ if ($_POST['email'] && $sql->db_Select("user", "*", "user_email='".$_POST['email']."' AND user_ban='1'"))
+ {
+ exit;
}
$username = $tp -> toDB(strip_tags($_POST['name']));
@@ -645,7 +664,7 @@ global $db_debug;
}
$u_key = md5(uniqid(rand(), 1));
- $nid = $sql->db_Insert("user", "0, '{$username}', '{$loginname}', '', '".md5($_POST['password1'])."', '{$u_key}', '".$tp -> toDB($_POST['email'])."', '".$tp -> toDB($_POST['signature'])."', '".$tp -> toDB($_POST['image'])."', '".$tp -> toDB($_POST['timezone'])."', '".$tp -> toDB($_POST['hideemail'])."', '".$time."', '0', '".$time."', '0', '0', '0', '0', '".$ip."', '2', '0', '', '', '0', '0', '".$tp -> toDB($_POST['realname'])."', '', '', '', '0', '".$tp -> toDB($_POST['xupexist'])."' ");
+ $nid = $sql->db_Insert("user", "0, '{$username}', '{$loginname}', '', '".md5($_POST['password1'])."', '{$u_key}', '".$_POST['email']."', '".$tp -> toDB($_POST['signature'])."', '".$tp -> toDB($_POST['image'])."', '".$tp -> toDB($_POST['timezone'])."', '".$tp -> toDB($_POST['hideemail'])."', '".$time."', '0', '".$time."', '0', '0', '0', '0', '".$ip."', '2', '0', '', '', '0', '0', '".$tp -> toDB($_POST['realname'])."', '', '', '', '0', '".$tp -> toDB($_POST['xupexist'])."' ");
if(!$nid)
{
require_once(HEADERF);
@@ -653,6 +672,7 @@ global $db_debug;
require_once(FOOTERF);
}
+
if ($pref['user_reg_veri'])
{
// ==== Update Userclass =======>
@@ -675,7 +695,7 @@ global $db_debug;
// ========== Send Email =========>
- if ($pref['user_reg_veri'] != 2)
+ if (($pref['user_reg_veri'] != 2) && $_POST['email']) // Don't send if email address blank - means that its not compulsory
{
$eml = render_email();
$mailheader_e107id = $eml['userid'];
@@ -689,6 +709,7 @@ global $db_debug;
}
$_POST['ip'] = $ip;
+ $_POST['user_id'] = $nid;
$e_event->trigger("usersup", $_POST); // send everything in the template, including extended fields.
require_once(HEADERF);
@@ -745,6 +766,7 @@ global $db_debug;
// ==========================================================
$_POST['ip'] = $ip;
+ $_POST['user_id'] = $nid;
$e_event->trigger("usersup", $_POST); // send everything in the template, including extended fields.
if($pref['signup_text_after'])
@@ -778,11 +800,11 @@ if (!$website)
$website = "http://";
}
-if (strpos(LAN_109, "stage") === FALSE)
+if ($qs == 'stage1' && $pref['use_coppa'] == 1)
{
- if (isset($_POST['newver']))
+ if(isset($_POST['newver']))
{
- if (!$_POST['coppa'])
+ if(!varsettrue($_POST['coppa']))
{
$text = $tp->parseTemplate($COPPA_FAIL);
$ns->tablerender(LAN_110, $text);
@@ -790,6 +812,11 @@ if (strpos(LAN_109, "stage") === FALSE)
exit;
}
}
+ else
+ {
+ header('Location: '.e_BASE.'signup.php');
+ exit;
+ }
}
require_once(e_HANDLER."form_handler.php");