Using addForm.php - insert logged in user num

7 posts by 2 authors in: Forums > CMS Builder
Last Post: January 2, 2012   (RSS)

By gversion - December 31, 2011

Hello,

I'm trying to setup the form, addForm.php and would like to auto-insert the I'd number of the currently logged in user so the new listing is associated with the logged in user and not the default" 0".

I have changed the code to be as follows, but it's not working:

createdDate      = NOW(),
                      updatedDate      = NOW(),
                      createdByUserNum = '".mysql_escape($CURRENT_USER['num'])."',
                      updatedByUserNum = '0'")


Could someone please help me out?

Thank you,
Greg

Re: [gversion] Using addForm.php - insert logged in user num

By Jason - December 31, 2011

Hi Greg,

You should also assign updatedByUserNum to be the num of the currently logged in user like this:

createdDate = NOW(),
updatedDate = NOW(),
createdByUserNum = '".mysql_escape($CURRENT_USER['num'])."',
updatedByUserNum = '".mysql_escape($CURRENT_USER['num'])."'")


Hope this helps. If you are still experiencing trouble, please let us know the exact nature of the problem and we can look into it further.

Thanks
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [gversion] Using addForm.php - insert logged in user num

By Jason - December 31, 2011

Hi Greg,

That comes up when the value of createdByUserNum or updatedByUserNum is not a valid user number.

One potential cause is that the person is not logged in when the record is created.

Does your form force a person to be logged in before they can create a record?

If this doesn't fix it, please attach the .php file you're working with so I can take a closer look at your code.

Thanks
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Using addForm.php - insert logged in user num

By gversion - December 31, 2011

Hi Jason,

Thanks for the help.

I've made the form only accessible to users that have logged in but I'm still getting "unknown" for createdBy and updatedBy.

Here is the code I'm using:

<?php
  require_once "cmsAdmin/lib/init.php";

// submit form
if (@$_REQUEST['submit']) {

  // error checking
  $errorsAndAlerts = "";
  if (!@$_REQUEST['product'])    { $errorsAndAlerts .= "Please specify title!<br/>\\n"; }
  if (!@$_REQUEST['description'])  { $errorsAndAlerts .= "Please specify content!<br/>\\n"; }

  // turn off strict mysql error checking for: STRICT_ALL_TABLES
  mysqlStrictMode(false); // disable Mysql strict errors for when a field isn't defined below (can be caused when fields are added later)

  // add record
  if (!@$errorsAndAlerts) {
    mysql_query("INSERT INTO `{$TABLE_PREFIX}wanted_ads` SET
                      product            = '".mysql_real_escape_string( $_REQUEST['product'] )."',
                      description          = '".mysql_real_escape_string( $_REQUEST['description'] )."',

                      createdDate      = NOW(),  
updatedDate      = NOW(),  
createdByUserNum = '".mysql_escape($CURRENT_USER['num'])."',  
updatedByUserNum = '".mysql_escape($CURRENT_USER['num'])."'")

    or die("MySQL Error Creating Record:<br/>\\n". htmlspecialchars(mysql_error()) . "\\n");
    $recordNum = mysql_insert_id();

    // display thanks message and clear form
    $errorsAndAlerts = "Thanks, we've added that record!";
    $_REQUEST = array();
  }

}

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

 <?php require_once "cmsAdmin/lib/viewer_functions.php"; ?>
<?php if (!$CURRENT_USER) { websiteLogin_redirectToLogin(); } ?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
  body, td { font-family: arial }
</style>
</head>
<body>

<form method="post" action="">
<input type="hidden" name="submit" value="1" />

<h1>Sample Record Add Form</h1>

<?php if (@$errorsAndAlerts): ?>
  <div style="color: red; font-weight: bold; font-size: 16px;"><br/>
    <?php echo $errorsAndAlerts; ?><br/><br/>
  </div>
<?php endif ?>


<table border="0" cellspacing="0" cellpadding="2">
 <tr>
  <td valign="top">Product</td>
  <td><input type="text" name="product" value="<?php echo htmlspecialchars(@$_REQUEST['product']) ?>" size="30" /></td>
</tr>
 <tr>
  <td valign="top">Description</td>
  <td><textarea name="description" cols="30" rows="4"><?php echo htmlspecialchars(@$_REQUEST['description']) ?></textarea></td>
</tr>
</table><br/><br/>


<input type="submit" name="add" value="Add Record &gt;&gt;" />

</form>
</body>
</html>


Thanks again fo all you help.

Regards,
Greg

Re: [gversion] Using addForm.php - insert logged in user num

By Jason - January 2, 2012

Hi Greg,

I think I may see the problem.

At the very top of your page, you have a require_once() statement to require cmsAdmin/lib/init.php.

Then, down below your code that populates the database you require the viewer_functions.php library. This may be affecting the value of $CURRENT_USER. Try this change, remove this line:

require_once "cmsAdmin/lib/init.php";

and replace it with this:
require_once "cmsAdmin/lib/viewer_functions.php";

if (!$CURRENT_USER) { websiteLogin_redirectToLogin(); }


This way you are assuring that $CURRENT_USER has a value before anything is entered into the database.

Hope this helps
---------------------------------------------------
Jason Sauchuk - Project Manager
interactivetools.com

Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/

Re: [Jason] Using addForm.php - insert logged in user num

By gversion - January 2, 2012

Hi Jason,

That's worked! :) Thanks for taking the time to help me with that one.

Regards,
Greg