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

更新时间:2022-05-28 20:58:51 来源:青锋建站 作者:青锋建站
  默认的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>

  以上就是青锋建站给大家分享的实现只有会员登录才能提交dede织梦自定义表单的解决方法,青锋建站,提供专业的高品质网站制作服务,包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。

转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/memberform.html

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有