PHP - 通过Web浏览器呈现动态网页

时间:2013-02-17 18:03:32

标签: php dynamic web

我是php和编程的新手,我一直在关注一个教程但是在尝试将产品显示到网页上时遇到了问题,这是我正在测试的代码

<?php 

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

    include "storescripts/connect_to_mysql.php"; 
    $id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
    $sql = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1");
    $productCount = mysql_num_rows($sql); 
    if ($productCount > 0) {

        while($row = mysql_fetch_array($sql)){ 
             $product_name = $row["product_name"];
             $price = $row["price"];
             $details = $row["details"];
             $category = $row["category"];
             $subcategory = $row["subcategory"];
             $date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
         }

    } else {
        echo "That item does not exist.";
        exit();
    }

} else {
    echo "Data to render this page is missing.";
    exit();
}
mysql_close();
?>

当我尝试通过浏览器查看该页面时,我收到消息“数据导致此页面丢失”

我知道这与

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

我假设它可能与'id'有关但我无法解决如何修复它。任何指针和帮助将不胜感激,抱歉,如果这看起来很基本,但就像我说我是新的,不能解决这个问题。我一整天都在努力

由于

4 个答案:

答案 0 :(得分:1)

显然,$_GET['id']未设置。如果您的链接类似http://www.example.com/index.php?id=32,则会设置。

其次,在没有清理它们的情况下,不要在查询中使用GET / POST变量!

第三,首先不要使用mysql_query,而是使用PDO或mysqli

答案 1 :(得分:0)

当你看到$ _GET时,它正在寻找URL中的参数。所以:

http://localhost/yourphpscript.php?id=123

......正是它所期待的。必须在URL中定义一些ID。

答案 2 :(得分:0)

您可以尝试以下代码:

    <?php
    if (isset($_GET['id'])){ //Someone submitted a form or just prepended parameter to link
      include "storescripts/connect_to_mysql.php"; //Include script with mysql connection
      $id = preg_replace('#[^0-9]#i', '', $_GET['id']); //Sanitize input - remove everything besides numbers
      $result = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1"); //Execute query. Only 1 product because of LIMIT 1
      if (mysql_num_rows($result)==1){ //If the product is found
         $product = mysql_fetch_assoc($result) ; //Take the product
         foreach ($product as $property => $value){ //Go through each property of product
           echo "<div> {$property} : {$value} </div>" ;
         }
      }
    } else {?>
      <form method="get" action="<?php $_SERVER['PHP_SELF'] ; ?>">
        <input type="text" name="id" />
        <input type="submit" value="Submit product ID"/>
      </form>
<?php    
}
    ?>

请问您是否有任何问题。

答案 3 :(得分:0)

学会跟踪你的身份。清理并检查发送id的URL是否传递了正确的值,并在开始时再次检查值,如

                     <?php
                    echo $_GET['id'];
                      ?>

使用它来了解它的id值