根据点击的类别显示不同的HTML页面标题时出错

时间:2017-10-19 14:57:48

标签: php html

我目前正在为一个小项目建立一个简单的论坛。我有一个名为forum.php的页面。此页面包含一个人登录后可以看到的内容。此页面包含以下代码:

 <?php                                      
    include ('databaseconnect.php');

    $query = "select * from Categories";       

    $result = mysqli_query($db,$query);

  while ($row = mysqli_fetch_array($result)) {
     echo '<tr>';
      echo '<td class="leftpart">';
        echo '<h3><a href="category.php?id">' . $row['Categoryname'] . 
                  '</a></h3>' . $row['Categorydescription'];  
        echo '</td>';
        echo '<td class="rightpart">';
           echo '<a href="topic.php?id=">Topic subject</a> at 10-10';
        echo '</td>';
     echo '</tr>';
   }
 $result = $db->query($query);
?>

This is the Overview of the forum

当某人点击任何类别链接(例如“社区活动”)时,会将他们带到名为category.php的页面。现在,在此页面上,我希望他们能够看到为特定类别创建的主题的概述。所以使用了以下代码:

  <?php 
      include ('databaseconnect.php');  

      $sql1= "SELECT Categoryid, Categoryname, Categorydescription
        FROM Categories 
      WHERE Categoryid= '" . mysqli_real_escape_string($db,$_GET['id'])."'";

      $result1= mysqli_query($db,$sql1);

 if(!$result1)
   {
echo "<font color = 'Red' .<p> Category Cannot be displayed, Contact the 
      administrator </p> </font>". mysqli_error($db); 
   }

if(mysqli_num_rows($result1) == 0)
   {
    echo "<font color = 'Red' .<p>This category does not exist.</p> </font>". 
  mysqli_error($db); 
   }

 while($row = mysqli_fetch_assoc($result1))
     {
        echo '<h2>Topics in ′' . $row['Categoryname'] . '′ Category</h2>';
   }        
 ?>   

所以我遇到的具体问题是,当我点击任何链接时,我收到的错误是我定义的:

'This category does not exist'

所以,我尝试将categories.php页面的id更改为1,并得到以下结果: Category Result

但当我点击健康与健身类别而不是说'健康与健身'类别中的主题时,它仍然会说'社区活动类别中的主题'。因此,我将id更改为2,而相反的结果是在两页上都显示了“健康与健身”类别中的“主题”。所以我必须使id成为动态的解决方案,或者是否存在语法错误。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您没有将类别ID发布到“类别”页面。如果你将它设置为静态id = 2,那么你得到错误的标题是正常的。

您必须动态创建包含ID的链接

更改此行:

echo '<h3><a href="category.php?id">'.$row['Categoryname'].'</a></h3>'.$row['Categorydescription'];

echo '<h3><a href="category.php?id='.$row['Categoryid'].'">'.$row['Categoryname'].'</a></h3>.$row['Categorydescription'];

另请查看Prepared Statements,因为您的代码容易受到sql注入攻击。 mysqli_real_escape_string不安全。