Welcome to Geeklog, Anonymous Wednesday, November 27 2024 @ 11:11 pm EST

Geeklog Forums

Captcha3 Custom Registration


Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
Great job mevans, it's finally working for me at least on the standard registration page. What do I need to do for the custom registration page?
 Quote

Status: offline

mevans

Forum User
Full Member
Registered: 02/08/04
Posts: 393
Location:Texas
ronack,

Give these instructions a try.

Thanks!
Mark
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
I'm close, each time i try to register using the custom form I get
Your CAPTCHA Session has expired, please try again

Works fine with the standard registration form.
 Quote

Status: offline

mevans

Forum User
Full Member
Registered: 02/08/04
Posts: 393
Location:Texas
Ron,

Can you cut/paste your memberdetail.thtml here so I can see the whole custom login form?

Thanks!
Mark
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
Text Formatted Code
<!-- This is an example template file for the Custom User Registration Feature -->

{startblock}
{message}
<form action="{post_url}" method="POST">
    <table border="0" cellspacing="0" cellpadding="2" width="100%">
        <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>{USERNAME}</b><br><small style="color:#676767">{USERNAME_HELP}</small></td>
            <td align="left" valign="middle"><input type="text" name="username" size="16" maxlength="16" value="{username}"></td>
        </tr>
        {passwd_input}
        <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>{FULLNAME}</b><br><small style="color:#676767">{FULLNAME_HELP}</small></td>
            <td align="left" valign="middle"><input type="text" name="fullname" size="32" maxlength="80" value="{fullname}"></td>
        </tr>
         <tr>
          <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>Department</b><br><small style="color:#676767">Enter your Department or Dispatch Center name</small></font><br><font color=#676767 size=1></font></td>
          <td align=left valign=middle><input type="text" name="department" size="32" maxlength="80" value="{department}"></td>
          <td><img src='/images/speck.gif' width=30 height=1></td>
         </tr>
        <tr>

        <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>{EMAIL}</b><br><small style="color:#676767">{EMAIL_HELP}</small></td>
            <td align="left" valign="middle"><input type="text" name="email" size="32" maxlength="96" value="{email}"></td>
        </tr>
        <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>{EMAIL_CONF}</b><br><small style="color:#676767">{EMAIL_CONF_HELP}</small></td>
            <td align="left" valign="middle"><input type="text" name="email_conf" size="32" maxlength="96" value="{email_conf}"></td>
        </tr>
        {captcha}
        <tr>
            <td align="center" colspan="3">
            <input type="hidden" name="uid" value="{user_id}"><hr><br />            <input type="hidden" name="mode" value="{postmode}">{submitbutton}</td>
        </tr>
    </table>
</form>
{endblock}
 
 Quote

Status: offline

mevans

Forum User
Full Member
Registered: 02/08/04
Posts: 393
Location:Texas
Ron,

Well, I'm not sure I understand exactly why, but you don't need the code additions to the CUSTOM_userCheck() function. So, if you remove them you should be OK. I've updated the wiki docs.

Sorry about that, I used the older custom login instructions.

Thanks!
Mark
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
Great, I believe that Captcha works fine now. But I didn't verify that the custom page worked prior to adding Captcha "my bad". So until I resolve that issue I won't know for sure if its working. But I pretty sure Captcha is working.

Thanks Mark

Ron
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
I think I messed up, there's just too many versions of Custom Registration on here. I think I now have a mixture of old and new but it is working. But I'm not happy with it. I probably would be except now it my Captcha is broke and I don't know what effects the older stuff will have on security. Here is my current memberdetail.thtml
Text Formatted Code

{startblock}
{message}
<form action="{post_url}" method="post">
    <table border="0" cellspacing="0" cellpadding="2" width="400">
        <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><font color='#000000'><b>{USERNAME}</b></font><br><font color=#676767 size=1>{USERNAME_HELP}</font></td>
            <td align=left valign=middle><input type="text" name="username" size="25" maxlength="16" value="{username}"></td>
            <td><img src='/images/speck.gif' width=30 height=1></td>
        </tr>
        {passwd_input}
         <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><font color='#000000'><b>{FULLNAME}</b></font><br><font color=#676767 size=1>{FULLNAME_HELP}</font></td>
            <td align=left valign=middle><input type="text" name="fullname" size="32" maxlength="40" value="{fullname}"></td>
            <td><img src='/images/speck.gif' width=30 height=1></td>
           </tr>
        <tr>
         <tr>
             <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><font color='#000000'><b>Department</b></font><br><font color=#676767 size=1>Enter your Department or Dispatch Center name.</font></td>
             <td align=left valign=middle><input type="text" name="department" size="32" maxlength="40" value="{department}"></td>
             <td><img src='/images/speck.gif' width=30 height=1></td>
            </tr>
        <tr>
       <tr>
            <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><font color='#000000'><b>{EMAIL}</b></font><br><font color=#676767 size=1>{EMAIL_HELP}</font></td>
            <td align=left valign=middle><input type="text" name="email" size="32" maxlength="100" value="{email}"></td>
                <td><img src='/images/speck.gif' width=30 height=1></td>
        </tr>
         <tr>
             <td align="right" style="text-align:left;vertical-align:middle;padding-left:10px;"><b>Email Confirmation</b><br><small style="color:#676767">{EMAIL_CONF_HELP}</small></td>
             <td align="left" valign="middle"><input type="text" name="email_conf" size="32" maxlength="96" value="{email_conf}"></td>
        </tr>
        {captcha}
        <tr>
            <td align="center" colspan="3"><input type="hidden" name="uid" value="{user_id}"><HR><BR>
            <input type="hidden" name="mode" value="{postmode}">{submitbutton}</td>
        </tr>
    </table>
</form>
{endblock}


And here is my current custom_lib
Text Formatted Code
<?php

/* Reminder: always indent with 4 spaces (no tabs). */
// +---------------------------------------------------------------------------+
// | Geeklog 1.4                                                               |
// +---------------------------------------------------------------------------+
// | lib-custom.php                                                            |
// |                                                                           |
// | Your very own custom Geeklog library.                                     |
// |                                                                           |
// | This is the file where you should put all of your custom code.  When      |
// | possible you should not alter lib-common.php but, instead, put code here. |
// | This will make upgrading to future versions of Geeklog easier for you     |
// | because you will always be guaranteed that the Geeklog developers will    |
// | NOT add required code to this file.                                       |
// |                                                                           |
// | NOTE: we have already gone through the trouble of making sure that we     |
// | always include this file when lib-common.php is included some place so    |
// | you will have access to lib-common.php.  It follows then that you should  |
// | not include lib-common.php in this file.                                  |
// |                                                                           |
// +---------------------------------------------------------------------------+
// | Copyright (C) 2000-2006 by the following authors:                         |
// |                                                                           |
// | Authors: Tony Bibbs       - tony AT tonybibbs DOT com                     |
// |          Blaine Lang      - blaine AT portalparts DOT com                 |
// |          Dirk Haun        - dirk AT haun-online DOT de                    |
// +---------------------------------------------------------------------------+
// |                                                                           |
// | This program is free software; you can redistribute it and/or             |
// | modify it under the terms of the GNU General Public License               |
// | as published by the Free Software Foundation; either version 2            |
// | of the License, or (at your option) any later version.                    |
// |                                                                           |
// | This program is distributed in the hope that it will be useful,           |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of            |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             |
// | GNU General Public License for more details.                              |
// |                                                                           |
// | You should have received a copy of the GNU General Public License         |
// | along with this program; if not, write to the Free Software Foundation,   |
// | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.           |
// |                                                                           |
// +---------------------------------------------------------------------------+
//
// $Id: lib-custom.php,v 1.36 2006/12/14 05:19:58 blaine Exp $

if (strpos ($_SERVER['PHP_SELF'], 'lib-custom.php') !== false) {
    die ('This file can not be used on its own!');
}

// You can use this global variable to print useful messages to the errorlog
// using COM_errorLog().  To see an example of how to do this, look in
// lib-common.php and see how $_COM_VERBOSE was used throughout the code
$_CST_VERBOSE = false;

/**
* Sample PHP Block function
*
* this is a sample function used by a PHP block.  This will show the rights that
* a user has in the "What you have access to" block.
*
*/
function phpblock_showrights()
{
    global $_RIGHTS, $_CST_VERBOSE;

    if ($_CST_VERBOSE) {
        COM_errorLog('**** Inside phpblock_showrights in lib-custom.php ****', 1);
    }

    $retval .= '&nbsp;';

    for ($i = 0; $i < count($_RIGHTS); $i++) {
        $retval .=  '<li>' . $_RIGHTS[$i] . '</li>' . LB;
    }

    if ($_CST_VERBOSE) {
        COM_errorLog('**** Leaving phpblock_showrights in lib-custom.php ****', 1);
    }

    return $retval;
}


/**
* Include any code in this function that will be called by the internal CRON API
* The interval between runs is determined by $_CONF['cron_schedule_interval']
*/
function CUSTOM_runScheduledTask() {

}


/**
* Example of custom function that can be used to handle a login error.
* Only active with custom registration mode enabled
* Used if you have a custom front page and need to trap and reformat any error messages
* This example redirects to the front page with a extra passed variable plus the message
* Note: Message could be a string but in this case maps to $MESSAGE[81] as a default - edit in language file
*/
function CUSTOM_loginErrorHandler($msg='') {
    global $_CONF,$MESSAGE;

    if ($msg > 0) {
        $msg = $msg;
    } elseif ($msg == '') {
        $msg = 81;
    }
    $retval = COM_refresh($_CONF['site_url'] .'/index.php?mode=loginfail&msg='.$msg);
    echo $retval;
    exit;
}


/**
* Include any code in this function to add custom template variables.
* Initially, this function is only called in the COM_siteHeader function to set
* header.thtml variables
*/
function CUSTOM_templateSetVars ($templatename, &$template)
{
    if ($templatename == 'header') {
        // define a {hello_world} variable which displays "Hello, world!"
        $template->set_var ('hello_world', 'Hello, world!');
    }
}


/*  Sample Custom Member Functions to create and update Custom Membership registration and profile

    Note1: Enable CustomRegistration Feature in config.php
    $_CONF['custom_registration'] = true;  // Set to true if you have custom code

    Note2: This example requires a template file called memberdetail.thtml to be
    located under the theme_dir/custom directory.
    Sample is provided under /system with the distribution.

    Functions have been provided that are called from the Core Geeklog user and admin functions
    - This works with User Moderation as well
    - Admin will see the new registration info when checking a member's profile only
    - All other users will see the standard User profile with the optional extended custom information
    - Customization requires changes to a few of the core template files to add {customfields} variables
    - See notes below in the custom function about the template changes
*/

/* Create any new records in additional tables you may have added  */
/* Update any fields in the core GL tables for this user as needed */
/* Called when user is first created */
function custom_usercreate($uid) {
    global $_TABLES;

    $department = COM_applyFilter($_POST['department']);
    $fullname  = COM_applyFilter($_POST['fullname']);

    // Ensure all data is prepared correctly before inserts, quotes may need to be escaped with addslashes()
    DB_query("INSERT INTO {$_TABLES['localuserinfo']} (uid,department,fullname) VALUES ('$uid', '$department','$fullname')");
    DB_query("UPDATE {$_TABLES['users']} SET fullname = '$fullname', department = '$department' WHERE uid='$uid'");
    return true;

}

// Delete user record from custom user info table
function custom_userdelete($uid) {
    global $_TABLES;

    DB_query("DELETE FROM {$_TABLES['localuserinfo']} WHERE uid='$uid'");
    return true;

}
/* Called from users.php - when user is displaying a member profile  */
/* This function will return any extra fields that need to be shown */
/* Output is then replaced in {customfields) -- This variable needs to be added to your templates */
/* Template: path_layout/users/profile/profile.thtml */

function custom_userdisplay($uid) {
    global $_CONF,$_TABLES;
    $department = DB_getItem($_TABLES['localuserinfo'], "department", "uid='$uid'");
    $fullname = DB_getItem($_TABLES['users'], "fullname", "uid='$uid'");
    $retval .= '<tr>
                    <td align="right"><b>Full Name:</b></td>
                    <td>' . $fullname .'</td>
                 </tr>';
    $retval .= '<tr>
                    <td align="right"><b>Department:</b></td>
                    <td>' . $department .'</td>
                 </tr>';
    return $retval;

}


/* Function called when editing user profile. */
/* Called from usersettings.php - when user is eding their own profile  */
/* and from admin/user.php when admin is editing a member profile  */
/* This function will return any extra fields that need to be shown for editing */
/* Output is then replaced in {customfields} -- This variable needs to be added to your templates */
/* User: path_layout/preferences/profile.thtml and Admin: path_layout/admin/user/edituser.thtml */

function custom_useredit($uid) {
    global $_TABLES,$_CONF;

    $department = DB_getItem($_TABLES['localuserinfo'], "department", "uid='$uid'");
    $fullname = DB_getItem($_TABLES['users'], "fullname", "uid='$uid'");

    $retval .= '<tr>
        <td align="right"><b>Full Name:</b></td>
        <td><input type="text" name="cust_fullname" size="50" value="' . $fullname .'"></td>
     </tr>';
    $retval .= '<tr>
        <td align="right"><b>Department:</b></td>
        <td><input type="text" name="cust_deparatment" size="5" maxlength="4" value="' . $department .'"></td>
     </tr>';
    $retval .= '<tr><td colspan="2"><hr></td></tr>';
   return $retval;
}

/* Function called when saving the user profile. */
function custom_usersave($uid) {
    global $_TABLES;

    $department = COM_applyFilter($_POST['department'],true);
    $fullname  = COM_applyFilter($_POST['fullname']);

    DB_query("UPDATE {$_TABLES['users']} SET fullname='$fullname' WHERE uid='$uid'");
    if ($department > 0) {
        DB_query("UPDATE {$_TABLES['localuserinfo']} SET department='$department' WHERE uid='$uid'");
    }

}


/* Main Form used for Custom membership when member is registering */
function custom_userform($uid="",$msg="") {
    global $_CONF,$_TABLES, $LANG04;

    if (!empty($msg)) {
        $retval .= COM_startBlock($LANG04[21]) . $msg . COM_endBlock();
    }

    $post_url = $_CONF['site_url']."/users.php";
    $postmode = "create";
    $submitbutton = '<input type="submit" value="Register Now!">';
    $passwd_input = "";
    $message = "<br><font color=black><b>Please complete the application below. Once you have completed the application, click the Submit button and the application will be processed immediately.</b></font>";
    $A=array();

    $user_templates = new Template ($_CONF['path_layout'] . 'custom');
    $user_templates->set_file('memberdetail', 'memberdetail.thtml');
    $user_templates->set_var('layout_url', $_CONF['layout_url']);
    $user_templates->set_var('post_url', $post_url);
    $user_templates->set_var('startblock', COM_startBlock("Registration"));
    $user_templates->set_var('message', $message);
    $user_templates->set_var('USERNAME', "Username");
    $user_templates->set_var('USERNAME_HELP', "Name to be used when accessing this site");
    $user_templates->set_var('username', $A['username']);
    $user_templates->set_var('passwd_input', $passwd_input);
    $user_templates->set_var('EMAIL', "Email Address");
    $user_templates->set_var('EMAIL_HELP', "Valid email address");
    $user_templates->set_var('email', $A['email']);
    $user_templates->set_var('FULLNAME', "Full Name");
    $user_templates->set_var('FULLNAME_HELP', "First and Last Name");
    $user_templates->set_var('fullname', $A['fullname']);
    $user_templates->set_var('DEPARTMENT', "Department");
    $user_templates->set_var('DEPARTMENT_HELP', "Enter your Department name or Dispatch Center name");
    $user_templates->set_var('department', "");
    $user_templates->set_var('user_id', $user);
    $user_templates->set_var('postmode', $postmode);
    $user_templates->set_var('submitbutton', $submitbutton);
    $user_templates->set_var('endblock', COM_endBlock());
    $user_templates->parse('output', 'memberdetail');
    $retval .= $user_templates->finish($user_templates->get_var('output'));

    return $retval;
}

/**
* Check if it's okay to create a new user.
*
* Geeklog is about to create a new user with the given username and email
* address. This is the custom code's last chance to prevent that,
* e.g. to check if all required data has been entered.
*
* @param    string  $username   username that Geeklog would use for the new user* @param    string  $email      email address of that user
* @return   string              an error message or an empty string for "OK"
*
*/
function CUSTOM_userCheck ($username, $email)
{
    $msg = '';

    // Example, check that the full name has been entered
    // and complain if it's missing
    if (empty ($_POST['fullname'])) {
        $msg = 'Please enter your full name!';
    }

    return $msg;
}


/**
* Custom function to retrieve and return a formatted list of blocks
* Can be used when calling COM_siteHeader or COM_siteFooter
*
* Example:
* 1: Setup an array of blocks to display
* 2: Call COM_siteHeader or COM_siteFooter
*
*  $myblocks = array( 'site_menu', 'site_news', 'poll_block' );
*
* COM_siteHeader( array( 'CUSTOM_showBlocks', $myblocks )) ;
* COM_siteFooter( true, array( 'CUSTOM_showBlocks', $myblocks ));
*
* @param   array   $showblocks    An array of block names to retrieve and format
* @return  string                 Formated HTML containing site footer and optionally right blocks
*/
function CUSTOM_showBlocks($showblocks)
{
    global $_CONF, $_USER, $_TABLES;

    $retval = '';
    if( !isset( $_USER['noboxes'] )) {
        if( !empty( $_USER['uid'] )) {
            $noboxes = DB_getItem( $_TABLES['userindex'], 'noboxes', "uid = {$_USER['uid']}" );
        } else {
            $noboxes = 0;
        }
    } else {
        $noboxes = $_USER['noboxes'];
    }

    foreach($showblocks as $block) {
        $sql = "SELECT bid, name,type,title,content,rdfurl,phpblockfn,help,allow_autotags FROM {$_TABLES['blocks']} WHERE name='$block'";
        $result = DB_query($sql);
        if (DB_numRows($result) == 1) {
            $A = DB_fetchArray($result);
            $retval .= COM_formatBlock($A,$noboxes);
        }
    }

    return $retval;
}


/**
* This is an example of a custom email function. When this function is NOT
* commented out, Geeklog would send all emails through this function
* instead of sending them through COM_mail in lib-common.php.
*
* This is basically a re-implementation of the way emails were sent
* prior to Geeklog 1.3.9 (Geeklog uses PEAR::Mail as of version 1.3.9).
*
*/
/*
function CUSTOM_mail($to, $subject, $message, $from = '', $html = false, $priority = 0)
{
    global $_CONF, $LANG_CHARSET;

    if (empty ($LANG_CHARSET)) {
        $charset = $_CONF['default_charset'];
        if (empty ($charset)) {
            $charset = 'iso-8859-1';
        }
    } else {
        $charset = $LANG_CHARSET;
    }

    if (empty ($from)) {
        $from = $_CONF['site_name'] . ' <' . $_CONF['site_mail'] . '>';
    }

    $headers  = 'From: ' . $from . "\r\n"
              . 'X-Mailer: Geeklog ' . VERSION . "\r\n";

    if ($priority > 0) {
        $headers .= 'X-Priority: ' . $priority . "\r\n";
    }

    if ($html) {
        $headers .= "Content-Type: text/html; charset={$charset}\r\n"
                 .  'Content-Transfer-Encoding: 8bit';
    } else {
        $headers .= "Content-Type: text/plain; charset={$charset}";
    }

    return mail ($to, $subject, $message, $headers);
}
*/

/**
* This is an example of a function that returns menu entries to be used for
* the 'custom' entry in $_CONF['menu_elements'] (see config.php).
*
*/
/*
function CUSTOM_menuEntries ()
{
    global $_CONF, $_USER;

    $myentries = array ();

    // Sample link #1: Link to Gallery
    $myentries[] = array ('url'   => $_CONF['site_url'] . '/gallery/',
                          'label' => 'Gallery');

    // Sample link #2: Link to the Personal Calendar - only visible for
    // logged-in users
    if (!empty ($_USER['uid']) && ($_USER['uid'] > 1)) {
        $myentries[] = array ('url'   => $_CONF['site_url']
                                         . '/calendar/index.php?mode=personal',
                              'label' => 'My Calendar');
    }

    return $myentries;
}
*/

/**
  * This is an example of an error handler override. This will be used in
  * place of COM_handleError if the user is not in the Root group. Really,
  * this should only be used to display some nice pretty "site error" html.
  * Though you could try and notify the sysadmin, and log the error, as this
  * example will show. The function is commented out for saftey.
  */
/*
function CUSTOM_handleError($errno, $errstr, $errfile, $errline, $errcontext)
{
    global $_CONF;
    if( is_array($_CONF) && function_exists('COM_mail'))
    {
        COM_mail($_CONF['site_mail'], $_CONF['site_name'].' Error Handler',
                "An error has occurred: $errno $errstr @ $errline of $errfile");
        COM_errorLog("Error Handler: $errno $errstr @ $errline of $errfile");
    }
    echo("
        <html>
            <head>
                <title>{$_CONF['site_name']} - An error occurred.</title>
                <style type=\"text/css\">
                    body,html {height: 100%; width: 100%;}
                    body{ border: 0px; padding: 0px;
                        background-color: white;
                        color: black;
                        }
                   div { margin-left: auto; margin-right: auto;
                            margin-top: auto; margin-bottom: auto;
                            border: solid thin blue; width: 400px;
                            padding: 5px; text-align: center;
                            }
                   h1 { color: blue;}
               </style>
            </head>
            <body>
                <div>
                    <h1>An Error Has Occurred.</h1>
                    <p>Unfortunatley, the action you performed has caused an
                    error. The site administrator has been informed. If you
                    try again later, the issue may have been fixed.</p>
                </div>
            </body>
        </html>
        ");
    exit;
}
*/
?>
 
 Quote

Status: offline

Blaine

Forum User
Moderator
Registered: 07/16/02
Posts: 1232
Location:Canada
The only custom function that is called to display the form and in your case the CAPTCHA image is custom_userform(). If you are running a GL 1.4.1 site, you are using an incorrect function definition. There should be just one parm in the function declaration.

function CUSTOM_userForm ($msg = ''Wink - you do not need to pass in $uid

You are not even setting the captcha template variable in this function so it will not be set in the form displayed.
Example of how I added the CAPTCHA image
Text Formatted Code

function CUSTOM_userForm ($msg = '') {
    global $_CONF, $_TABLES, $LANG04;

    $p = new Template ($_CONF['path_layout'] . 'custom');
    $p->set_file('memberdetail', 'memberdetail.thtml');
    plugin_templatesetvars_captcha('registration', $p);

    if (!empty ($msg) && ($msg != 'new')) {
        $p->set_var('error_message', $msg);
    } else {
                $p->set_var('show_error','none');
    }
 

Now in my case, I am using $p for m template var and you are using $user_templates. I was also using the v2.x of the captcha but I think the same would apply. Just be sure you have also enabled registration mode for the captcha plugin.

After that you can work on the save, edit delete custom functions as needed.

Geeklog components by PortalParts -- www.portalparts.com
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
Yeah I tried making the changes by trying to follow the directions in lib-custom when that didn't work I tried your instructions. Obviously this wasn't for gl 1.4.1 which is what I'm using and obviously I'm not a php whiz. I know enough to be dangerous I think. So at this point I'm not sure which way to go.

1. Go back to the original lib-custom and go with the memberdetail example which works well with captcha3
2. Stay with your lib-custom and make the changes and try to make captcha work.

I like how I can put the custom fields in a seperate database.

 Quote

Status: offline

mevans

Forum User
Full Member
Registered: 02/08/04
Posts: 393
Location:Texas
Ron,

Based on the lib-custom you posted above, I think one simple change and you'll have CAPTCHA working...

Added the CAPTCHA code to CUSTOM_userform() per the wiki docs.

That and Blaine's suggestions above should get you going.

Thanks!
Mark
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
No go...no Captcha
I did both and it now looks like this
Text Formatted Code

function custom_userform($uid="",$msg="") {
    global $_CONF,$_TABLES, $LANG04;
   $user_templates = new Template ($_CONF['path_layout'] . 'custom');
       /*
        * Check to see if CAPTCHA plugin is installed and enabled
        * if yes, call the function to add the CAPTCHA image.
        */
       if ( function_exists('plugin_templatesetvars_captcha') ) {
           plugin_templatesetvars_captcha('registration', $user_templates);
       }

    $user_templates->set_file('memberdetail', 'memberdetail.thtml');
    plugin_templatesetvars_captcha('registration', $user_templates);

    if (!empty ($msg) && ($msg != 'new')) {
        $user_templates->set_var('error_message', $msg);
    } else {
                $user_templates->set_var('show_error','none');
    }
 
 Quote

Status: offline

Blaine

Forum User
Moderator
Registered: 07/16/02
Posts: 1232
Location:Canada
Have you enabled the CAPTCHA option for 'registration' in the plugins admin settings?
You are still using the not recommended function definition for GL 1.4.1 - the API only passes 1 parm to the function as noted.
Geeklog components by PortalParts -- www.portalparts.com
 Quote

Status: offline

mevans

Forum User
Full Member
Registered: 02/08/04
Posts: 393
Location:Texas
Ron,

You are putting the CAPTCHA code too early in the function. It should come immediately before this line:

Text Formatted Code

$user_templates->parse('output', 'memberdetail');
 


Double check the CAPTCHA wiki one more time.

Also, don't forget to take Blaine's advice on the function parameters.

I think if you'll get the code in the right spot you should be good to go.

Thanks!
Mark
 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
Blaine,

I just went back to a fresh copy of lib-custom to start over. I don't want my lib-custom messed up.

 Quote

Status: offline

ronack

Forum User
Full Member
Registered: 05/27/03
Posts: 612
SUCCESS

I went back to the inwork one put the line in the CORRECT place (Thank Mark) and voila.

Since it's working I'm going to run with this for now. I guess when the next update comes out I'll have to figure it out on a fresh copy of lib-custom.

Thanks to both of you,
Blaine as always your a ginormous help.
Great plugin Mark.
Ron
 Quote

All times are EST. The time is now 11:11 pm.

  • Normal Topic
  • Sticky Topic
  • Locked Topic
  • New Post
  • Sticky Topic W/ New Post
  • Locked Topic W/ New Post
  •  View Anonymous Posts
  •  Able to post
  •  Filtered HTML Allowed
  •  Censored Content