View Full Version : OK, enough is enough. I must protest!
bira
Sun 25th Jun '00, 12:21am
I have raised this issue before and I will raise it again, because enough is enough:
The activation e-mail is a nuisance! It's simply redicilous!!
Either people miss out on what they have to do, or the link does not appear correctly (multi-worded usernames) - you can say what you want about the IQ of the people who run into trouble with this, but the fact is most of them are simply not very knowledgeable about computers, and why should they be? Is there a pre-requisite that vBulletin is suitable only for websites whose visitors are UNIX admins or something?
I had enough with this. There is NO reason WHATSOEVER to prefer this system over simply e-mailing a password to a new user. NONE!
Why the hell is it run this way? Can I PLEASE have an expalanation?
I love vBulletin but I have to tell you - this seemingly small item is getting my animosity built up. I am wasting too much time on something that should not be a problem to begin with.
And trust me, this is me being polite about it!
[Edited by bira on 06-25-2000 at 11:21 AM]
eva2000
Sun 25th Jun '00, 12:57am
yes at first i thought it was annoying... but i just put an announcement on all forums...
if you get trolls or spammers just 1 or 2 of them can ruin your board very quickly...
bira
Sun 25th Jun '00, 1:01am
eva2000 I think you miss my point: I NEED to have a procedure whereby a user would need a valid e-mail to register. UBB's procedure to ensure this, was to generate a password and send it to the new user. Without it, he couldn't post on the BB. vB's procedure to ensure a valid e-mail, on the other hand, is like scratching the left ear with your right arm stretched above your head.
doron
Sun 25th Jun '00, 1:19am
You could hack the code. Line 344 (member.php) has the activation stuff (it changes the user's user group from "awaiting confirmation" to whatever it is.) and move it before line 299, which writes to the db. You need to change $newusergroupid using this:
if ($moderatenewmembers==1) {
// put user in moderated group
$newusergroupid=3;
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_moderateuser")."\");");
} else {
// activate account
$newusergroupid=2 ;
eval("echo standardredirect(\$bbtitle,\"".gettemplate("redirect_registerthanks")."\",\"index.php\");");
}
however, not sure if this is 100% correct. Also, no random password, not sure which way is the best using php.
bira
Sun 25th Jun '00, 1:29am
No, I don't think this would be the right hack. Remember, I still want some form of e-mail verification procedure.
To minimise stress I could think of one hack, whereby the activation URL will only include the activationID number. But I don't know where I can hack the code to minimise it to this only.
But I insist that the correct solution to this all is not via a hack but rather via an overall change in John's perception. He added a feature and I am claiming it's a bad one. Seeing as he did not provide any alternative to it in the original script, I think he should either add an alternative or revise his whole perception of this.
Jake
Sun 25th Jun '00, 3:35am
Ya, I agree... There has to be a better way of going about it. I have around 400 users who are awaiting email confirmation right now.
Martin
Sun 25th Jun '00, 5:03am
ya know, normaly I'm all for making things easier for the puter morons, but what could possibly be easier than reading then clicking a link?
I think you have a valid concern and that it should be addressed, but I have to wonder just how stupid people can be that they can't read and follow the instructions. It's only 3 lines, right?
bira
Sun 25th Jun '00, 5:13am
Martin,
When someone registers as "Two Words", the link he receives in his e-mail is:
http://www.whatever.com/forums/member.php?action=activate&username=Two Words&password=whatever&activateid=94949494
In some cases, not only the URL will not appear complete, but also the e-mail client will wrapp this into two lines (because there's a space) - meaning that even if they highlight and copy the entire URL, they are in fact copying two lines - and when they paste it, only the top line will appear in the address.
So first e-mail I get is: "I can't log in!"
reply: "please check the e-mail you received and make sure you activate your account by following the instructions there".
Second e-mail I get is: "ok, I clicked on the link and it says "invalid username"
reply: "please be sure that you have copied the entire URL, that it was not line-wrapped" etc
third e-mail: "look, I really am failing at this. Maybe I am doing something wrong, I don't know, but this is just too much hassle".
And you know what? He is 100% right. It is too much hassle. For me and for him.
[Edited by bira on 06-25-2000 at 04:14 PM]
Martin
Sun 25th Jun '00, 5:20am
ah, I see where the problem lies, then...
there needs to be a function in the sending of the e-mail that converts blank spaces to "%20" so the e-mail client will recognize it.
I don't remember how this is done or I would tell you now.
let me see if I can dig it out of my notes and apply it to PHP. i've never done this (or much of anything, really) in PHP. If someone knows of the top if their heads, please fill in the blanks?
bira
Sun 25th Jun '00, 5:27am
John at some point tried to solve it by adding a + between the nickname parts. But then, users got cofused *again* because the e-mail they got said:
Your username: Two+Words
Your password: whatever
So sure enough, they thought they will need to type Two+Words every time they want to log in or post....
There is no simple way around THIS.
If you insist on sticking to the activation URL, then the username parameter should be dropped from the URL. Meaning, the activation URL they receive will only be http://www.whatever.com/forums/member.php?action=activate&activateid=9494949
UserName
Sun 25th Jun '00, 5:48am
Bira -
I had a similar problem with Hotmail and AOL users not being able to click on confirmation links for my Opt-In mailing list. I ended up stating clearly in the email that anyone having a problem should RESPOND to this mail and leave the original message in the body of the reply. That way, no matter what their problem was, I could simply paste the link into the browser myself and activate the address. I know that this is not a solution, but it will mean that you never have to deal with more than one email about the same account.
bira
Sun 25th Jun '00, 5:54am
UserName,
I don't need to click on the activation URL - I can change their status in the control panel.
Thanks for trying to help, but it is, like you said, not a solution :)
doron
Sun 25th Jun '00, 6:38am
How about using the userid and the activationid? You can easily get the user name and psswed using the userid.
All you have to change is the way the email is composed and a bit in the confirmation proc.
bira
Sun 25th Jun '00, 6:44am
doron, and how - or where - do I do that? And does it work?
bira
Mon 26th Jun '00, 11:03am
John,
I honestly think I deserve an answer from you to this thread. Why have you gone silent?
doron
Mon 26th Jun '00, 5:39pm
you'd have to modify member.php and a template:
Template activeemail:
this should be entered instead of the current url:
$bburl/member.php?action=activate=$userid=$password=$acti vateid
OK I got it to work on my board. You can test it on http://www.naboonline.com/forums/member.php?action=signup
Still have not tested it much, but it looks like it works. Still have to check if works with coppa. The only change is you have to suck the username from the db using the userid.
You can mail me for the new member.php.
bira
Mon 26th Jun '00, 8:07pm
doron, WHAT should be changed? You didn't post any code here at all.
doron
Mon 26th Jun '00, 10:49pm
ok, here is the code (around line 342 of member.php)
// ############################### start activate ###############################
if ($action=="activate") {
// do activate account
checkipban();
//Userid hack - need to get username from the DB
$getusername=$DB_site->query_first("SELECT username FROM user WHERE userid=$userid");
$username=$getusername[username];
// end userid hack. note we keep verifyusername below just in case.
$userid=verifyusername($username,$password);
The last line I think is useless, as it only is there to get the userid (which we get now from the url). If the verifyusername is not needed, you can also del the $getusername part, as we don't really need the username other than for the verifyusername stuff.
hope this helps (and does not kill the board or so)
edit: don't forget to modify the above mentioned template so that the userid is sent.
[Edited by doron on 06-27-2000 at 09:52 AM]
bira
Mon 26th Jun '00, 11:18pm
yep, that worked doron. Thanks :) :) :)
akiy
Tue 27th Jun '00, 3:14am
I think this is a great fix. John, do you think you can incorporate this into the next version instead of what we have right now?
doron
Tue 27th Jun '00, 4:23am
note that you could kill the entire hack and "$userid=verifyusername($username,$password);" to make this work, and only modify the tmpl. Unless we need to verify the username/passwd.
akiy
Fri 30th Jun '00, 3:20pm
One "danger" in putting this hack in place is if a user who received the registration e-mail before you instituted this hack tries to use the previous url (with the username instead of userid), you'll get an SQL error...
But, hey. It's better than it was before...
John
Mon 3rd Jul '00, 6:25pm
Your complaints have been heard!
Firstly - regarding spaces in names. The activationemail template in the members area should fix all those problems.
Since it is obviously such a problem, I will be shortening the URL to make it easier to use in future versions. I will also provide an option to have a random password generated instead of this email option.
Sorry for the problems that this option has been causing.
John
bira
Mon 3rd Jul '00, 6:31pm
John,
You might want to adopt akiy's hack whereby the userid is used in the activate url instead of username and password - I must admit, it dropped the complaints\newbies problems to an almost zero.
And welcome back. I see you're going through the posts so I guess it's time for me to take a hide... :)
Bira
TotalBS
Tue 4th Jul '00, 10:18am
It looks like using the UserID in the URL is good, but perhaps you should give the users an option.
What if, in the email, they have the option of clicking on the URL, or...., going to the board and logging in where, on their first visit they have an "activation" password.
This might help those AOLers who can't just click on a URL, and don't know how to copy/paste.
akiy
Wed 5th Jul '00, 12:14am
Originally posted by bira
You might want to adopt akiy's hack
Just to give credit where credit is due, it's actually Doron who wrote the hack...
whereby the userid is used in the activate url instead of username and password - I must admit, it dropped the complaints\newbies problems to an almost zero.
I do see, however, that John's fix in the activateemail template which uses usernameenc (url-encoded username) which, I'm guessing, changed spaces into %20's, will work just as well as Doron's hack. I'm hoping to test it out in a bit...
vBulletin® v3.8.0 Beta 4, Copyright ©2000-2008, Jelsoft Enterprises Ltd.