不熟悉PA,
不过有输出好办,你在article.php 加几个输出,看看到哪输出的,再顺着查,就比较容易了。

解决方案 »

  1.   

    谢谢各位。xuzuning(唠叨)大侠:
    我对PHP和MYSQL都还是初次接触,大家又没有用过PA(phpArticle),
    我尝试详细解说一下问题,希望能表达清楚,让您帮助我解决问题:注册会员点击id为100的文章,IE地址栏中出现地址是http://www.XXX.com/article.php?articleid=100,正常显示文章;
    游客点击同样的文章链接,IE地址栏中显示的地址没有变化,
    但内容却变成了“对不起,你没有这个权限.原因可能如下。。”
    因此,因此我猜测要修改源文件article.php,article.php文件中有以下几句if (empty($article)) {
        $article = validate_articleid($articleid);
    }
    if (!$article[visible]) {
        show_errormessage("error_invalid_articleid");
    }if (!$pauserinfo[isadmin] AND !$pauserinfo[canviewarticle]) {
        show_nopermission();
    }我注释掉最后三句进行测试,发现这几句就是做“用户权限”判断的代码,调用了后台nopermission模块和其他一些模块。其他代码中:
    $articletext = $DB->fetch_one_array("SELECT subhead,articletext
                                                FROM ".$db_prefix."articletext
                                                WHERE articleid='$articleid'
                                                ORDER BY displayorder,id LIMIT $offset,1");
    是显示整篇文章内容的,变量是$articletext[articletext]。我尝试用以下代码可以在显示整篇文章内容的页面显示“文章摘要”:
    $description = $DB->fetch_one_array("SELECT description FROM ".$db_prefix."article WHERE articleid='$articleid'");
    (使用变量$description[description])
    但把它加到上面所说的nopermission模块却不能显示。
      

  2.   

    以下是PA数据库结构pa_article和pa_articletext两个表的结构,其中pa_article.description是文章摘要,pa_articletext.articletext是整篇文章的内容。pa_article表:
    +-------------+---------------------+------+-----+---------+----------------+
    | Field       | Type                | Null | Key | Default | Extra          |
    +-------------+---------------------+------+-----+---------+----------------+
    | articleid   | int(10) unsigned    |      | PRI | NULL    | auto_increment |
    | sortid      | int(10) unsigned    |      |     | 0       |                |
    | title       | varchar(100)        |      | MUL |         |                |
    | source      | varchar(50)         | YES  |     | NULL    |                |
    | author      | varchar(50)         | YES  |     | NULL    |                |
    | contact     | varchar(50)         | YES  |     | NULL    |                |
    | description | text                |      |     |         |                |
    | views       | int(10) unsigned    |      |     | 0       |                |
    | date        | int(10) unsigned    |      | MUL | 0       |                |
    | totalscore  | int(10) unsigned    |      |     | 0       |                |
    | voters      | int(10) unsigned    |      |     | 0       |                |
    | imageid     | int(10) unsigned    |      |     | 0       |                |
    | lastupdate  | varchar(100)        | YES  |     | NULL    |                |
    | editor      | varchar(50)         | YES  |     | NULL    |                |
    | userid      | int(10) unsigned    |      | MUL | 0       |                |
    | visible     | tinyint(1) unsigned |      |     | 1       |                |
    | keyword     | varchar(100)        | YES  |     | NULL    |                |
    | comments    | int(10) unsigned    |      |     | 0       |                |
    +-------------+---------------------+------+-----+---------+----------------+pa_articletext表:
    +--------------+------------------+------+-----+---------+----------------+
    | Field        | Type             | Null | Key | Default | Extra          |
    +--------------+------------------+------+-----+---------+----------------+
    | id           | int(10) unsigned |      | PRI | NULL    | auto_increment |
    | subhead      | varchar(100)     |      |     |         |                |
    | articleid    | int(10) unsigned |      | MUL | 0       |                |
    | articletext  | text             |      |     |         |                |
    | displayorder | tinyint(3)       |      | MUL | 1       |                |
    +--------------+------------------+------+-----+---------+----------------+
      

  3.   

    贴出函数
    show_errormessage 和 show_nopermission 的代码
      

  4.   

    http://community.csdn.net/Expert/topic/4338/4338855.xml?temp=.8305628
      

  5.   

    谢谢热心帮助!function show_errormessage($templatetitle="") {         global $style;
             global $header,$headinclude,$footer,$phparticleurl,$phparticletitle,$onlineuser,$webmaste
    rmail,$version;
             global $username_length_min,$username_length_max,$password_length_min,$password_length_ma
    x;
             global $message_length_max;
             global $comment_title_limit,$comment_message_limit;
             //echo $templatetitle;
             eval("\$errormsg = \"".gettemplate("$templatetitle")."\";");
             eval("dooutput(\"".gettemplate('error')."\");");
             exit;}
    function show_nopermission($reasons = array()) {
             global $header,$headinclude,$footer,$pauserinfo,$phparticletitle,$phparticleurl,$url,$sty
    le;         if ($pauserinfo[userid]==0) {
                 eval("\$reasonbit .= \"".gettemplate("nopermission_reason_notlogin")."\";");
                 eval("\$login = \"".gettemplate("nopermission_logincode")."\";");
             } else {
                 eval("\$login = \"".gettemplate("nopermission_logoutcode")."\";");
             }
             if (!empty($reasons) AND is_array($reasons)) {
                 foreach($reasons AS $reason) {
                         eval("\$reasonbit .= \"".gettemplate("$reason")."\";");
                 }
             }         eval("dooutput(\"".gettemplate('nopermission')."\");");
    }
      

  6.   

    nopermission
    nopermission_reason_notlogin
    nopermission_logincode
    nopermission_logoutcode
    等是一些模板,使一些html代码,可以在后台修改。如nopermission模板的内容是:
    <html>
    <head>
    <title>$phparticletitle</title>
    $headinclude
    </head>
    $style[body]
    $header
    <form name="form" method="post" action="$phparticleurl/member.php">
    <table width="100%" border="0" cellspacing="0" cellpadding="10" align="center">
      <tr>
        <td valign="top">
          <table width="100%" border="0" cellspacing="$style[tablecellspacing]" cellpadding="4">
    <tr><td>$description[description]:(:(:(:($articletext[articletext]</td></tr>
            <tr>
              <td width="50%">
                <table width="80%" border="0" cellspacing="0" cellpadding="4" align="center">
                  <tr>
                    <td nowrap><img src="$phparticleurl/$style[imagesfolder]/warning.gif" border="0" align="absmiddle"><span class="normalfont"><b>对不起,你没有这个权限.原因可能如下</b></span></td>
                  </tr>
                  <tr>
                    <td><span class="normalfont">
                      <ul>
                        $reasonbit
                      </ul></span>
                    </td>
                  </tr>
                </table>
              </td>
            $login
            </tr>
          </table>
        </td>
      </tr>
    </table>
    </form>
    $footer
    </body>
    </html>我对PHP和MYSQL都还是刚接触,不只这些是否对帮助解决问题是否有用,一并贴出,供参考。
      

  7.   

    对不起,楼上的<tr><td>$description[description]:(:(:(:($articletext[articletext</td></tr>一行是我测试时加进的,忘删除了。