2015-11-28 54 views
0

我已經看到了堆棧溢出的土地,並沒有找到解決方案,我的極其基本的問題沒有成功。顯示海報的用戶名

我在我的網站內有一個消息系統,當用戶發佈消息時,我希望他們的名字在文章頂部顯示,例如。 「發佈者(姓名)」。

目前,它顯示登錄用戶的名稱,但是這個名稱會根據當時登錄的用戶而變化。

因此,如果我在名稱「Jim」下發布了一些內容,然後以名稱「Bob」登錄,它將顯示海報名稱爲「Bob」。

我知道我的問題在於$username = $_SESSION['username'];。我只是不知道該怎麼做。

  <?php 
        require_once("nbbc/nbbc.php"); 

        $bbcode = new BBCode; 

        $sql = "SELECT * FROM comment ORDER BY id DESC"; 

        $res = mysqli_query($dbCon, $sql) or die(mysqli_error($dbCon)); 

        $comment = ""; 

        $username = $_SESSION['username']; 

        if(mysqli_num_rows($res) > 0) { 
         while($row = mysqli_fetch_assoc($res)) { 
          $id = $row['id']; 
          $date = $row['date']; 
          $content = $row['content']; 

        $bbcode->Parse($content); 

        $comment .= " 
          <div id='a_comment'> 
           <h1>Posted by $username on $date</h1> 
           <p>$content</p> 
          </div> 
        "; 
       } 
       echo $comment; 
      } else { 
         echo "<div id='no_comments'>There are no comments to be displayed.</div>"; 
       } 

      ?> 

下面的代碼的其餘部分:

<?php 
    session_start(); 
    include_once("inc/connection.php"); 
    error_reporting(E_ALL); ini_set('display_errors', 1); 

    if(!isset($_SESSION['username'])) { 
     header("Location: login.php"); 
     return; 
    } 

    if(isset($_POST['post'])) { 
     $content = strip_tags($_POST['content']); 

     $content = mysqli_real_escape_string($dbCon, $content); 

     date_default_timezone_set("Australia/Victoria"); 
     $date = date('d-m-y h:i:sa'); 

     $sql = "INSERT INTO comment (date, content) VALUES ('$date', '$content')";    

     mysqli_query($dbCon, $sql); 

     header("Location: members.php"); 
    } 
?> 
+0

您是否開始會話? –

+0

對不起,它說session_start()在頂部,沒有包括它。 –

+0

檢查您是否已正確設置會話變量。 –

回答

1

理想情況下,你將用戶ID存儲在comment表,然後拉動註釋掉時使用的用戶表中查找。但是,由於我對錶格結構一無所知,因此我會給您提供將用戶名存儲在comment表中的說明,您可以根據需要進行調整。

第1步:改變你comment表來存儲用戶名

ALTER TABLE comment 
ADD username VARCHAR(100) AFTER content; 

第2步:店收藏的帖子的時候

$sql = "INSERT INTO comment (date, content, username) VALUES ('$date', '$content', '{$_SESSION['username']}')"; 

步驟3的用戶名:分配在檢索數據時輸入正確的用戶名稱

$username = $row['username'];