18038435860

JTBC_PHP对单篇文章设置访问权限教程

时间:2018-09-19 10:16:19 点击:1132 来源:易速网络

1、创建数据表和添加字段
文章表jtb_articlt 中添加:锁定文章字段 jtb_alock(0为锁定,1为不锁定);锁定文章所需积分数字段 jtb_abuy。
创建购买文章记录表jtb_article_buy 字段为:id:id,文章id:jtb_auid,文章标题:jtb_atopic,积分数:jtb_abuy,购买时间:jtb_atime,会员名:jtb_ausername,剩余积分:jtb_aintegral。
用户表jtb_ubase  主要字段  用户积分:jtb_uintegral 。
积分动向表  jtb_sys_integral  。

2、在article\common\incfiles\manage_config.inc.php
adddisp节点添加
" . ii_cfname('lock') . ",
" . ii_cfname('buy') . "
" . ii_get_num($_POST['lock']) . ",
" . ii_get_num($_POST['buy']) . ",
editdisp节点添加
" . ii_cfname('lock') . "=" . ii_get_num($_POST['lock']) . ",
" . ii_cfname('buy') . "=" . ii_get_num($_POST['buy']) . ",
然后在article\common\template\manage.jtbc下的
add节点添加
<tr>
    <td height="25">{$=ii_itake('config.lock','lng')}</td>
    <td>{$=mm_sel_yesno('lock',1)}</td>
</tr>

<tr>
    <td height="25">{$=ii_itake('config.buy','lng')}</td>
      <td><input type="text" name="buy" size="5"></td>
</tr>


edit节点添加
<tr>
      <td height="25">{$=ii_itake('config.lock','lng')}</td>
      <td>{$=mm_sel_yesno('lock',{$lock})}</td>
</tr>
<tr>
        <td height="25">{$=ii_itake('config.buy','lng')}</td>
        <td><input type="text" name="buy" size="5" value="{$buy}"></td>
</tr>

最后在 article\common\lanauage\config.jtbc下添加

  <item>
      <disinfo><![CDATA[lock]]></disinfo>
      <chinese><![CDATA[开放文章]]></chinese>
    </item>
    <item>
      <disinfo><![CDATA[buy]]></disinfo>
      <chinese><![CDATA[积分数]]></chinese>
    </item>
第二步到这里就ok了!下面一步是最重要的!

3、在article\common\incfiles\module.inc.php文件下

function pp_module_detail($genre, $id, $page)
{
    global $conn;
    global $ndatabase, $nidfield, $nfpre;
    $tsqlstr = "select * from $ndatabase where " . ii_cfname('hidden') . "=0 and $nidfield=$id";
    $trs = ii_conn_query($tsqlstr, $conn);
    $trs = ii_conn_fetch_array($trs);
    if ($trs)
  {
  date_default_timezone_set(PRC); //设置时差
  //设置了权限限制的文章
    if($trs[ii_cfname('lock')] ==0)
    {
    //print_r($_SESSION);
    //判断是否登录
      $aa=$_SESSION['jtb_cms_username'];
      if(!$aa){
      $bb="<script>      alert('这篇文章需要登录才能阅读,您还没有登录!');
      var r=confirm('          登录  或  注册  \\n \(亲,注册我们的会员是免费的噢!\)');
      if (r==true){
        window.location.href='http://www.golfhunter.com.cn/passport/?type=login?';
      }else{
      close();
      }</script>";
      echo $bb=iconv('gb2312','utf-8',$bb);
      //Header('Location: http://www.golfhunter.com.cn/passport/?type=login');
      }
    //已登入的       else
      {
        $tsqlstr = "select * from jtb_article_buy where jtb_auid=$trs[0] and jtb_ausername='$aa'";
        $tra = ii_conn_query($tsqlstr, $conn);
        $tra = ii_conn_fetch_array($tra);
      //判断是否购买过该片文章
        if(!$tra)
        { 
        $abc="<script>alert('这篇文档需要扣除".$trs[jtb_abuy]." 积分才能访问');
        var r=confirm('您确定要购买这篇文章吗?');
        if (r==true){
        alert('购买过的文章,不会重复扣您的积分的,现在进入购买流程!');
        }else{
        alert('高尔夫达人网祝您生活愉快');
        close();
        }</script>";
          echo $abc=iconv('gb2312','utf-8',$abc);
          $tsqlstr = "select * from jtb_ubase where jtb_uusername='$aa'";   
          $trb = ii_conn_query($tsqlstr, $conn);
          $trb= ii_conn_fetch_array($trb);
          //如果积分为空或者小于需要扣除的积分数不能查看该文章
            if($trb[jtb_uintegral]=='' || $trs[jtb_abuy]> $trb[jtb_uintegral])
            {               
              $moremsg = "这篇文档需要 <font color='red'>".$trs[jtb_abuy]." 积分</font> 才能访问,你目前拥有积分:
                    <font color='red'>".$trb[jtb_uintegral]." 分</font> !";

                    return $moremsg =iconv('gb2312','utf-8',$moremsg);               
            }
            else
            {  //否则就更新用户表中的积分
              $mysqlstr ="UPDATE jtb_ubase SET jtb_uintegral = jtb_uintegral-$trs[jtb_abuy] where jtb_uusername='$aa' ";
              $trc = ii_conn_query($mysqlstr, $conn);
              $trc = ii_conn_fetch_array($trc);
                if(!$trc)
                { 
                    $date = date("Y-m-d H:i:s",time());
                    $date1 = date("Ymd",time());
                    $tsqlstr = "select * from jtb_ubase where jtb_uusername='$aa'";   
                    $trd = ii_conn_query($tsqlstr, $conn);
                    $trd= ii_conn_fetch_array($trd);
  //购买成功写入数据到
购买文章记录表,防止重复扣积分。                 $tsqlstr ="insert into jtb_article_buy (`jtb_auid`,`jtb_atopic`,`jtb_abuy`,`jtb_atime`,`jtb_ausername`,`jtb_aintegral`) VALUES ('$trs[0]','$trs[jtb_atopic]','$trs[jtb_abuy]','$date','$aa','$trd[jtb_uintegral]')";
                @ii_conn_query($tsqlstr, $conn);
                $abc="<script>alert('购买成功,已从您帐户扣除".$trs[jtb_abuy]."积分,您现在可以正常阅读该文章了!');</script>";
                    echo $abc =iconv('gb2312','utf-8',$abc);   
                  //die($trb[jtb_uintegral]);
//购买成功写入数据到积分动向表,让老百姓消费的明明白白的!
                $tsqlstr="insert into jtb_sys_integral (jtb_siintegral,jtb_sinintegral,jtb_siitype,jtb_siusername,jtb_siday,jtb_sitime)  values ('-$trs[jtb_abuy]','$trd[jtb_uintegral]','117','$aa','$date1','$date')";
                ii_conn_query($tsqlstr, $conn);
                //die($tsqlstr);
                /*******************购买成功,显示该文章内容**********************/
                    }  }
        }else {

        /*******************已购买过的文章,显示该文章内容**********************/     


        }  }
  } else{
  /********** 未锁定的文章 ,显示该文章内容**********/
  }    }  }
然后添上细节!就大功告成了!
,真实故事!