2011-11-26 35 views
0

嗨,我想知道如何做第一條if語句。其餘的按預期工作(儘管長期)不知道如何優化,但那是另一次。我需要的是如果用戶試圖連續兩次發佈錯誤消息。防止用戶連續發表評論PHP

謝謝

function saveCommentToDatabase($stack, $name, $comment) 
    { 
     if($name == previousauthor){ 
      return 'Can\'t post twice'; 
     } 
     else if(!$name){ 
      return 'You seem to have an existential problem. You do not exist.'; 
     } 
     else if($name == 'Charles Dickens'){ 
      return 'You are NOT Charles Dickens.'; 
     } 
     else if($name == 'Author'){ 
      return 'You should try being a little more imaginative with your name.'; 
     } 
     else if($name == 'password1'){ 
      $name = 'User One'; 
     } 
     else if($name == 'password2'){ 
      $name = 'User Two'; 
     } 
     else if($name == 'password3'){ 
      $name = 'User Three'; 
     } 
       else if($name == 'password4'){ 
      $name = 'User Four'; 
     } 
+0

您可以將所有'else if'移動到一個['switch-case'](http://php.net/switch)結構中,以使其不那麼長。 – kba

+0

在這種情況下,您甚至可以將其大部分移動到數組中。 – Arend

+0

我其實想要所有的密碼= x用戶名= y在一個單獨的頁面,可以從PHP頁面訪問。將查看switch語句。謝謝Kristian – glebski

回答

1

那麼,你需要獲取從您正在使用(DB?)什麼店的意見和檢查以前的海報的名稱匹配當前海報的名稱。

你也想檢查以前的評論時間,並將其與當前時間()進行比較。如果某段時間已過,您可以讓用戶發表另一條評論。

+0

謝謝mephisto。時間信息不是必需的,因爲不允許連續的帖子。這是一種遊戲,你必須輪流。 – glebski

+0

我有這個代碼在顯示評論的同一個php頁面上。那麼我可以檢查最後的評論以及誰從這裏發佈? '$ entries。='

'.$row->author.''.$postdate.''.$row->message.'
';' – glebski

+0

是的,我認爲是。 – mephisto123

0

您可以在用戶發佈帖子時設置cookie,並拒絕使用該cookie的用戶發佈帖子。當然,精明和持久的海報會發現他們可以清除cookies以便重新發布,但如果您擁有該類型的用戶,那麼在任何情況下都可以採取的技術措施很少。