DEDE问答(ask)模块游客匿名提问和解答

先说一下实现后的效果,首先这个修改后是一个精简版的dedecms问答系统,会取消采纳答案等功能,因取消会员功能后不再有答案的等级之分,如对答案的平分功能等将被取消。

  最后不建议使用匿名提问功能,建议使用会员功能来实现问答。这里是给大家提供一个学习的思路!

  下面说一下方法:

  post.php文件 
  
  

if(empty($uid) && $action != 'rate')   {   showmsgs('no_login','../member/login.php?gourl=../ask/');   exit;   }  


  
  1,修改成 或注释掉
  

if(empty($uid) && $action != 'rate')   {   if($action!='ask' & $action!='')   {   showmsgs('no_login','../member/login.php?gourl=../ask/');   exit;   }   }  


  
  

2,注释掉   /*if($question['uid'] == $uid)   {   showmsgs('asker_cannot_answer', '-1');   }else*/   3,然后   if($answer['uid'] != $uid)   {   showmsgs('unallowed_action', $backurl);   }else   替换成   if($question['uid'] == $uid)   {   showmsgs('asker_cannot_answer', '-1');   }else  


  这样就不能修改答案了,不过这个提示是不会回答自己的问题。
  
  或者直接注释掉:修改答案部分的php代码。
  

else if($action == 'modifyanswer')   {   $answer = $dsql->getone("SELECT answer.id, answer.uid, ask.dateline, ask.solvetime, ask.status, ask.expiredtime FROM `dede_askanswer` answer left join dede_ask ask on ask.id=answer.askid WHERE answer.id='$id'");   if($answer)   {   if($answer['uid'] != $uid)   {   showmsgs('unallowed_action', $backurl);   }elseif($answer['status'] != 0)   {   showmsgs('question_solved', $backurl);   }elseif($answer['expiredtime'] < $timestamp)   {   showmsgs('question_expired', $backurl);   }   } else   {   showmsgs('question_nonexistence');   }      if(trim($content) == '')   {   showmsgs('post_answer_isnull');   }   if(strlen($content) > 10000)   {   showmsgs('post_answer_toolong');   }   if(strlen($brief) > 200)   {   showmsgs('post_brief_toolong', '-1');   }   if($dsql->ExecuteNoneQuery("update dede_askanswer set content='$content', brief='$brief' where id='$id'"))   {   showmsgs('modifyanswer_success',$backurl);   }else   {   showmsgs('modifyanswer_failed',$backurl);   }   }      question.php   注释   if($question['uid'] == $uid)   {   $publisher = 1;   }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/70dabff5d7c934fde081890ff4adf0e1.html