默认的dede自定义表单是任何人都可以提交,且不带必填项验证功能,很容易造成许多无用的表单。占用了数据空间不说,而且浪费了管理员的精力,还容易被黑客利用。 在某情况下我们想通过dedeCMS织梦系统实现只有让会员登录才能看到某些会员产品,以及产品的价格,只能登录会员才能下订单的功能。
但是默认的dedeCMS没有这样的功能,今天给大家提供这一功能的解决方法,实现只有登录才能看到某些产品价格,才能下单。
要实现这一功能就必须实现以下方法:实现自定义订单带权限认证、登录会员不能审核删除订单、会员登录才能看到产品价格、会员登录才能看到表单、表单增加必填项。以下是具体的实现步骤:
步骤一:实现dedeCMS脚本会员验证功能
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中的前台预览的链接地址改为新的链接地址就可以了:
织梦二次开发QQ群
本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617) 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » 织梦实现会员登录才能提交自定义表单