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

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

  post.php文件

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

1,修改成 或注释掉
if(empty($uid) %26amp;%26amp; $action != 'rate')
{
if($action!='ask' %26amp; $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'"))

OK+124.co+m

  {


  showmsgs('modifyanswer_success',$backurl);


  }else


  {


  showmsgs('modifyanswer_failed',$backurl);


  }


  }


  


  question.php


  注释


  if($question['uid'] == $uid)


  {


  $publisher = 1;


  }