Skip navigation
Currently Being Moderated

Desperate for help: ADDT registration form

Aug 5, 2009 11:07 PM

New to ADTT and back again with another, more urgent problem.


I have used ADDT to create a registration page, using UPDATE instead of INSERT (this is necessary because the users are already in our system as contacts).  To accomplish this I had to do some hand coding and I fear I may have gone awry.  Initially I kept getting a blank page with the message "error: internal server" message when the page loaded...currently I get "Fatal error: Call to a member function addField() on a non-object in /home/agciorg/public_html/events/2009/259/users_Registration.php on line 33."  Now I can no longer open the registration page in Dreamweaver -- freezes DW everytime.  So I'm trying to edit in Text Edit to get it back to a functioning page.  I've already rebuilt the page from scratch twice trying to get things to work and I'm on a major time crunch and just can't afford to do it again.  Below is the current code (I've also attached the php file as a .txt)...any help in resolving my issue would be much, MUCH appreciated!




<?php require_once('../../../Connections/AGCI.php'); ?>



// Load the common classes



// Load the tNG classes



// Make a transaction dispatcher instance

$tNGs = new tNG_dispatcher("../../../");


// Make unified connection variable

$conn_AGCI = new KT_connection($AGCI, $database_AGCI);


// Start trigger

$formValidation = new tNG_FormValidation();

$formValidation->addField("UserFirstName", true, "text", "", "", "", "");

$formValidation->addField("UserLastName", true, "text", "", "", "", "");

$formValidation->addField("UserTitle", true, "text", "", "", "", "");

$formValidation->addField("UserOrganization", true, "text", "", "", "", "");

$formValidation->addField("UserEmail", true, "text", "email", "", "", "");

$formValidation->addField("UserPassword", true, "text", "", "", "", "");

$formValidation->addField("UserPhone", true, "text", "", "", "", "");

$formValidation->addField("UserAddress", true, "text", "", "", "", "");

$formValidation->addField("UserCity", true, "text", "", "", "", "");

$formValidation->addField("UserState", true, "text", "", "", "", "");

$formValidation->addField("UserZip", true, "text", "zip_generic", "", "", "");

$formValidation->addField("UserCountry", true, "text", "", "", "", "");

$formValidation->addField("UserExpertise", true, "text", "", "", "", "");

$formValidation->addField("UserArrivalDate", true, "date", "", "", "", "");

$formValidation->addField("UserDepartureDate", true, "date", "", "", "", "");

$formValidation1->addField("UserPassword", true, "text", "", "", "", "");


// End trigger


//start Trigger_CheckPasswords trigger

//remove this line if you want to edit the code by hand

function Trigger_CheckPasswords(&$tNG) {

  $myThrowError = new tNG_ThrowError($tNG);

  $myThrowError->setErrorMsg("Passwords do not match.");


  $myThrowError->setFieldErrorMsg("The two passwords do not match.");

  return $myThrowError->Execute();


//end Trigger_CheckPasswords trigger


//start Trigger_WelcomeEmail trigger

//remove this line if you want to edit the code by hand

function Trigger_WelcomeEmail(&$tNG) {

  $emailObj = new tNG_Email($tNG);





  $emailObj->setSubject("Registration Confirmation");

  //FromFile method





  return $emailObj->Execute();


//end Trigger_WelcomeEmail trigger



//start Trigger_ImageUpload trigger

//remove this line if you want to edit the code by hand

function Trigger_ImageUpload(&$tNG) {

  $uploadObj = new tNG_ImageUpload($tNG);




  $uploadObj->setResize("true", 200, 0);


  $uploadObj->setAllowedExtensions("gif, jpg, jpeg, png");


  $uploadObj->setRenameRule("{rsUsers.UserFirstName}_{rsUsers.UserLastN ame}");

  return $uploadObj->Execute();


//end Trigger_ImageUpload trigger


if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")


  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;


  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);


  switch ($theType) {

    case "text":

      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";


    case "long":

    case "int":

      $theValue = ($theValue != "") ? intval($theValue) : "NULL";


    case "double":

      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";


    case "date":

      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";


    case "defined":

      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;



  return $theValue;




mysql_select_db($database_AGCI, $AGCI);

$query_rsUsers = "SELECT * FROM users";

$rsUsers = mysql_query($query_rsUsers, $AGCI) or die(mysql_error());

$row_rsUsers = mysql_fetch_assoc($rsUsers);

$totalRows_rsUsers = mysql_num_rows($rsUsers);


// Make an update transaction instance

$UserRegistration = new tNG_update($conn_AGCI);


// Register triggers

$UserRegistration->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Update1");

$UserRegistration->registerTrigger("END", "Trigger_Default_Redirect", 99, "redirect.php");

$UserRegistration->registerTrigger("BEFORE", "Trigger_Default_FormValidation", 10, $formValidation);

$UserRegistration->registerTrigger("AFTER", "Trigger_ImageUpload", 97);

$UserRegistration->registerConditionalTrigger("{POST.UserPassword} != {POST.re_UserPassword}", "BEFORE", "Trigger_CheckPasswords", 50);

$UserRegistration->registerTrigger("AFTER", "Trigger_WelcomeEmail", 60);

// Add columns


$UserRegistration->addColumn("UserContactType", "STRING_TYPE", "POST", "UserContactType");

$UserRegistration->addColumn("UserEventID", "NUMERIC_TYPE", "POST", "UserEventID");

$UserRegistration->addColumn("UserFirstName", "STRING_TYPE", "POST", "UserFirstName");

$UserRegistration->addColumn("UserLastName", "STRING_TYPE", "POST", "UserLastName");

$UserRegistration->addColumn("UserTitle", "STRING_TYPE", "POST", "UserTitle");

$UserRegistration->addColumn("UserDepartment", "STRING_TYPE", "POST", "UserDepartment");

$UserRegistration->addColumn("UserOrganization", "STRING_TYPE", "POST", "UserOrganization");

$UserRegistration->addColumn("UserPhone", "STRING_TYPE", "POST", "UserPhone");

$UserRegistration->addColumn("UserCellPhone", "STRING_TYPE", "POST", "UserCellPhone");

$UserRegistration->addColumn("UserAddress", "STRING_TYPE", "POST", "UserAddress");

$UserRegistration->addColumn("UserAddress2", "STRING_TYPE", "POST", "UserAddress2");

$UserRegistration->addColumn("UserCity", "STRING_TYPE", "POST", "UserCity");

$UserRegistration->addColumn("UserState", "STRING_TYPE", "POST", "UserState");

$UserRegistration->addColumn("UserZip", "STRING_TYPE", "POST", "UserZip");

$UserRegistration->addColumn("UserCountry", "STRING_TYPE", "POST", "UserCountry");

$UserRegistration->addColumn("UserWebsite", "STRING_TYPE", "POST", "UserWebsite");

$UserRegistration->addColumn("UserExpertise", "STRING_TYPE", "POST", "UserExpertise");

$UserRegistration->addColumn("UserBio", "STRING_TYPE", "POST", "UserBio");

$UserRegistration->addColumn("UserPhoto", "FILE_TYPE", "POST", "UserPhoto");

$UserRegistration->addColumn("UserArrivalDate", "DATE_TYPE", "POST", "UserArrivalDate");

$UserRegistration->addColumn("UserDepartureDate", "DATE_TYPE", "POST", "UserDepartureDate");

$UserRegistration->addColumn("UserUnsureTravelDates", "CHECKBOX_YN_TYPE", "POST", "UserUnsureTravelDates");

$UserRegistration->addColumn("User#AdultGuests", "NUMERIC_TYPE", "POST", "User_AdultGuests");

$UserRegistration->addColumn("UserAdultGuestNames", "STRING_TYPE", "POST", "UserAdultGuestNames");

$UserRegistration->addColumn("User#ChildGuests", "NUMERIC_TYPE", "POST", "User_ChildGuests");

$UserRegistration->addColumn("UserChildGuestNames", "STRING_TYPE", "POST", "UserChildGuestNames");

$UserRegistration->addColumn("UserUnsureGuests", "CHECKBOX_YN_TYPE", "POST", "UserUnsureGuests");

$UserRegistration->addColumn("UserBookRoom", "CHECKBOX_YN_TYPE", "POST", "UserBookRoom");

$UserRegistration->addColumn("UserComments", "STRING_TYPE", "POST", "UserComments");

$UserRegistration->addColumn("UserRegistrationDate", "DATE_TYPE", "POST", "UserRegistrationDate");

$UserRegistration->addColumn("UserEmail", "STRING_TYPE", "POST", "UserEmail", "{SESSION.kt_login_user}");

$UserRegistration->addColumn("UserPassword", "STRING_TYPE", "POST", "UserPassword");




// Make an update transaction instance

$UsersRegistration = new tNG_update($conn_AGCI);




// Execute all the registered transactions



// Get the transaction recordset

$rsusers = $tNGs->getRecordset("users");

$row_rsusers = mysql_fetch_assoc($rsusers);

$totalRows_rsusers = mysql_num_rows($rsusers);


<!-----------------begin registration form----------------->
<div id="RegistrationContainer">
      <form method="post" name="RegistrationForm" id="RegistrationForm" action="<?php echo KT_escapeAttribute(KT_getFullUri()); ?>"> 
        <table width="515" border="0" align="right">
  <td height="135" colspan="2" valign="top" scope="col">
echo $tNGs->getErrorMsg();
                <h1 align="left">Registration Form</h1>
    <span class="style5">Please read the logistics information prior to completing the registration form.</span><br />
       There are a limited number of spots available in this workshop.  To secure a spot, please fill out this registration form to the best of your ability as soon as possible.  Please notify AGCI of any subsequent changes to the information submitted below.
        <td height="37" colspan="2" scope="col"><strong>Create a Password</strong></td>
        <td height="53" colspan="2" valign="top" scope="col">
<table cellpadding="2" cellspacing="0" class="KT_tngtable">
<td width="127" class="KT_th"><label for="UserPassword">Password:</label></td>
<td width="248">
<input type="password" name="UserPassword" id="UserPassword" value="" size="32" />
<?php echo $tNGs->displayFieldHint("UserPassword");?>
<?php echo $tNGs->displayFieldError("users", "UserPassword"); ?>
<td class="KT_th"><label for="re_UserPassword">Re-type Password:</label></td>
<input type="password" name="re_UserPassword" id="re_UserPassword" value="" size="32" />
<td class="KT_th"><label for="UserEmail">Email (username):</label></td>
<input type="text" name="UserEmail" id="UserEmail" value="<?php echo $_SESSION['kt_login_user']; ?>" size="32" />
<?php echo $tNGs->displayFieldHint("UserEmail");?>
<?php echo $tNGs->displayFieldError("users", "UserEmail"); ?>
        <td height="37" colspan="2" scope="col"><strong>Contact/Personal Information</strong></td>
<td width="229" height="323" align="right" valign="top" scope="col">
<input name="UserContactType" type="hidden" value="Scientist">
<input name="UserEventID" type="hidden" value="259"> <!---NEEDS TO BE CHANGED FOR EACH WORKSHOP--->
<?php $date = getdate(); ?>
<input name="UserRegistrationDate" type="hidden"  value="<?php echo $date ?>" >
          <p align="right"><span class="style5">*</span>First name:
            <input type=text name="firstname" value="<?php echo $_SESSION['kt_UserFirstName']; ?>"></p>
   <p align="right"><span class="style5">*</span>Last Name:
           <input type=text name="lastname" value="<?php echo $_SESSION['kt_UserLastName']; ?>"></p>
          <p align="right"><span class="style5">*</span> Job Title:
            <input type=text name="title"></p>
          <p align="right">Department:
           <input type=text name="department"></p>
         <p align="right"><span class="style5">*</span>Organization:
           <input type=text name="organization"></p>
         <p align="right"><span class="style5">*</span>Office Phone:
           <input type=text name="officephone"></p> 
          <p align="right">Cell Phone:
           <input type=text name="cellphone"></p>     
                <td width="255" height="323" valign="top" scope="col">
         <p align="right"><span class="style5">*</span>Address 1:
            <input type=text name="address1"></p>
         <p align="right">Address 2:
           <input type=text name="address2"></p>
          <p align="right"><span class="style5">*</span>City:
            <input type=text name="city"></p>
         <p align="right"><span class="style5">*</span>State / Province:
           <input type=text name="state"></p>
         <p align="right"><span class="style5">*</span>Zip / Postal Code:
           <input type=text name="zipcode"></p>
         <p align="right"><span class="style5">*</span>Country:
           <select name="req_country">
              <option value="Argentina">Argentina
              <option value="Australia">Australia
              <option value="Austria">Austria
              <option value="Belgium">Belgium
              <option value="Brazil">Brazil
              <option value="Canada">Canada
              <option value="Caribbean_Islands">Caribbean Islands
              <option value="Chile">Chile
              <option value="China">China
              <option value="Colombia">Colombia
              <option value="Denmark">Denmark
              <option value="Ecuador">Ecuador
              <option value="Egypt">Egypt
              <option value="Finland">Finland
              <option value="France">France
              <option value="Germany">Germany
              <option value="Greece">Greece
              <option value="Greenland">Greenland
              <option value="Hong_Kong">Hong Kong
              <option value="Iceland">Iceland
              <option value="India">India
              <option value="Indonesia">Indonesia
              <option value="Ireland">Ireland
              <option value="Israel">Israel
              <option value="Italy">Italy
              <option value="Japan">Japan
              <option value="Korea">Republic of Korea
              <option value="Luxembourg">Luxembourg
              <option value="Malaysia">Malaysia
              <option value="Mexico">Mexico
              <option value="Netherlands">Netherlands
              <option value="New_Zealand">New Zealand
              <option value="Norway">Norway
              <option value="Philippines">Philippines
              <option value="Portugal">Portugal
              <option value="Russian">Russian Federation
              <option value="Saudi_Arabia">Saudi Arabia
              <option value="Singapore">Singapore
              <option value="South_Africa">South Africa
              <option value="Spain">Spain
              <option value="Sweden">Sweden
              <option value="Switzerland">Switzerland
              <option value="China">Province Of China Taiwan
              <option value="Thailand">Thailand
              <option value="Turkey">Turkey
              <option value="United Kingdom">United Kingdom
              <option value="US" selected="selected">United States
              <option value="Venezuela">Venezuela
              <option value="Viet_Nam">Viet Nam
              <option value="N/A">Not listed
            <p align="right">Website:
           <input type=text name="website"></p>
            <p align="right"><span class="style5">*</span>Expertise:
            <input type=text name="expertise"></p>
          <td colspan="2" align="right" valign="top" scope="col">
            <p><strong>Attach bio:</strong>
  Please type or cut and paste a short professional bio. <br>
  <textarea name="bio" rows="20" style="width:100%"></textarea> <br>
<p><strong>Upload photo:</strong>
              <input class="noformstyle" type="file" name="photo" size="30" ><br>
(max. 1.5Mb; allowed file types: *.jpg, *.gif, *png only)</p>
<div class="lineDiv"></div>
          <td height="66" align="right" valign="top" scope="col"><p><strong><span class="style5">*</span>Travel</strong></p>
<p>Arrival Date:
           <input name="arrivaldate" id="arrivaldate" value="" size="11"><a href="javascript:void(0)" onClick="if(self.gfPop)gfPop.fPopCalendar(document.RegistrationForm.a rrivaldate);return false;" ><img class="PopcalTrigger" align="absmiddle" src="" width="34" height="22" border="0" alt=""></a>
            <td height="66" align="right" valign="top" scope="col">
              <div align="right">
                <p> </p>
                <p>Departure Date:
                  <input name="departuredate" id="departuredate" value="" size="11"><a href="javascript:void(0)" onClick="if(self.gfPop)gfPop.fPopCalendar(document.RegistrationForm.d eparturedate);return false;" ><img class="PopcalTrigger" align="absmiddle" src="" width="34" height="22" border="0" alt=""></a>
          <td height="34" colspan="2" align="right" valign="top" scope="col">
            <input type="checkbox" name="travel" id="checkbox" value="unsure of travel dates at this time" class="noformstyle" />
              I do not know my planned travel dates at this time.
          I will notify AGCI as soon as I have made my travel arrangements (see Logistics for information on travel and how to book your travel with AGCI's travel agent).
          <td height="184" colspan="2" valign="bottom" scope="col">
<div class="lineDiv"></div>
<p><span class="style5">*</span><strong>I will be bringing the following guests:</strong></p>
            <p># of Adults:    <select name="adultguests" size="1">
              <option value="0">0</option>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
            </select>  Names: <input type=text name="adultguestnames">
            <p># of Children: <select name="childguests" size="1">
              <option value="0">0</option>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
            </select>  Names:
            <input type=text name="childguestnames">
             <br />
             <br />
             <input type="checkbox" name="guests" id="checkbox2" value="unsure about guests at this time" class="noformstyle"/>
                 I am not sure about guests at this time. I will let AGCI know at a later date if I decide to bring a guest or child.
        <td height="182" colspan="2" valign="bottom" scope="col">
<div class="lineDiv"></div>
                <p><span class="style5">*</span><strong>Lodging</strong></p>
          <input type="radio" name="book a room?" value="yes" class="noformstyle">
             <strong>Please reserve a room for me and my guest(s) at the Molly Gibson Lodge.</strong>  A lodging confirmation will be sent to you once you are
registered. If you plan on extending your stay before or after the workshop dates, please let us know so that we can make appropriate arrangements with the hotel.<br />
<br />
          <input type="radio" name="book a room?" value="no" class="noformstyle">
              <strong> I do not require lodging at the Molly Gibson. </strong>I will notify AGCI of where I intend to stay,
and I understand the reimbursement procedures as described in the logistics information.        
          <td height="218" colspan="2" valign="bottom" scope="col">
            <textarea name="comments" cols="400" rows="3"></textarea></p>
         <td height="57" colspan="2" valign="middle" scope="col">
            <span class="style5">* required field</span>
         <td height="20" colspan="2" valign="bottom" scope="col">
        <input class="submit" type="submit" name="KT_Insert1" id="KT_Insert1" value="Register"></td>
        <td height="121" colspan="2" valign="bottom" scope="col">
<!-----------------end registration form----------------->
  • Currently Being Moderated
    Aug 5, 2009 11:25 PM   in reply to AGCI

    Actually if you do not need a public registration form, its much more practical to use the "Create Dynamic List" and "Create Dynamic Form" behaviors in your site administration back end. And it really only takes about two minutes to set up.


    This will give you the ability to add, delete and edit all your users.


    Brad Lawryk
    Community Expert: Dreamweaver
    Usergroup Manager: Northern British Columbia Adobe Usersgroup

    Mark as:
  • Currently Being Moderated
    Aug 6, 2009 10:14 AM   in reply to AGCI



    I haven't looked at any of your code but also make sure that the server your are running on has not been upgraded to PHP 5.30 as ADDT is not compatible with that version. This unfortunate version of PHP with ADDT being discontinued is really going to speed up the demise of using ADDT.

    Mark as:
  • Currently Being Moderated
    Jun 30, 2011 8:15 AM   in reply to Albert S.

    hi albert ! it's nice.......

    Mark as:
  • Currently Being Moderated
    Aug 15, 2011 1:49 AM   in reply to AGCI

    The registration form is nicely created , its a good type of registration form and having all the fields...Good effort..!!!

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points