在$ page_content中使用时无法读取GET变量

时间:2014-11-27 09:37:35

标签: php get

我有一个名为productFocus.php的文件,我在其中使用GET变量ID:$id = $_GET["id"]; 但是,此页面在product.php文件中以下列方式使用:

product.php

<?php
    $page_content = 'productFocus.php'; // $id = $_GET["id"];
    include('master.php');
?>

productFocus.php

<?php
    include "db/db.php";
    $id = $_GET["id"];
    $product = get_product_by_id($id);
?>

<div class="product-focus">
    <h3><?php echo $product->name ?></h3>
    <img src="/images/products/<?php echo $product->image ?>">
    <div id="description">
        <h4>Productinformatie</h4>
        <p><?php echo $product->description ?></p>
        <h4>Partners</h4>
        <table>
            <?php
                foreach($product->partners_obj as $partner) {
            ?>
            <tr>
                <td>
                    <a href=<?php echo $partner->$product_url ?> target="_blank">
                        <img id="partner" src="/images/partners/<?php echo $partner->image ?>">
                    </a>
                </td>
                <td>
                    <a href=<?php echo $partner->$product_url ?> target="_blank"><?php $partner->$product_price ?></a>
                </td>
            </tr>
            <?php
                }
            ?>
        </table>
    </div>
</div>

master.php

//HTML code
...
 <?php include($page_content);?>
...
//HTML code

当我浏览productFocus.php?id=324324时,我可以读取GET变量,但当我浏览到product.php?id=324324时,我无法访问GET变量ID。

有没有一种优雅的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

在常规页面加载之前,在prodcts.php文件中调用产品详细信息之前,需要检查GET变量。

<?php

if (isset($_GET['id'])) {

    // GET PRODUCT DATA

}else{

    // LOAD PRODUCTS PAGE

}

?>

至于获取产品详细信息,我建议单独调用数据库,但如果只需要加载页面内容,则不能正确调用它:

$id = $_GET['id'];    
$fileurl = 'products.php?id='.$id;
$pagecontent = file_get_contents('$fileurl');