dongshan9338 2011-10-28 03:08 采纳率: 0%
浏览 88
已采纳

尝试使用PHP标头(“位置:”)功能重定向

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.'/');

}
?>
  • 写回答

3条回答 默认 最新

  • dongyu8664 2011-10-28 03:11
    关注

    This line is wrong:

    header("location: product.php?product_id='.$product_id.'");
    

    should look like this:

    header("Location: product.php?product_id=$product_id");
    

    Please, note the absence of the single quotes.

    Besides, it seems you have not defined the $product_id var at all in CREATE_PRODUCT.PHP

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献