Using addForm.php - insert logged in user num
7 posts by 2 authors in: Forums > CMS Builder
Last Post: January 2, 2012 (RSS)
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
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: [Jason] Using addForm.php - insert logged in user num
Thanks for help. I have updated the code as you suggested but when I view the listing in the cmsAdmin area it still says:
Created Dec 31st, 2011 - 06:02:52 PM (by Unknown) change
Last Updated Dec 31st, 2011 - 06:02:52 PM (by Unknown)
How can I make it display the username of the person that created the listing, rather than "unknown"?
Thanks again,
Greg
Re: [gversion] Using addForm.php - insert logged in user num
By Jason - December 31, 2011
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
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 >>" />
</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
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
That's worked! :) Thanks for taking the time to help me with that one.
Regards,
Greg