vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Template Modifications (https://vborg.vbsupport.ru/forumdisplay.php?f=246)
-   -   Board Optimization - Registration Optimization | vBsocial.com | (https://vborg.vbsupport.ru/showthread.php?t=254438)

daveaite 04-12-2011 08:10 PM

As far as I know this works on ALL VERSIONS OF 4.X and possibly earlier versions. I have been upgrading my vBulletin live sites with this modification and registration still works. I believe it also increases registrations tremendously. I've been getting anywhere between 30-60 registers a day.

Also it does include facebook connect and image verifcation ( even though the spam bots have beaten these)

daveaite 04-12-2011 08:14 PM

Updated before and after images

venom2124 04-28-2011 03:28 AM

Quote:

Originally Posted by Antidepresiv (Post 2147313)
I think this can only help increase the registration of spam bots, since google recaptcha is cracked and useless, and this mod eliminates any usage of custom profile fields, they just don't display, or show up anywhere, so you are open for spam.. I would like if they were included, in this "optimized registration"..

Best Regards,
Antidepresiv

Totally agree that your registration numbers will go up, but at what cost. If all you are getting is spammers whats the point of making it easier for them to get on your board. Once they are on your board it could cause the real members to shy away since they don't want to deal with the spam.

Wayne Luke 04-30-2011 01:25 AM

Quote:

Originally Posted by Antidepresiv (Post 2147313)
I think this can only help increase the registration of spam bots, since google recaptcha is cracked and useless, and this mod eliminates any usage of custom profile fields, they just don't display, or show up anywhere, so you are open for spam.. I would like if they were included, in this "optimized registration"..

Best Regards,
Antidepresiv

Captcha is dead and should have been considered a temporary solution at best. Pre-emptive scanning and filtering which doesn't require or allow input from the user is the way to control them. Sure some will get through but as they get reported, the filtering will only get stronger.

I suggest using this addon: https://vborg.vbsupport.ru/showthread.php?t=248042

Combine that with this registration form and your normal users will be a lot more at ease. You won't have to overwhelm them with a lot extraneous questions.

WxP 05-02-2011 11:17 PM

A required field called Gener is missing or has an invalid value.
You have entered an invalid birthday.

just.b.jealous 06-09-2011 02:06 PM

Added referral section and scroll box for forum rules. Works on vB 4.1.3.

http://img841.imageshack.us/img841/5125/registers.jpg

Replace the "register" template with the following:

Code:

{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml"<vb:if condition="$vboptions['enablefacebookconnect']"> xmlns:fb="http://www.facebook.com/2008/fbml"</vb:if> dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}">
<head>
        {vb:raw headinclude}

        {vb:cssfile register.css}
        <title><vb:if condition="$show['coppa']">{vb:rawphrase coppa} </vb:if>{vb:rawphrase register_at_x, {vb:raw vboptions.bbtitle}}</title>
{vb:raw headinclude_bottom}
</head>
<body>

{vb:raw header}
{vb:raw navbar}

<div id="pagetitle">
        <h1>{vb:rawphrase vbulletin_registration}</h1>
        <vb:if condition="$vboptions['usecoppa']"><p class="description">{vb:rawphrase step_2_of_2}</p></vb:if>
</div>

<script type="text/javascript" src="clientscript/vbulletin_md5.js?v={vb:raw vboptions.simpleversion}"></script>
<script type="text/javascript">
function verify_passwords(password1, password2)
{
        // do various checks, this will save people noticing mistakes on next page
        if (password1.value == '' || password2.value == '')
        {
                alert('{vb:rawphrase fill_out_both_password_fields}');
                return false;
        }
        else if (password1.value != password2.value)
        {
                alert('{vb:rawphrase entered_passwords_do_not_match}');
                return false;
        }
        else
        {
                <vb:if condition="$show['coppa']">
                pass_copy = password1.value;
                passconfirm_copy = password2.value;
                </vb:if>

                var junk_output;

                md5hash(password1, document.forms.register.password_md5, junk_output, {vb:raw show.nopasswordempty});
                md5hash(password2, document.forms.register.passwordconfirm_md5, junk_output, {vb:raw show.nopasswordempty});

                <vb:if condition="$show['coppa']">
                document.forms.register.password.value = pass_copy;
                document.forms.register.passwordconfirm.value = passconfirm_copy;
                </vb:if>

                return true;
        }
        return false;
}
</script>

<form id="registerform" action="register.php?do=addmember" name="register" method="post" onsubmit="return verify_passwords(password, passwordconfirm);" class="vbform block">

        <vb:if condition="$show['errors']">
                <h2 class="blockhead">{vb:rawphrase errors_occurred_during_registration}</h2>
                <div class="blockbody">
                        <ul class="blockrow">
                                {vb:raw errorlist}
                        </ul>
                </div>
        </vb:if>

        <h2 class="blockhead">{vb:rawphrase register_at_x, {vb:raw vboptions.bbtitle}}</h2>
        <div class="blockbody formcontrols">
               
                <vb:if condition="$show['coppa']">
                        <div class="blockrow">{vb:rawphrase until_receive_signed_form}</div>
                </vb:if>

                <vb:if condition="$vboptions['enablefacebookconnect']">
                        <h3 class="blocksubhead">{vb:rawphrase facebook_connect}</h3>
                        <div class="section">
                                <div id="fbregbox" class="blockrow hidden">
                                <vb:if condition="$show['facebookuser']">
                                        <a href="{vb:raw fbprofileurl}">
                                                <img src="{vb:raw fbprofilepicurl}" title="{vb:var fbname}" alt="{vb:var fbname}" />
                                        </a>
                                        {vb:rawphrase welcome_x_link_y, {vb:var fbname}, {vb:raw fbprofileurl}}
                                        <a style="cursor: pointer" onclick="vBfb.register_logout();"><img src="{vb:stylevar imgdir_misc}/facebook_logout.gif" alt="{vb:rawphrase logout_of_facebook}"/></a>
                                <vb:else />
                                        <a id="fb_regloginbtn" href="#"><img src="{vb:stylevar imgdir_misc}/facebook_login_long.gif" alt="{vb:rawphrase facebook_connect}"></a>
                                </vb:if>
                                </div>
                       
                        <vb:if condition="$show['facebookuser']">
                                <div class="blockrow">
                                        <label for="facebookusername">{vb:rawphrase already_a_member}</label>
                                        <div class="rightcol">
                                                <input type="text" class="textbox" name="facebookusername" id="facebookusername" maxlength="50" tabindex="1" value="{vb:rawphrase username}" />
                                                <input type="text" class="textbox" name="facebookpassword_hint" id="facebookpassword_hint" maxlength="50" tabindex="1" value="{vb:rawphrase password}" />
                                                <input type="password" class="textbox" name="facebookpassword" id="facebookpassword" maxlength="50" tabindex="1" style="display: none;" />
                                                <input type="button" class="button" name="facebookassociate" id="facebookassociate" value="{vb:rawphrase log_in}" tabindex="1" />
                                                <p class="description">{vb:rawphrase associate_facebook_with_x_account, {vb:raw vboptions.bbtitle}}</p>
                                                <script type="text/javascript">
                                                YAHOO.util.Dom.setStyle('facebookpassword_hint', "display", "inline");
                                                YAHOO.util.Dom.setStyle('facebookpassword', "display", "none");
                                                YAHOO.util.Dom.setStyle('facebookusername', "color", "#828282");
                                                YAHOO.util.Dom.setStyle('facebookpassword_hint', "color", "#828282");
                                                vB_XHTML_Ready.subscribe(function()
                                                {
                                                //
                                                        YAHOO.util.Event.on('facebookusername', "focus", facebookusername_focus);
                                                        YAHOO.util.Event.on('facebookusername', "blur", facebookusername_blur);
                                                        YAHOO.util.Event.on('facebookpassword_hint', "focus", facebookpassword_hint);
                                                        YAHOO.util.Event.on('facebookpassword', "blur", facebookpassword);
                                                });

                                                function facebookusername_focus(e)
                                                {
                                                //
                                                        var textbox = YAHOO.util.Event.getTarget(e);
                                                        if (textbox.value == '{vb:rawphrase username}')
                                                        {
                                                        //
                                                                textbox.value='';
                                                                textbox.style.color='black';
                                                        }
                                                }

                                                function facebookusername_blur(e)
                                                {
                                                //
                                                        var textbox = YAHOO.util.Event.getTarget(e);
                                                        if (textbox.value == '')
                                                        {
                                                        //
                                                                textbox.value='{vb:rawphrase username}';
                                                                textbox.style.color='#828282';
                                                        }
                                                }

                                                function facebookpassword_hint(e)
                                                {
                                                //
                                                        var textbox = YAHOO.util.Event.getTarget(e);

                                                        YAHOO.util.Dom.setStyle('facebookpassword_hint', "display", "none");
                                                        YAHOO.util.Dom.setStyle('facebookpassword', "display", "inline");
                                                        YAHOO.util.Dom.get('facebookpassword').focus();
                                                }

                                                function facebookpassword(e)
                                                {
                                                //
                                                        var textbox = YAHOO.util.Event.getTarget(e);

                                                        if (textbox.value == '')
                                                        {
                                                                YAHOO.util.Dom.setStyle('facebookpassword_hint', "display", "inline");
                                                                YAHOO.util.Dom.setStyle('facebookpassword', "display", "none");
                                                        }
                                                }
                                                </script>
                                        </div>
                                </div>
                        </vb:if>
                        </div>
                       
                        {vb:raw fbimportform}
                </vb:if>

                <h3 class="blocksubhead">{vb:rawphrase required_information}</h3>

                <div class="section">
                        <div class="blockrow">
                                <label for="regusername">{vb:rawphrase username}:</label>
                                <div class="rightcol">
                                        <input class="primary textbox" id="regusername" type="text" name="username" maxlength="{vb:raw vboptions.maxuserlength}" value="{vb:raw username}" tabindex="1" />
                                        <!--<img src="{vb:raw vboptions.cleargifurl}" id="reg_verif_image" alt="" />-->
                                        <div id="reg_verif_div" class="primary" style="display:none;"></div>
                                        <script type="text/javascript" src="clientscript/vbulletin_ajax_nameverif.js?v={vb:raw vboptions.simpleversion}"></script>
                                        <script type="text/javascript">
                                        <!--
                                                regname_verif = new vB_AJAX_NameVerify('regname_verif', 'regusername');
                                        //-->
                                        </script>
                                        <p class="description">{vb:rawphrase enter_your_username}</p>
                                </div>
                        </div>

                        <div class="blockrow">
                                <ul class="group">
                                        <li>
                                                <label for="password">{vb:rawphrase password}:</label>
                                                <input type="password" class="textbox" name="password" id="password" maxlength="50" value="{vb:raw password}" tabindex="1" />
                                        </li>
                                        <li>
                                                <label for="passwordconfirm">{vb:rawphrase confirm_password}:</label>
                                                <input type="password" class="textbox" name="passwordconfirm" id="passwordconfirm" maxlength="50" value="{vb:raw passwordconfirm}" tabindex="1" />
                                        </li>
                                </ul>
                                <p class="description">{vb:rawphrase enter_password_for_account}</p>
                        </div>

                        <div class="blockrow">
                                <ul class="group">
                                        <li>
                                                <label for="email">{vb:rawphrase email_address}:</label>
                                                <input type="text" class="textbox" name="email" id="email" maxlength="50" value="{vb:raw email}" dir="ltr" tabindex="1" />
                                        </li>
                                        <li>
                                                <label for="emailconfirm">{vb:rawphrase confirm_email_address}:</label>
                                                <input type="text" class="textbox" name="emailconfirm" id="emailconfirm" maxlength="50" value="{vb:raw emailconfirm}" dir="ltr" tabindex="1" />
                                        </li>
                                </ul>
                                <p class="description">{vb:rawphrase enter_valid_email_address}</p>
                        </div>

                        <vb:if condition="$show['coppa']">
                        <div class="blockrow">
                                <label for="parentemail">{vb:rawphrase parent_guardian_email}:</label>
                                <input type="text" class="primary textbox" name="parentemail" id="parentemail" maxlength="50" value="{vb:raw parentemail}" dir="ltr" tabindex="1" />
                        </div>
                        </vb:if>

                        {vb:raw human_verify}
                       

        <vb:if condition="$show['referrer']">
                        <div class="blockrow">
                                <label for="referrerfield_ctrl">{vb:rawphrase referrer}:</label>
                                <div class="rightcol">
                                        <div id="referrerfield" class="popupmenu nomouseover noclick nohovermenu">
                                                <input id="referrerfield_ctrl" type="text" class="primary textbox popupctrl" name="referrername" value="{vb:raw referrername}" tabindex="1" maxlength="{vb:raw vboptions.maxuserlength}" />
                                                <div id="referrerfield_body" class="popupbody"></div>
                                        </div>
                                        <script type="text/javascript" src="clientscript/vbulletin_ajax_suggest.js?v={vb:raw vboptions.simpleversion}"></script>
                                        <script type="text/javascript">
                                        <!--
                                                rnc = new vB_AJAX_NameSuggest('rnc', 'referrerfield_ctrl', 'referrerfield');
                                                rnc.allow_multiple = false;
                                        //-->
                                        </script>                       
                                </div>
                        </div>
                        </vb:if>
                </div>
        <div class="blockbody formcontrols">
                <div class="section">
                        <div class="blockrow">
                                <p class="label">{vb:rawphrase to_proceed_must_agree}</p>
                                <div id="forumrules" class="restore">
                                        <vb:if condition="$show['coppa']">
                                                <vb:comment> coppa regulations </vb:comment>
                                                {vb:rawphrase coppa_rules_description, {vb:raw vboptions.bbtitle}, {vb:link forumhome|bburl}, {vb:raw session.sessionurl}, {vb:raw vboptions.webmasteremail}}
                                                <vb:comment> / coppa regulations</vb:comment>
                                        </vb:if>
                       
                                        <vb:comment> regular forum rules </vb:comment>
                                        {vb:rawphrase forum_rules_registration, {vb:raw vboptions.forumhome}, {vb:raw session.sessionurl_q}}
                                        {vb:rawphrase forum_rules_description, {vb:raw vboptions.bbtitle}}
                                        <vb:comment> regular forum rules </vb:comment>
                                </div>
                        </div>
                        <div class="blockrow singlecheck">
                                <label for="cb_rules_agree" class="full"><input type="checkbox" name="agree" id="cb_rules_agree" tabindex="1" value="1" /> <strong>{vb:rawphrase read_agree_abide_by_rules, {vb:raw vboptions.bbtitle}}</strong></label>
                        </div>
                </div>
        </div>

        <div class="blockfoot actionbuttons">
                <div class="group">
                        <input type="hidden" name="s" value="{vb:raw session.sessionhash}" />
                        <input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" />
                        <input type="hidden" name="do" value="addmember" />
                        <input type="hidden" name="url" value="{vb:raw url}" />
                        <input type="hidden" name="password_md5" />
                        <input type="hidden" name="passwordconfirm_md5" />
                        <vb:if condition="!$show['birthday']">
                                <input type="hidden" name="day" value="{vb:raw day}" />
                                <input type="hidden" name="month" value="{vb:raw month}" />
                                <input type="hidden" name="year" value="{vb:raw year}" />
                        </vb:if>
                        <vb:if condition="$show['coppa']">
                                <input type="hidden" name="coppauser" value="1" />
                        </vb:if>
                        <input type="submit" class="button" value="{vb:rawphrase complete_registration}" tabindex="1" accesskey="s" />
                        <input type="reset" class="button" name="Reset" tabindex="1" value="{vb:rawphrase reset_fields}" />
                </div>
        </div>

</form>

{vb:raw footer}

</body>
</html>


just.b.jealous 06-10-2011 02:14 AM

Quote:

Originally Posted by Antidepresiv (Post 2139402)
Can this mode be used combined with email verification code ? Thanks!

What do you mean? I don't quite get it..

Quote:

Originally Posted by sticky (Post 2139935)
Great mod but can we get the birth date on the same page as the options to speed it all up and make it a 1 page process?

Yes and no, the information for the birthday page is stored in a different template, register_verify_age, and not the register template. Then it submits to a form to check your age and forward if everything is OK. Could be accomplished but would take time.


Quote:

Quote:

Originally Posted by lycheepassion (Post 2143416)
I dont think this was good everyone is breaking the rulesnow! How do I find the original file?

Quote:

Originally Posted by lycheepassion (Post 2143419)
Is it the register.php file for the original I want to revert? Thanx


I changed the code a bit and added the rules in a scroll box above the check mark. See one of my previous post in this thread.

Quote:

Originally Posted by Antidepresiv (Post 2147313)
since google recaptcha is cracked and useless, and this mod eliminates any usage of custom profile fields, they just don't display, or show up anywhere, so you are open for spam.. I would like if they were included, in this "optimized registration"..

Best Regards,
Antidepresiv

Recaptcha.. provide your own images & questions, change them occasionally. Add isbot, (it's for vB3 but works on 4 with a few changes- look towards the end of their thread.), to your forum and you'll never get a spambot. Maybe a real person who takes the time to register and spam (people do get paid to do it), but as for bots- you'll get none.

Eliminates the usage of custom profile fields? Well that depends, if its a profile field you're requiring on the register page then yeah, but if it's just some other field then nothing should go wrong. If it is a field you're trying to require for registering- that's a simple fix. Need some help, let me know.

daveaite 07-16-2011 05:09 AM

Thanks

cloferba 07-20-2011 12:14 AM

why you add the section "already a member"?

if you enter to register.php you are not a member... i think those 2 boxs are innecesary

mikeinjersey 07-20-2011 12:24 AM

For people complaining about the spambots, I used the original code daveaite provided, and still had my simple spambot protection intact.

I used

Settings > Human Verification Manager > Question and Answer

made it something simple like "What is 5 + 5?"

After implementing his Registration code, it was still intact and functional along with his fields.

So maybe this is a better alternative for others.

very simple to setup.

Along with Spam-O-Matic plugin, it's almost bulletproof. :-)

nice job , Daveaite


All times are GMT. The time now is 11:57 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01311 seconds
  • Memory Usage 1,865KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (8)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete