QQ在线咨询在线咨询帮做网络积累了丰富的项目经验,聚集了一批资深专业人才,售后服务一流,内业好评不断,是一家专业的网站建设服务商。微信:专业的网站建设服务商。微信:网站建设地图 | 城市分站

如何实现只有会员登录才能提交dede织梦自定义表单

时间:2020-03-18 17:50:19作者:网站建设工程师来源:帮做网络浏览量:0

导  读:默认的 dede自定义表单 是任何人都可以提交,且不带必填项验证功能,很容易造成...
默认的dede自定义表单是任何人都可以提交,且不带必填项验证功能,很容易造成许多无用的表单。占用了数据空间不说,而且浪费了管理员的精力,还容易被黑客利用。
  在某情况下我们想通过dedeCMS织梦系统实现只有让会员登录才能看到某些会员产品,以及产品的价格,只能登录会员才能下订单的功能。但是默认的dedeCMS没有这样的功能,今天青锋建站给大家提供这一功能的解决方法,实现只有登录才能看到某些产品价格,才能下单。
  要实现这一功能就必须实现以下方法:实现自定义订单带权限认证、登录会员不能审核删除订单、会员登录才能看到产品价格、会员登录才能看到表单、表单增加必填项。以下是帮做网络给大家分享的具体的实现步骤:

步骤一:实现dedeCMSPHP脚本会员验证功能

1、将/plus/下的diy.php、和/dede/下的diy_list.php移动到/member/目录下。一定要记住是移动,不然黑客还可以实现自建表单实现提交。
将这两个脚本添加会员验证功能:在这两个脚本的开始添加以下脚本require_once(dirname(__FILE__)."/config.php");CheckRank(0,0);

步骤二:实现防止黑客伪造表单

  由于即使我们实现了会员登录验证的功能,只是实现了只有登录用户才能查看、审核、删除、提交保存表单。黑客仍然可以自己注册一个账号,注册后伪造表单进行提交,因此需要添加以下脚本检查表单的来源,增强安全性。
只需要在diy.php步骤一添加脚本的下面增加以下脚本:
    $servername = $_SERVER['SERVER_NAME'];//当前服务器
    $url_from = $_SERVER['HTTP_REFERER']; //前一URL
    if ($servername != substr($url_from, 0, strlen($servername))) {
        $is_same_site = false;
    } else {
        $is_same_site = true;
    }
     
    if ($is_same_site) {
        die('禁止爬墙~~');
    }

步骤三:去掉会员审核删除表单的权限

在diy_list.php表单提交脚本中找到以下脚本:
else if ($action == 'edit')
Else if($action == 'check')
Else if($action == 'delete')
注册是删除这三个脚本对应的else if 后面的整个语句段,不是只删除这三个语句。这样做就实现了禁止会员编辑、审核、删除表单的权限。

步骤四:修改管理员默认使用脚本

  由于后台管理员使用的也是/plus/下的diy.php这个脚本,但是我们将这个脚本移动到了/member/下面,因此需要将diy.php这个脚本复制一份放到/dede/下面,将添加以下脚本:require_once(dirname(__FILE__)."/config.php");
CheckPurview('sys_User');
  这样做后dedeCMS后台管理菜单中的表单预览就出现了路径错误,还需要修改管理员菜单下的“前台预览”的脚本路径。将/dede/templets/下的diy_main.htm中的前台预览的链接地址改为新的链接地址就可以了:
<a href="diy.php?action=post&diyid={dede:field.diyid/}" target="_blank"><img src='images/gtk-tmp.png' title='预览' alt='预览' />前台预览</a>

转载请注明出处:网站首页> 知识学堂 > dedecms仿站 > 如何实现只有会员登录才能提交dede织梦自定义表单