下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国CMS怎样验证后台发布信息标题是否重复?

479 2021-04-27 12:24:19

收藏
想要在帝国cms后台发布信息时验证一下标题是否存在,存在即给出反馈,避免发布重复标题,这是否可以实现?

帝国CMS怎样验证后台发布信息标题是否重复?
可以,而且有两种方案
 

方案一

帝国CMS怎样验证后台发布信息标题是否重复?
后台配置,栏目管理 - 修改栏目 - 选项设置 - 勾选验证标题是否重复,这样在发布后如果标题重复,会弹窗提示,且发布会失败。
 

方案二

通过ajax验证标题是否重复,操作较为复杂但反馈是实时的,步骤如下

1、修改字段
帝国cms后台 - 管理数据表 - 找到需要配置的数据表 - 修改title字段 - 输入表单使用下面的代码

<input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60">

替换为
<input type=text name=title value="<?=ehtmlspecialchars(stripSlashes($r[title]))?>" size="60" onblur="checkTitle()">

在输入表单最下面加入如下代码
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
function checkTitle()
{
   var classid=<?=$_GET[classid]?>;
   var id=<?=$_GET[classid]?>;
    var tit=document.add.title.value;
$.ajax({
    url: 'ReTitleAjax.php?classid='+classid+'&id='+id+'&title='+tit,
    dataType:"json",
    cache: false,
        error: function(){
        alert("检测失败,请重试");
    },
    success: function(data){
        if (data==1){
            alert('重复标题');
        }
        if (data==0){
            alert('标题未重复');
            //此处可以换为更友好的提示方式
        }
    }
});
}
</script>


2、接口文件
接口文件存储路径如下(如果修改路径,要将上访ajax提交地址一并修改)
/e/admin/ReTitleAjax.php

接口代码如下
<?php
define('EmpireCMSAdmin','1');
require("../class/connect.php");
require("../class/db_sql.php");
require("../class/functions.php");
require LoadLang("pub/fun.php");
require("../data/dbcache/class.php");
$link=db_connect();
$empire=new mysqlquery();
$editor=1;
//验证用户
$lur=is_login();
$logininid=$lur['userid'];
$loginin=$lur['username'];
$loginrnd=$lur['rnd'];
$loginlevel=$lur['groupid'];
$loginadminstyleid=$lur['adminstyleid'];
$classid=(int)$_GET['classid'];
$id=(int)$_GET['id'];
$title=AddAddsData($_GET['title']);
$where='';
if($id)
{
$where=' and id<>'.$id;
}
//已审核
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where title='".addslashes($title)."'".$where." limit 1");
//未审核
if(emptyempty($num))
{
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]."_check where title='".addslashes($title)."'".$where." limit 1");
}
echo json_encode($num);
?>

上面是采用post查询返回json结果的方式来实现查重,我们还可以通过get方式,js函数如下:
<script type="text/javascript">
function  checkTitle()
{
    var classid='<?=$_GET[classid]?>';
    var id='<?=$_GET[id]?>';
    var tit=document.add.title.value;
        var answerurl='ReTitleAjax.php';
        $.get(answerurl+"?classid="+classid+'<?=$ecms_hashur['ehref']?>&title='+tit, function(data){
            if(data){
                if(data==1){
                    $("#titletips").html("<font color='red'>已经存在此名称,请检查是否已经添加过</font>");
                }
                else{
                    $("#titletips").html("<font color='green'>可以添加信息</font>");
                }
                return false;
            }
            else{
                $("#titletips").html("<font color='red'>检测失败,请重试</font>");
            }
        });
}
</script>

接着在title字段的input后放一个容器用于存储提示信息,可参考
<span id="titlerepeattips"></span>
 

方案一与方案二的区别

方案一操作简单方便,但验证只在提交时验证,方案二需要具备一定的开发能力,但验证更为及时高效。两种方案可选择其一使用。
 

附注

如果帝国cms后台开启金刚模式或刺猬模式,需要在js函数中加入hash验证字符串,并在php处理文件中加入验证函数,否则容易出现白屏的问题。

本文地址:https://xzo.com.cn/develop/empire/860.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
  • 隐藏的大佬 2021-05-10 23:17:46评论 #沙发#

    666666

  • 隐藏的大佬 2021-05-27 00:42:39评论 #板凳#

    一直在考虑后台标题重复怎么优化的问题,有大佬验证过吗

关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS留言板怎样增加字段?
帝国CMS留言板怎样增加字段?

网站留言板是用户留存的重要环节,但帝国cms自带的留言板功能十分单一,大多数...

1 292
帝国CMS添加/修改信息后,怎样自动刷新栏目和首页?
帝国CMS添加/修改信息后,怎样自动刷新栏目和首页?

很多网友在新增信息之后发现首页看不到栏目也看不到,于是开始点刷新刷新内容...

3 663
帝国CMS有必要开发百度小程序吗?
帝国CMS有必要开发百度小程序吗?

百度小程序的开放生态对网站站长及企业商家而言,能够从中获取到什么呢?百度智...

1 334
帝国cms一级栏目一直显示本栏目暂无新增信息怎么办?
帝国cms一级栏目一直显示本栏目暂无新增信息怎么办?

今天有客户联系鸥哥,说网站一级栏目下有4个子栏目,每个子栏目都是有信息的,但...

1 249
帝国cms备份的数据存储在哪个文件夹?
帝国cms备份的数据存储在哪个文件夹?

有些时候,我们需要备份数据并取出来,此时从哪里去取呢?帝国cms备份的数据存储...

1 707
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?

帝国cms自带的js是可以实现周榜、月榜效果的,但js由于其临时加载的特性,天生...

3 579
帝国cms会员注册怎样跳过选择会员组类型?
帝国cms会员注册怎样跳过选择会员组类型?

帝国cms会员注册必须要选择会员组类型,哪怕你只有一个会员组也一样。那么,我...

0 312
帝国cms把自己ip禁止访问了怎么办?
帝国cms把自己ip禁止访问了怎么办?

帝国cms有禁止ip访问的功能,但如果不小心禁止了自己的ip,或是操作失误导致所...

0 598
随机帝国CMS开发教程
帝国cms信息转移到其他栏目怎样维持链接不变?
帝国cms信息转移到其他栏目怎样维持链接不变?

在网站建设初期,由于栏目规划不完美,常有把一个栏目下的文章转移到其他栏目的...

0 404
帝国CMS怎样根据栏目关键字调用Tags信息
帝国CMS怎样根据栏目关键字调用Tags信息

在帝国cms开发过程中,我们经常会遇到这样那样的需求。就如栏目信息的展示,有...

1 389
帝国cms删除文章时不删除该文章所属的附件
帝国cms删除文章时不删除该文章所属的附件

帝国cms删除文章时往往非常彻底,不仅删除了数据库里的文章信息、生成的页面,...

0 364
帝国cms开发json数据接口调用栏目信息
帝国cms开发json数据接口调用栏目信息

json数据由于其高效、强兼容性的特质受到许多开发者的青睐,帝国cms开发一个...

0 448
帝国cms面包屑导航[!–newsnav–]修改方式大合集
帝国cms面包屑导航[!–newsnav–]修改方式大合集

本文介绍的帝国cms面包屑导航newsnav修改为newsnav完整的修改攻略,包括标签...

11 1804
帝国cms怎样结合memcached缓存优化性能?
帝国cms怎样结合memcached缓存优化性能?

本函数能实现灵动标签缓存功能, 使用方法:传入生成的灵动标签部分,缓存时间秒,...

0 748
帝国cms同一张数据表无法同时进行select和update数据操作的优化
帝国cms同一张数据表无法同时进行select和update数据操作的优化

在少部分应用场景中,我们需要选中表中的指定元素进行更新操作。如果元素固定...

0 341
帝国cms栏目信息防采集栏目列表只显示100条信息
帝国cms栏目信息防采集栏目列表只显示100条信息

很多人仅仅获取知识还不满足,希望能够把别人的知识全部采集拷贝下来变成自己...

3 446
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入