2013-07-18 53 views
0

基本上我有一個網站,人們可以發佈主題或討論,我已經添加了edit_post功能,它工作正常,但在測試中,我通過更改URL實現人們可以編輯其他人的帖子,我試圖執行檢查,以便只有發帖人可以編輯它,但沒有運氣,我沒有得到任何錯誤,但它現在不讓其他用戶編輯,但它不會讓主題創建者編輯。

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

    $id = $_GET['edit']; 
    $res = mysql_query("SELECT users.user_id, users.username, users.profile, topics.topic_id, topics.category, topics.sub_category, topics.subsub_category, topics.topic_data, 
      topics.posted_by, topics.posted, topics.view, topics.invisipost 
    FROM `topics` 
    JOIN `users` on topics.posted_by = users.user_id WHERE topic_id='$id'"); 
    $rows = mysql_fetch_array($res); 
} 
if (isset($_POST['topic_data'])) { 
    $topic_data = $_POST['topic_data']; 
    $id = $_POST['id']; 
    $sql = "UPDATE topics SET topic_data='$topic_data' WHERE topic_id='$id' AND '".$_SESSION['user_id']."'='$posted_by'"; 
    $res = mysql_query($sql) or die("Could not update".mysql_error()); 
    header("Location: view_topic.php?topic_id=$id"); 
} 

回答

0

您的查詢應該是這樣的:

"UPDATE topics SET topic_data='$topic_data' WHERE 
topic_id='$id' AND posted_by ='".$_SESSION['user_id']."'"; 

因爲posted_by是列...

+0

謝謝你的工作,很高興知道我是在正確的軌道上。 – user2571547

0

它應該是,

AND posted_by='".$_SESSION['user_id']."'"; //posted_by is column name 

,而不是

AND '".$_SESSION['user_id']."'='$posted_by'"; 
0

試試這個

if (isset($_POST['topic_data']) and $_SESSION['user_id']==$posted_by) { 
$topic_data = $_POST['topic_data']; 
$id = $_POST['id']; 
$sql = "UPDATE topics SET topic_data='$topic_data' WHERE topic_id='$id' "; 
$res = mysql_query($sql) or die("Could not update".mysql_error()); 
header("Location: view_topic.php?topic_id=$id"); 
}