dedecms 获取 get参数(dedecms采集怎么用)

随着互联网技术的不断发展,越来越多的企业开始使用DedeCMS作为自己的网站内容管理系统。DedeCMS是一款功能强大、操作简单的CMS系统,深受广大用户喜爱。在DedeCMS的使用过程中,获取GET参数是必不可少的技能。本文将为大家详细解析DedeCMS获取GET参数的方法和技巧,帮助大家轻松应对各种场景。

一、GET参数概述

GET参数是HTTP协议中的一种参数传递方式,它通常用于浏览器向服务器发送查询请求。在DedeCMS中,GET参数常用于实现分页显示、搜索功能、URL重写等功能。

1. GET参数的格式:GET参数的格式通常为“参数名=参数值”,多个参数之间使用“&”符号连接。例如:“?page=1&keywords=dedecms”。

2. GET参数的作用

实现分页显示:在内容列表页面,通过获取GET参数中的页码,实现内容的分页显示。

搜索功能:在搜索页面,通过获取GET参数中的关键词,实现搜索功能。

URL重写:通过修改URL,实现SEO优化。

二、DedeCMS获取GET参数的方法

DedeCMS提供了多种获取GET参数的方法,以下列举几种常用方法:

1. 使用$_GET全局变量

在PHP中,$_GET是一个预定义的全局数组,包含了通过GET方法传递的参数。以下是一个示例代码:

“`php

// 获取page参数

$page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1;

// 获取keywords参数

$keywords = isset($_GET[‘keywords’]) ? $_GET[‘keywords’] : ”;

?>

“`

注意事项:使用$_GET全局变量时,要注意避免XSS攻击。

2. 使用DedeCMS函数

DedeCMS提供了一些内置函数,方便获取GET参数。以下列举几个常用函数:

GetQuery(‘参数名’):获取GET参数的值。

GetRequest(‘参数名’):获取GET参数的值,支持多级参数。

GetRequestArray(‘参数名’):获取GET参数的值,以数组形式返回。

示例代码

“`php

// 获取page参数

$page = GetQuery(‘page’);

// 获取keywords参数

$keywords = GetQuery(‘keywords’);

?>

“`

3. 使用URL解析

在DedeCMS中,可以使用URL解析功能获取GET参数。以下是一个示例代码:

“`php

// 获取page参数

$page = $dsql->GetOne(“

dedecms5.7伪静态怎么设置

dede5.7伪静态设置方法。

dede5.7伪静态设置七步法:

第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;

注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静

态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载

Rewrite组件,然后配置httpd.ini文件。

第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:

将所有文档设置为“仅动态浏览”:

update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”:

update dede_arctype set isdefault=-1

第三步、列表页、文章页伪静态修改

打开/include/helpers/channelunit.helper.php。

(1)查找:

//动态文章

if($cfg_rewrite=='Y')

{

return$GLOBALS[“cfg_plus_dir”].”/view-“.$aid.'-1.html';

}

替换为

//动态文章

if($cfg_rewrite=='Y')

{

return”/DedeCMS/DedeCMS5.7-“.$aid.'-1.html';

}

意思是:将默认的/plus/view-1-1.html文章链接格式改为/DedeCMS/DedeCMS5.7-1-1.html。

(2)查找:

//动态

$reurl=$GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;

替换为

//动态

$reurl=”/category/list-“.$typeid.”.html”;

意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为/dedecms/list-1.html形式。

第四步、列表分页伪静态修改

打开/include/arc.listview.class.php

查找:

$plist= str_replace('.php?tid=','-',$plist);

替换为

$plist= str_replace('plus/list.php?tid=',‘DedeCMS/DedeCMS5.7-',$plist);

将默认的plus/list.php?tid=替换成RMB/list-;

意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html。

第五步、文章分页伪静态

打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:

查找:

$PageList= str_replace(“plus/view.php?tid=”,”DedeCMS/DedeCMS5.7-“,$PageList);

替换为

$plist= str_replace('plus/view.php?tid=',’DedeCMS/DedeCMS5.7-',$plist);

将默认的plus/view.php?tid=替换成RMB/huilv-;

意思是:将默认的文章分页链接格式plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html

第六步、TAG标签伪静态

DedeCms默认的TAG标签URL,形如/tags.php?/dedecms模板/,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板/,是不是好看多了。

下面我们来改一下,打开/include/taglib/tag.lib.php:

查找:

$row['link']=$cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;

替换为

$row['link']=$cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;

这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!

第七步、httpd.ini伪静态规则:

[ISAPI_Rewrite]

# 3600= 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteRule ^(.*)/RMB/list-([0-9]+)\.html$1/plus/list\.php\?tid=$2 [I]

RewriteRule ^(.*)/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I]

RewriteRule ^(.*)/RMB/huilv-([0-9]+)-([0-9]+)\.html$1/plus/view\.php\?arcID=$2&pageno=$3 [I]

RewriteRule ^(.*)/(.*)_(.*)_([0-9]+)\.html$1/huilv/?from=$2&to=$3&num=$4 [I]

RewriteRule ^(.*)/tags\.html$1/tags\.php [I]

RewriteRule ^(.*)/tags/(.*)(?:(\?.*))*$1/tags\.php\?\/$2 [I]

RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))*$1/tags\.php\?\/$2\/ [I]

RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))*$1/tags\.php\?\/$2\/$3 [I]

RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))*$1/tags\.php\?\/$2\/$3\/ [I]

将上面代码保存为:httpd.ini上传到网站的根目录。

如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。

dedecms自定义图片字段标签问题

之前选择的自定义图片图集

一、添加一个获取图片地址的方法

打开/include/extend.func.文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的?>上一行加入以下函数代码:(如果结尾没有?>那就直接在最下面添加)

function GetOneImgUrl($img,$ftype=1){ if($img<>''){$dtp= new DedeTagParse();$dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as$ctag){ if($ctag->GetName()=='img'){$width=$ctag->GetAtt('width');$height=$ctag->GetAtt('height');$imgurl= trim($ctag->GetInnerText());$img=''; if($imgurl!=''){ if($ftype==1){$img.=$imgurl;} else{$img.='<img src=”'.$imgurl.'” width=”'.$width.'” height=”'.$height.'”/>';}}}}}$dtp->Clear(); return$img;}}

可以直接用下面的方法调用

[field:自定义图片字段名 function=”GetOneImgUrl(@me,显示类型)”/]

最终使用方法。

{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}

<li><a href=”[field:arcurl/]” target=”_blank”><img border=”0″ src=”[field:datu%20function='GetOneImgUrl(@me,1)'/]”></a></li>

{/dede:arclist}

最终调用到这个图片地址。

织梦dedecms模块插件怎么显示不出来

有4中常见问题,可以参考一下问题寻找对应答案:

第一种:

问题描述:本地测试正常,上传到空间后列表空白,重新安装都是空白,空间所有文件使用 777权限都一样是空白。

解决方法:找到\data\module下的moduleurllist.txt,如果moduleurllist.txt里没内容就是被破坏了,从安装包里提出吧。

第二种:

问题描述:上传到空间后列表空白,重新安装都是空白,空间所有文件使用 777权限都一样是空白,将moduleurllist.txt上传覆盖也是空白(服务器缓存是个问题,所以这种方法很实用)。

问题原因:DedeV5.7以后的版本出现管理列表无法显示的情况多一些,这是因为官方将后台模块的列表远程的放在了官方服务器上了。虽然这样可以让织梦的用户获得更多官方的模块,但有时网站在某个时间段连接不上织梦官方服务器,就可能无法写入模块列表文件内容,造成模块列表空白。总的来说,/data/module/moduleurllist.txt模块列表文件没有内容是织梦模块管理列表空白的直接原因。

解决方法:打开/dede/module_main.php文件(其中dede为您的后台管理目录),注释掉大约91行和95行的如下代码:

$modules_remote=$dm-&gt;GetModuleUrlList($moduletype,$mdurl);

$modules= array_merge($modules,$modules_remote);

这样织梦程序就不会从远程去获取列表,而是从本地获取列表了。

第三种:

问题描述:整个织梦模块管理页面都是空白的。

问题原因:还有一种情况也会造成织梦管理模块管理后台的列表无法显示,就是禁用了 fsockopen()函数,这个函数是织梦用来获取远程模块管理列表的。

解决方法:可以用问题二的解决方法禁止织梦远程获取管理列表;

另外就是开启 fsockopen()函数,如果你的主机支持这么做的话。

第四种:

问题描述:下载源码下来后在本地安装后台模块可以正常显示,但是上传到空间之后模块显示不了了,这种情况一般是你的空间参数或者设置的问题,你可以咨询空间商,或者试图尝试一下这种方法。

解决方法:将include中的文件dedehttpdown.class.php进行相关的修改,具体就是将$this->m_fp?=?@fsockopen($this->m_host,?$this->m_port,?$errno,?$errstr,10);

替换为$this->m_fp?=?@stream_socket_client($this->m_host?.?':'?.?$this->m_port,?$errno,?$errstr,10);

注意事项:

造成空白的原因一:data/module/中的moduleurllist.txt文件被破坏,这时我们可以下载下来打开看一下,如果内容为空,就说明被破坏了,我们从源码中提取一个覆盖上去就行了;

造成空白的原因二:module_main.php文件受损,我们从源码中提取出来上传覆盖即可,这里强调的是,做这些之前,一定要备份,防止出现意想不到情况,因为程序这个东西不稳定因素还是比较多的

造成空白的原因三:织梦DedeCMS后台模块管理列表不显示的原因还有其他的,比如织梦程序没有足够的权限,无法写入/data/module/moduleurllist.txt文件,也会造成列表空白的。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享