vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=33)
-   -   AJAX: check if username exists on registration in realtime (https://vborg.vbsupport.ru/showthread.php?t=81531)

MrNase 05-14-2005 10:00 PM

AJAX: check if username exists on registration in realtime
 
It will be ported to vB 3.5 :)

The instructions are up-to-date (see post #8 for more information).


Hello there!

vB 3.5 is using AJAX for inline moderation and stuff like that. Pretty neat and why should we wait for something like this? :devious:

What does this hack do?

In the registration page it checks if the username the user has entered already exists. If this is true he will get a message instantly telling me to change the desired name. The submit button will also be disabled so that he can't finish the registration unless he has chosen another username which is not yet taken.


Features:
* can be turned off or on via the AdminCP
* uses the vB phrases and can easily be translated
* the user gets the error message without reloading the page
* he/she can't complete the registration if the username is taken


Do I need to be an expert to install this hack?
No, not really.. You have to upload two files, edit one file, edit one template and add some custom CSS. Besides this there are 4 queries you need to run (see the point 'Warning:' for more information). Should be pretty easy and I'll support you as good as I can.


Demo:
You may take this for a test drive at my forums but please don't complete the registration unless you want to join my german community ;)
http://www.pagodentreff.de/diskussio...m/register.php
Just use 'dominik.h' as a username and see what happens.


Problems?
Is the new phrase not showing up? Read this: https://vborg.vbsupport.ru/showpost....5&postcount=19



Warning:
This hack doesn't have an automatic installer. However you need to run 4 different queries for this hack to work. Those queries are for the settings in your AdminCP and for the phrases only. This hack won't affect your performance :)
If you feel uncomfortable with running queries you may drop me a private message and I'll see what I can do for you.


I will support this hack as good as I can but please keep your questions within this thread.

Please don't forget to click install because you get an update notification and other nice things ;)

The screenshot is taken from my translated version.

This hack wouldn't be possible without the following article and the code: http://www.xml.com/pub/a/2005/02/09/...p-request.html

Princeton 05-15-2005 06:32 PM

it looks great! I'm gonna try this out. :D

nexialys 05-15-2005 06:47 PM

/me was looking to code this same kind of ajax... great MRNase

MrNase 05-15-2005 06:53 PM

hehe ;)

Please test it before you make it HOTM :D It worked for me and hopefully it'll work for you.

Dean C 05-15-2005 07:06 PM

You might want to credit xml.com for the AJAX JS code :)

nexialys 05-15-2005 07:07 PM

[sql]INSERT INTO `phrase` (`phraseid`, `languageid`, `varname`, `text`, `phrasetypeid`) VALUES (NULL, '0', 'registererror', 'The username you have chosen is already taken', '5000', '39');[/sql] have an error, have to drop the '5000', in it...

EDIT: btw, would be good to duplicate this process for the change username in profile... ;)

MrNase 05-15-2005 07:13 PM

Quote:

Originally Posted by nexialys
[sql]INSERT INTO `phrase` (`phraseid`, `languageid`, `varname`, `text`, `phrasetypeid`) VALUES (NULL, '0', 'registererror', 'The username you have chosen is already taken', '5000', '39');[/sql] have an error, have to drop the '5000', in it...

I changed it to:
[sql]INSERT INTO `phrase` (`phraseid`, `languageid`, `varname`, `text`, `phrasetypeid`) VALUES (NULL, '0', 'registererror', 'The username you have chosen is already taken', '', '39');[/sql]


Dean C: Ok, I did that. This was my first static try http://validhtml.com/xmlhttprequest/. I just took the code from it without thinking much about it's source :nervous:

nexialys: That's a good idea.. Iam going to sleep now but I'll keep that in mind for tomorrow :)

Princeton 05-15-2005 07:20 PM

MrNase,
I believe it should be:
[sql]INSERT INTO `phrase` (`phraseid`, `languageid`, `varname`, `text`, `phrasetypeid`) VALUES (NULL, '0', 'registererror', 'The username you have chosen is already taken', '39');[/sql]

Princeton 05-15-2005 07:22 PM

oh, by the way -- great hack/find. :up:

There's a lot we can do with this. ;D

MrNase 05-15-2005 07:25 PM

Have you installed it and does it work for you?

I fixed the small error in the downloadable file.. It happened because I added the , '39' without thinking about the number of the affected rows (I tried to modify 6 where there are only 5 ;)).

I added all phrases and settings manually so I couldn't test them. I hope they are working for you :rambo:

Princeton 05-15-2005 07:29 PM

yes, I installed it and it works as advertised.
I did run into the error but that was an easy fix. :)

Link14716 05-15-2005 07:30 PM

I have no use for this without a community of my own, but I'll click install anyways since it looks like a nice hack. Good job. :)

Guest190829 05-15-2005 07:37 PM

Oh very nice! I will test this out for you. :)

CompuJonathan 05-15-2005 07:40 PM

Ok, I'm pretty sure I followed the instructions 100%...but for some reason it will not display the text in the pink warning box.

Any clue what would cause this?

Thanks!

CompuJonathan 05-15-2005 07:54 PM

Ok, I'm pretty sure it has something to do with the SQL query. I ran both the one in the .txt file and the one princeton posted. Not sure why it isn't working. :ermm:

nexialys 05-15-2005 07:55 PM

@MrNase: what would be best is to filter the username the same way it is filtered when the usual registration process occurs, because for now, it's not deleting spaces and illegal characters... anyway, this is the only thing i think to enhance... (would add a error like: your username contain illegal characters, etc...)

may be a good thing to add when users can posts when as guests (where we can add a username, the script would verify if you have a known username, and if yes, display the password field to berify...) anyway, i'm highly into enhancements... lol

C.Birch 05-15-2005 08:02 PM

works fine here :)

MrNase 05-15-2005 08:28 PM

Quote:

Originally Posted by CompuJonathan
Ok, I'm pretty sure it has something to do with the SQL query. I ran both the one in the .txt file and the one princeton posted. Not sure why it isn't working. :ermm:

Please verify that the phrase 'registererror' exists. If not you may add it yourself. :)
You must add it to the phrase-group 'register' (default would be GLOBAL, just select 'register' when adding it) because otherwise it doesn't work.

The queries which are in the instruction is up-to-date. You don't need to run those which are suggested in this thread :)


nexialys: That would only work if the JS-code is modified because by now it can only return true or false. Let's see if vB 3.5 has it in by default. If not the chances are good Iam releasing a hack that uses more AJAX :)

Link14716 05-15-2005 08:42 PM

If you are inserting phrases, you need to update the cache. Editing any phrase and then saving it without changing anything usually does the trick.

C.Birch 05-15-2005 08:45 PM

Quote:

Originally Posted by CompuJonathan
Ok, I'm pretty sure I followed the instructions 100%...but for some reason it will not display the text in the pink warning box.

Any clue what would cause this?

Thanks!

i had the same error, it had installed it in the master copy and i had to add the text to the English (US) Translation box.

MrNase 05-15-2005 08:47 PM

Same for me but it worked without filling out the translation box :)

Iam not quite sure about the way the phrases work but I think the content of the first box is used if there's no translation. If there's a translation it will be used.

FightRice.com 05-15-2005 08:51 PM

I've got the same problem, But i'm getting this error

Runtime error, line 49
submit is null or not an object

MrNase 05-15-2005 08:54 PM

open the template register and search for:
PHP Code:

<input type="submit" class="button" value="$vbphrase[complete_registration]accesskey="s" /> 

replace it with:

PHP Code:

<input type="submit" class="button" value="$vbphrase[complete_registration]accesskey="s" name="submitform" /> 


The instructions are up-to-date :)

FightRice.com 05-15-2005 08:59 PM

Awesome, did the trick, sweet modification here

MrNase 05-15-2005 09:00 PM

See if this one helps: https://vborg.vbsupport.ru/showpost....5&postcount=19 :)

If not follow this:
https://vborg.vbsupport.ru/showpost....4&postcount=18

FightRice.com 05-15-2005 09:00 PM

Yes sir, thank you very much

MrNase 05-15-2005 09:02 PM

No problem. Iam glad its working now :)

(nice site btw. :))

Oblivion Knight 05-15-2005 09:15 PM

This is a really nice little modification you have here..

Installed flawlessly. :)

sabret00the 05-15-2005 09:40 PM

nice work :)

Lionel 05-15-2005 09:55 PM

One question: Will that prevent non java users from registering?

MrNase 05-15-2005 09:58 PM

No, this is failsafe.. Users without JS will see the default 'username already taken'-message when they submit the form :)

Lionel 05-15-2005 10:01 PM

Thanks for quick answer. Just came from your site. This is a really useful hack.

MrNase 05-15-2005 10:08 PM

Don't expect a fast reply from me within the next few hours.. Iam going to explain my girlfriend what AJAX really does ;) :D

vB is some kind of illness.. Once I started coding and stuff only my girlfriend gets me to sleep :ermm:

T3MEDIA 05-15-2005 10:53 PM

What does this do? Maybe its me I couldnt work the demo (english) but unless I am missing something when a user picks a name that is already on my site they get an error message. what is this for exactly? Sorry I am just not sure what this is for.

Princeton 05-15-2005 10:55 PM

it will save the user's time when submitting the form ..
eg. if they know that the username is already taken they will likely change it before submitting it

T3MEDIA 05-15-2005 11:01 PM

Quote:

Originally Posted by princeton
it will save the user's time when submitting the form ..
eg. if they know that the username is already taken they will likely change it before submitting it

Ahhhh nice action. Oh ok. that's nice...
You know what would be HOT if that worked for email as well.
myspace.com does this. (not the name) but the email address.
Ohhhh even better.
imagine it works with accounts you block as well?
say I block AOL in the admincp bob puts bob@aol.com it tells him in advance.


same for referals. if a user adds a referer and they dont exist the response is confusing for some. (try it) with this configured properly it could tell them that this user does not exist thus you cant use this name as a referer.

Hummm might as well huck up the registration page fully! its the hard close on the sell right?

If you guys do that... that would be insane.

j_86 05-15-2005 11:13 PM

Does this add aa query with every key press, then?

Princeton 05-15-2005 11:15 PM

yes it does (for every username--key)

Lionel 05-16-2005 12:01 AM

Quote:

Originally Posted by princeton
yes it does (for every username--key)

Is that bad if you have more than 6000 members?

Christine 05-16-2005 12:02 AM

Well now, ain't this a beautiful thing!

Works great on 3.0.7

/me installs!


All times are GMT. The time now is 02:14 AM.

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.01477 seconds
  • Memory Usage 1,820KB
  • 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
  • (2)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)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