View Full Version : Checking failed CAPTCHAs...?
StepOnFrog
07-18-2008, 11:20 PM
Looking at the vB register template, there is a conditional <if> as the tempalte loads, that checks to see if any errors occured during a previous registration attempt...
<if condition="$show['errors']">
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td class="tcat">$vbphrase[errors_occurred_during_registration]</td>
</tr>
<tr>
<td class="alt1"><ul>$errorlist</ul></td>
</tr>
</table>
<br />
</if>
How can I use, or can I use the $vbphrase[errors_occurred_during_registration] to check which type of error occured on the registration form?
Specifically, I want to check whether the CAPTCHA was failed during registration.
Thanks in advance,
step
RLShare
07-18-2008, 11:36 PM
That is just a phrase that says the same string all the time nomatter if its shown/used or not. If I were you I would be looking through the files and NOT the templates for the code that checks whether CAPTCHA failed. I have never attempted whatever your doing or anything remotely close but if I were you I would start by looking through the files and see if I can figure out where $errorlist gets filled first, then trace back from there until I find what I'm looking for.
StepOnFrog
07-18-2008, 11:41 PM
Thanks! :D
--------------- Added 1216436104 at 1216436104 ---------------
I were you I would start by looking through the files and see if I can figure out where $errorlist gets filled first, then trace back from there until I find what I'm looking for.
I've been as far as I can possibly go, and I can't find anywhere that assigns error values,
All I can think to do is check the $errorlist array itself to see if the vbphrase for a failed CAPTCHA has been assigned to it, which is a bit slack, considering there must be a simpler value somewhere that tells something else that an error has occured. If I check the $errorlist for the CAPTCHA specific error, then when the CAPTCHA error vbprase is changed at a later date, then the conditional used to check the $errorlist will be buggered, and I'll have to re-do everything again. urg!
Problems, problems....
I'm stuck! :erm:
MoT3rror
07-19-2008, 02:57 AM
You will have to find this code in register.php.
// check for errors
if (!empty($userdata->errors))
{
$_REQUEST['do'] = 'register';
$errorlist = '';
foreach ($userdata->errors AS $index => $error)
{
$errorlist .= "<li>$error</li>";
}
$username = htmlspecialchars_uni($vbulletin->GPC['username']);
$email = htmlspecialchars_uni($vbulletin->GPC['email']);
$emailconfirm = htmlspecialchars_uni($vbulletin->GPC['emailconfirm']);
$parentemail = htmlspecialchars_uni($vbulletin->GPC['parentemail']);
$selectdst = array($vbulletin->GPC['dst'] => 'selected="selected"');
$sbselected = array($vbulletin->GPC['showbirthday'] => 'selected="selected"');
$show['errors'] = true;
}
Then you can either use a if statement in the foreach which will take a file edit or you can try to find a hook in the user datamanager that will do what you need.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.