2013-02-10 46 views
0

我正在嘗試檢查用戶是否是配置文件頁面的所有者,以便我可以顯示用於輸入Twitter類似帖子的文本框。PHP,MYSQL檢查用戶是否是頁面的所有者

代碼

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'"); 

$ultimatum_form =''; 
if(isset($_SESSION['id'])){ 
    if($_SESSION['id']==$id){ 
     $ultimatum_form = 'Write an ultimatum!(220 char max)<br/> 
     <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form"> 
     <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea> 
     </form>'; 
    } 
} 
print "$ultimatum_form"; 
在我的DB

我有一個名爲「用戶」表,該表的用戶具有列「杉杉」,「最後」,「用戶名」,「密碼」,「電子郵件」和「id」。

如果我在會話之外設置$ ultimatum_form,請檢查它是否輸出文本字段,它是否有效。問題是,如果我然後去另一個人的個人資料,我可以看到文本字段併爲他們寫帖子。

+0

歡迎堆棧溢出! – 2013-02-10 23:51:15

回答

1

您需要從查詢中獲取數據:

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'"); 
$r = mysql_fetch_assoc($id); 
$id = $r['id']; 

然後$ id包含行 「ID」 值。
調查pdo/mysqli,mysql不會在下一個php版本中運行。

這裏,更好:

$id=mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'"); 
    $r = mysql_fetch_assoc($id); 
    $id = $r['id']; 


    if(isset($_SESSION['id'])) 
    { 
     if($_SESSION['id']==$id) 
     { 
      echo ' 
      Write an ultimatum!(220 char max)<br/> 
      <form action="profile.php" method="post" enctype="multipart/form-data" name="ultimatum_form"> 
      <textarea name="ultimatum_field" rows="3" style="width:97%;"></textarea> 
      </form>'; 
     } 
     else 
     { 
      // Not users profile page 
     } 
    } 
+0

謝謝!我對PHP和MySQL都很陌生。 – user1732713 2013-02-10 23:57:55

+0

另外,什麼是mysqli和爲什麼不會在下一個php版本中工作? – user1732713 2013-02-10 23:58:21

+0

那麼也許你可以點擊複選標記,這將被標記爲正確的答案? :) – 2013-02-10 23:59:19

0

你不能你到底在做什麼。您需要獲取記錄。

$results = mysql_fetch_array(mysql_query("SELECT id FROM users WHERE`username`='".$_GET['username']."'")); 

然後,你可以這樣做:

if($_SESSION['id']==$results['id']){ 
相關問題