I'm stumbling out of the blocks on this one. I can't get this code to redirect the user to their product page immediately after submitting to create the product. I've got three files create_product.php | product.php | & an external function page i'm calling a function from. What i can't seem to get to work is the: header("location: product.php?product_id='.$product_id.'"); functionality. All the stuff is input into the database correctly but when the user clicks submit to create the product i get the "That product does not exist" error. Any help would be greatly appreciated (I know there are issues w/ security, etc...not worried about those at the moment, but rather just getting the "create product submit button to redirect the user to that newly created product page...and sorry for the low response rate (already been brought to my attention as a new user...i will start accepting all answers). Thanks a ton for any help you can provide,
CREATE_PRODUCT.PHP PAGE:
<?php
if (isset($_POST['product_name'], $_POST['product_description'], $_FILES['fileField'])) {
$product_name = $_POST['product_name'];
$product_description = $_POST['product_description'];
$image_name = $_FILES['fileField']['name'];
$image_size = $_FILES['fileField']['size'];
$image_temp = $_FILES['fileField']['tmp_name'];
$allowed_ext = array('jpg', 'jpeg', 'png', 'gif');
$image_ext = strtolower(end(explode('.', $image_name)));
$errors = array();
if (empty($product_name) || empty($product_description) || empty($image_name)) {
$errors[] = "All Fields are required";
} else {
if (strlen($product_name) > 55 || strlen($product_description) > 255) {
$errors[] = "One or more fields contains too many characters";
} else {
if (in_array($image_ext, $allowed_ext) === false) {
$errors[] = 'File type not allowed';
}
if ($image_size > 2097152) {
$errors[] = 'Maximum file size is 2MB';
}
}
}
if (!empty($errors)) {
foreach ($errors as $error) {
echo $error, '<br/>';
}
} else {
create_product($product_name, $product_description, $image_temp, $image_ext);
header("location: product.php?product_id='.$product_id.'");
exit();
}
}
?>
PRODUCT.PHP PAGE:
<?php
// check to see the url variable product_id is set
if (isset($_GET['product_id'])) {
$product_id = preg_replace('#[^0-9]#i','',$_GET['product_id']);
// use this variable to check to see if this product ID exists...
// if yes then get details...
// if no then exit this script and give error
$sql = mysql_query("SELECT * FROM products WHERE product_id = '$product_id' LIMIT 1");
$productCount = mysql_num_rows($sql); // count the output
if ($productCount > 0) {
// get all the product details
while($row = mysql_fetch_array($sql)) {
$member_id = $row['member_id'];
$timestamp = strftime("%b %d %Y", strtotime($row['timestamp']));
$prodtitle = $row['bmtitle'];
$proddesc = $row['bmdesc'];
}
} else {
echo "That product does not exist";
exit();
}
} else {
echo "Need data - product id needed to render this page is missing.";
exit();
}
?>
I then go on within this product.php page to echo out the variables like $prodtitle, etc
LASTLY THE INCLUDED PRODUCT FUNCTIONS PAGE: (showing just create_product function):
<?php
function create_product($product_name, $product_description, $image_temp, $image_ext) {
$product_name = mysql_real_escape_string(htmlentities($product_name));
$product_description = mysql_real_escape_string(htmlentities($product_description));
mysql_query("INSERT INTO products (product_id, member_id, timestamp, prodtitle, proddesc, image_temp, image_ext) VALUES ('','".$_SESSION['member_id']."', UNIX_TIMESTAMP(), '$product_name', '$product_description', '$image_temp', '$image_ext')");
mkdir('uploads/'.mysql_insert_id(), 0777);
mkdir('uploads/thumbs/'.mysql_insert_id(), 0777);
// place image & thumbnail in the respective folder
$bmid = mysql_insert_id();
$image_file = "$bmid."."jpg";
$location = "uploads/$bmid/$image_file";
move_uploaded_file($_FILES['fileField']['tmp_name'],$location);
create_thumb('uploads/'.$bmid.'/', $image_file, 'uploads/thumbs/'.$bmid.'/');
}
?>