我创建了一个博客,该博客可以从名为BlogData的单个表中打印所有帖子,问题是我希望仅能够编辑已发布的帖子,因此我将名称存储在“海报”列中发布信息的用户名。

 <div class="container">
 <?php
 $sql = mysql_query("SELECT * FROM BlogData ORDER BY id DESC");
 while($row = mysql_fetch_array($sql)){
    $title = $row['title'];
$content = $row['content'];
$category = $row['category'];
$image = $row['id'];
$extension= $row['ext'];
$title_color = $row['title_color'];
$content_color = $row['content_color'];
$category_color = $row['category_color'];
 /////////////////////////////////////////////////////
$poster = $row['poster'];  // THIS IS WHERE THE USERNAME IS STORED
 /////////////////////////////////////////////////////
 ?>
 <hr />
 <div class="title" style=color:#<? echo $title_color ?>>
 <?php echo $title; ?>
 </div>
 <div class="date" style=color:#<? echo $category_color ?>>
 <?php echo $category; ?>
 <div class="poster" style=color:#<? echo $poster_color ?>>
 <?php echo $poster; ?>
 </div>
 </div>
 <?php
 echo "<img width='1140' height='300' src='uploads/".$image.".".$extension."'>";
  ?>
 <br>
 <div class="content" style=color:#<? echo $content_color ?>>
 <?php echo $content; ?>
 </div>
 <br>
 ////////////////////////////////
 ////////////////problem here
 ////////////////////////////////
 <?php
 if ($_SESSION['name'] == $row['poster']){
 echo "1";
 } else {
 echo "2";
 }
 }
 ?>
 <?php
 }
 ?>


问题是,代码末尾的“ echo”正在“ poster”行中存储了某些内容的所有帖子上打印1,而在“ poster”行为空的所有帖子中都打印了2,因此应该打印1仅在我创建的帖子上。如何解决?

最佳答案



session_start();


在您的小狗代码中读取$ _SESSION变量之前。

PHP session_start manual

您也可以尝试通过这种方式更改IF语句:

if (isset($_SESSION['name']) && $_SESSION['name'])

10-05 20:42