如果我有这段代码作为我的控制器,如何url

时间:2015-03-01 13:03:23

标签: php url url-rewriting

我的所有页面homepage.php,about.php,contact.php都在文件夹页面中。根目录上的index.php根据用户输入控制要加载的页面。

<?php
// Defualt page will always be pages/homepage.html, if not, change this to the name of the file you have created to be the homepage.
$page = 'homepage';

// Get pages based on user input 
if (!empty($_GET['name'])) {
//Assign a variable to a sanitised version of the data passed in the URL
$tmp_page = basename($_GET['name']); 
//If the file exists, update $page
if (file_exists("pages/{$tmp_page}.php")) 
    $page = $tmp_page;
//If the file does not exist, include notfound page and exit  
elseif(!file_exists($tmp_page)){
    include 'pages/notfound.php';
    exit;
    }
}
// Include $page (declared default)
include ("pages/$page.php");
?>

index.php上的默认页面是homepage.php,它从products表中提取产品并显示它。

文件夹页面中的homepage.php。

<?php 
$dbquery = "SELECT * FROM lbtbl_products";
$productresult = $dbconnect->query($dbquery);

if ($productresult->num_rows > 0) {
while($row = $productresult->fetch_assoc()) { ?>
    <div class="prod-cnt prod-box">
    <form method="post" action="cartupdate.php">
    <h3 class="prod-title">
    <a href="productdetail.php?id=<?php echo $row['lbproductId'];?>"><?php echo $row["lbproductName"]; ?></a>
    </h3>
    <p><?php echo $row["lbproductDescription"];?></p>
    <div class="price-cnt">
    <div class="prod-price"><img src="images/common/rupees.png" width="7" height="10"/> <?php echo $row["lbproductPrice"];?></div>
    Qty <input type="text" name="product_qty" value="1" size="3" />
    <button class="add_to_cart">Add To Cart</button>
    <input type="hidden" name="product_code" value="<?php echo $row["lbproductSku"];?>" />
    <input type="hidden" name="type" value="add" />
    </div>
</form>
</div>
<?php }
    } else {
    echo "0 results";
    }
    $dbconnect->close(); ?>

到目前为止一切正常。

我需要做的是在用户点击产品时显示产品详细信息,因此我在pages目录中添加了productdetails.php,该目录获取产品的ID并显示详细信息。

问题: - 如果productdetails.php保存在根目录上,它可以很好地工作,但是当我将productdetails.php移动到pages文件夹(所有其他页面主页,aboutus,contactus所在的位置)时,404,找不到显示错误。

我知道它与index.php有关。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

使用此类型的网址 www.abc.com/productdetails?product_id=1

然后您的路由系统搜索productdetails.php存在于pages目录中。如果存在然后加载页面,然后您可以使用产品ID $ _GET [&#39; product_id&#39;]

找到产品

也许它会起作用