custom profile mod
if you add new field as necessary in registrattion from
this lets send it , if it blank or not
BUG SOLVED - Custom Profile Mod
Subject: Re: custom profile mod
So necessary fields are not necessary at the moment... :roll:
I'll check.
I'll check.
Subject: Re: custom profile mod
Last edited by moreteavicar on Sun 24 Sep, 2006 20:03; edited 1 time in total
I have noticed the same problem recently - people are able to register without filling in added custom fields that have been marked as required... but as I'm using 059rc3 now, I didn't know if it was specific to that, or to 058 or earlier XS as well...
*Edit* As I recall, it used to work well in 049... Ah yes, those were the days...
It used to work fine,
in XS version 049:
as I recall,
no problem at all...
Its only now that it behaves like a swine!
*Edit* As I recall, it used to work well in 049... Ah yes, those were the days...
It used to work fine,
in XS version 049:
as I recall,
no problem at all...
Its only now that it behaves like a swine!
Last edited by moreteavicar on Sun 24 Sep, 2006 20:03; edited 1 time in total
Subject: Re: custom profile mod
It used to work fine,
in XS version 049:
as I recall,
no problem at all...
Since 058 it behaves like a swine!
in XS version 049:
as I recall,
no problem at all...
Since 058 it behaves like a swine!
Subject: Re: BUG -custom profile mod
I think that in 049 this bug was there too... :wink:
Anyway, I still have to check this... please wait a little bit more! :mrg:
moreteavicar wrote: [View Post]
I think that in 049 this bug was there too... :wink:
Anyway, I still have to check this... please wait a little bit more! :mrg:
Subject: Re: BUG -Custom Profile Mod
I had this working in 049 - it never accepted a registration/profile change without the field being completed!
I keep meaning to look into this myself... but like you I've been too busy ;)
I keep meaning to look into this myself... but like you I've been too busy ;)
Subject: Re: BUG -Custom Profile Mod
Update - I see this problem on sites where XS has been upgraded. It works fine on a fresh install of any version...
Subject: Re: BUG -Custom Profile Mod
This is strange... :roll:
Anyway, when I have some free time, I'll test it. It is in my To Do List.
moreteavicar wrote: [View Post]
This is strange... :roll:
Anyway, when I have some free time, I'll test it. It is in my To Do List.
Subject: Re: Custom Profile Mod
This problem seems to have mutated... users are forced to enter a required custom profile field, but it doesn't go into the database. There are no SQL errors displayed though!
Subject: Re: Custom Profile Mod
OK, found the problem. Custom Profile fields isn't completely installed... There are no SQL errors, because there are no SQL instructions :LOL:
You need to do this:
#
#-----[ OPEN ]--------------------
#
includes/usercp_register.php
#
#-----[ FIND (around line 1125)]----------------------
#
#
#-----[ AFTER, ADD ]--------------------
#
With this added, any new registrations will see the profile field being saved to SQL. It is clear to see why this mod didn't work properly - the above code belongs within an else statement that begins around line 1027. And low and behold this else is the "else" to: if ( $mode == 'editprofile' ) around line 854 - in otherwords, when somebody wants to register, there was no code there to save the fields to the database!
You need to do this:
#
#-----[ OPEN ]--------------------
#
includes/usercp_register.php
#
#-----[ FIND (around line 1125)]----------------------
#
if( !($result = $db->sql_query($sql, END_TRANSACTION)) )
{
message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql);
}
{
message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql);
}
#
#-----[ AFTER, ADD ]--------------------
#
//
// Custom Profile Fields MOD
//
$profile_data = get_fields('WHERE users_can_view = '.ALLOW_VIEW);
$profile_names = array();
$semaphore = 0;
$sql2 = "UPDATE " . USERS_TABLE . "
SET ";
foreach($profile_data as $fields)
{
$name = text_to_column($fields['field_name']);
$type = $fields['field_type'];
$required = $fields['is_required'] == REQUIRED ? true : false;
if(isset($HTTP_POST_VARS[$name]))
{
$temp = (isset($HTTP_POST_VARS[$name])) ? $HTTP_POST_VARS[$name] : array();
if($type == CHECKBOX)
{
$temp2 = '';
foreach($temp as $temp3)
$temp2 .= htmlspecialchars($temp3) . ',';
$temp2 = substr($temp2,0,strlen($temp2)-1);
$temp = $temp2;
}
else
$temp = htmlspecialchars($temp);
$profile_names[$name] = $temp;
$sql2 .= $name . " = '".str_replace("'","''",$profile_names[$name])."', ";
}
$semaphore++;
}
$sql2 = substr($sql2,0,strlen($sql2)-2)."
WHERE user_id = ".$user_id;
if(!$db->sql_query($sql2) && ($semaphore))
message_die(GENERAL_ERROR,'Could not update custom profile fields','',__LINE__,__FILE__,$sql2);
//
// END Custom Profile Fields MOD
//
// Custom Profile Fields MOD
//
$profile_data = get_fields('WHERE users_can_view = '.ALLOW_VIEW);
$profile_names = array();
$semaphore = 0;
$sql2 = "UPDATE " . USERS_TABLE . "
SET ";
foreach($profile_data as $fields)
{
$name = text_to_column($fields['field_name']);
$type = $fields['field_type'];
$required = $fields['is_required'] == REQUIRED ? true : false;
if(isset($HTTP_POST_VARS[$name]))
{
$temp = (isset($HTTP_POST_VARS[$name])) ? $HTTP_POST_VARS[$name] : array();
if($type == CHECKBOX)
{
$temp2 = '';
foreach($temp as $temp3)
$temp2 .= htmlspecialchars($temp3) . ',';
$temp2 = substr($temp2,0,strlen($temp2)-1);
$temp = $temp2;
}
else
$temp = htmlspecialchars($temp);
$profile_names[$name] = $temp;
$sql2 .= $name . " = '".str_replace("'","''",$profile_names[$name])."', ";
}
$semaphore++;
}
$sql2 = substr($sql2,0,strlen($sql2)-2)."
WHERE user_id = ".$user_id;
if(!$db->sql_query($sql2) && ($semaphore))
message_die(GENERAL_ERROR,'Could not update custom profile fields','',__LINE__,__FILE__,$sql2);
//
// END Custom Profile Fields MOD
//
With this added, any new registrations will see the profile field being saved to SQL. It is clear to see why this mod didn't work properly - the above code belongs within an else statement that begins around line 1027. And low and behold this else is the "else" to: if ( $mode == 'editprofile' ) around line 854 - in otherwords, when somebody wants to register, there was no code there to save the fields to the database!
Subject: Re: Custom Profile Mod
Thanks Zucker ;)
For the thread - I forgot to mention - I take back what I said earlier about it working on 049 - back then I didn't realise that it wasn't sending data to SQL because there weren't any new people registering on my site at the time - people were only updating the custom fields by editing their profiles! Only recently have I been getting a lot of new registrations, and none of the required profile fields data were being stored! However, since adding the above, I've had some new registrations, and the data was stored in SQL as intended. :D
For the thread - I forgot to mention - I take back what I said earlier about it working on 049 - back then I didn't realise that it wasn't sending data to SQL because there weren't any new people registering on my site at the time - people were only updating the custom fields by editing their profiles! Only recently have I been getting a lot of new registrations, and none of the required profile fields data were being stored! However, since adding the above, I've had some new registrations, and the data was stored in SQL as intended. :D
Page 1 of 2
You cannot post new topicsYou cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events
This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by Icy Phoenix based on phpBB
Generation Time: 0.1684s (PHP: 12% SQL: 88%)
SQL queries: 10 - Debug Off - GZIP Enabled