张文保的博客
张文保 · Paul Zhang

Engineering the Future

织梦dedecms自定义表单验证手机获取IP、时间、URL、限制留言次数

首先自定义表单须有这四个字段:IP,domain(域名),time(留言时间),telephone(检测手机号)

思路是这样的,如果不先检测手机号码,随便输入一个号码之后提交,虽然没有写入数据库,但是浏览器缓存已经记录你提交了一次了。再次输入正确的手机号码,会提示你已经输入了。你要清除缓存重新留言,所以先检测手机号码

先检测手机号码是否正确

//验证手机号
		if(!preg_match("/^1[3456789]\d{9}$/", $telephone))
        {
            // showMsg('手机号不对,请重新输入', '-1');
            echo "<script>alert('手机号不正确,请重新输入'); history.go(-1)</script>";
            exit();
        }
        //验证手机结束

获取IP地址和留言时间

//获取IP地址和留言时间
                    if($fieldinfo[0] == 'ip')
                    {  
                    ${$fieldinfo[0]}=GetIP();  
                    }  
                    if($fieldinfo[0] == 'time')  
                    {  
                    ${$fieldinfo[0]}=date("Y/m/d H:i:s");  
                    }
                    //结束获取IP地址和留言时间
                    if($fieldinfo[0] == 'domain'){${$fieldinfo[0]}=$_SERVER['HTTP_REFERER'];}
                    //结束获取URL

检测用户是否已经提交过表单

//检测游客是否已经提交过表单 
        if(isset($_COOKIE['VOTE_MEMBER_IP']))  
        {  
            if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR'])  
            {  
                // ShowMsg('您已经填写过表单啦','-1');
                echo "<script>alert('您已经填写过表单啦!招商经理会尽快与您取得联系'); history.go(-1)</script>";
                exit();  
            } else {  
                setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');  
            }  
        } else {  
            setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');  
        } 
        //结束检测

本文标题:《织梦dedecms自定义表单验证手机获取IP、时间、URL、限制留言次数》
网址:https://zhangwenbao.com/dedecms-custom-form-verification-mobile.html
作者:张文保
发布时间:2019-09-29
许可协议:CC BY-NC-SA 4.0
发表新评论
SSL安全认证