Archive for the ‘php’ Category

DEDECMS中对发布人的修改

需求:因为我们的网站(oemay女人妆)中的新闻基本都是采集的,但是因为采集的都是发布人都是同一人,而我们为了能更好的统计编辑工作业绩,希望在采编进行审核和二次编辑并发布的时候,将发布人替换成为采编的信息.简单的说,就是希望实现谁审核,发布人就是谁的效果

关键点:
1.在DEDE的数据库中的文档主表为dede_archives,其中mid字段为发布人字段,类型为mediumint(8)
2.DEDE的文章列表中审核,生成,推荐等操作的相关文件dede/archives_do.php
3.类userlogin中的getUserID方法可以获取当前编辑的ID号

Read the rest of this entry »

DEDECMS中增加自定义属性的方法

今天老鬼跟我说我们的新站可能需要一些新的属性,而在DEDECMS中提示(DEDE最新版本6.5)

注意事项:这个版本中att对应的字段是SET类型字段,因此为了数据安全起见不允许用户增加其它类型

老鬼感觉不爽,让我改一下,印象中DEDE这个属性是数据库中有枚举的,查看数据库结构搞定~方法如下 Read the rest of this entry »

dede中设置水印无效的解决办法

虽然很喜欢用DEDE,但是DEDE还是有很多地方确实没有注意,设置水印无效是一个老问题了,刚刚发布的5.6里面还是没有解决,我们还是来看看解决的办法吧

方法一:选左侧的“系统”—-图片水印设置—-在右侧的“DedeCms系统配置参数 – 图片水印设置”的“添加水印的图片大小控制(设置为0为不限):”中设置“宽:0”,“高:0”,再点“确定”,这种方法的弊端是只是让水印消失,实际上关闭水印还是可以的;
方法二:找到水印图片位置/data/mark/mark.png,上传新的水印图片将原图片替换。

DEDECMS栏目内容无法插入的解决办法

在给江西威敏套CMS的时候,使用DEDECMS的栏目内容,发瑞在IE下添加不了内容,IE状态栏就出现了一个错误,如下。

行:33
Char:11707
错误:由于出现错误800a025e 而导致此项操作无法完成。
代码:0
URL:http://www.jxweimin.com/include/FCKeditor/editor/fckeditor.html?InstanceName=content&Toolbar=Default…..

看链接的英文估计是那个内容输入编辑页面,由于是新建的,所以是空值,没有进行界限检测吗?所以出错。。于是栏目内容便写不入数据库。或者说没能赋值给生成HTML文档的处理文件。。

GOOGLE了一下,得到如下解决方案,目前有两种方法:
Read the rest of this entry »

php中base64_encode()加密和DEDEEIMS的更改数据表前缀

今天在使用DEDE做的EIMS的时候,出现了一个小问题,当我更改其数据表前缀后,添加新闻报错,找不到dede_archives表,我以为是程序的问题,找了半天,在程序中始终无法找到问题所在,就快要疯了的时候,总算在数据库当中找到了原因,在dede_channeltype中有个maintable的字段,这个字段默认为dede_archives,如果你更改了数据表前缀,当然就找不到dede_archives这个表了,于是程序出错。

找到原因,马上开始弄,本以为在安装时的sql语句文件中能方便的进行修改,但未想到dede对sql语句使用MIME base64 进行了编码,一下无语,只好把SQL语句加在了程序当中。搞定。

心得如下:
Read the rest of this entry »

PHP中时区问题的解决–使用北京时间

在PHP中时间默认情况下使用的是格林威治时间,做设计PHP程序的时候,可能会发现时间和本地时间相差8个小时,问题的原因就是时区的设定!解决办法可以有:

1.修改PHP的配置文件:

打开PHP.INI,找到date.timezone,前面有;号就去掉,后面加上PRC(中华人民共和国的缩写),重启服务即可。

date.timezone = PRC

2.在程序中设定时区

php中有一个date_default_timezone_set方法,可以在需要时间的地方前加上一句date_default_timezone_set(Asia/Taipei); 这个值大家可以参考一下PHP文档,让我很郁闷的是,有shanghai,chongqing等 我好像在手册当中没有发现beijing。。。

dedeeims中搜索实现指定栏目搜索

今天洗了澡回来(PS:为什么有人能洗一个多小时???),老鬼就问我一个问题,在DEDE的EIMS中搜索功能搜索结果出来的是全部的文章,而老鬼想要的效果是搜索结果只出现产品中的结果,DEDE的EIMS应该说是一款很好用的自主建站企业建设网站的很好用的工具,觉得应该有这个功能,于是下载,解压,研究,搞定。

dedeeims中搜索实现指定栏目搜索的过程方法如下

DEDEEIMS搜索主要在plus/search.php这个页面,页面中发现其提供了$typeid及$channeltype等几个参数,根据使用DEDECMS的经验,这两个名字应该是栏目ID和模型ID,而在实例化搜索的SearchView类时,也将这两个参数传递进去。OK,由此入手,修改方法为(以DEDEEIMS默认的蓝色模板为例):

(用EIMS的新手可以参考下,老手跳过!) Read the rest of this entry »

about session_start()

今天做PHP时,遇到关于session的问题,在测试一个东西的时候提示Warning: session_start(): Cannot send session cookie – headers already sent by之类的错误提示, 在检查了session_start()处于第一行之后,百度了下,总算搞定了。
解决办法:php.ini中session.save_path前的;去掉后,将其改成一个存在的路径。

附:session_start()说明:此函数用于页面中需要用到sesssion的地方,需要在使用之前打开session,函数返回值一般为true.

phpmyadmin的配置方法

一直用的是MYSQL的命令行来管理的数据库,用起来简单方便,最近办公室要搞PHP,看见同事在用PHPMYADMIN,我机子中一直是有这个软件的,只是一直没的去配置,今天搞了一下,配置方法如下:

  1. 在IIS的默认站点中建立虚拟目录,目录地址指向向PHPMYADMIN的文件目录。
  2. 在PHPMYADMIN目录中查找libraries目录,打开里面的cconfig.default.php文件
  3. 修改$cfg['PmaAbsoluteUri'] = ”;这里填写phpmyadmin的访问网址,如http://localhost/phpmyadmin
  4. 修改mysql主机信息
    $cfg['Servers'][$i]['host'] = ‘localhost’; MYSQL地址,一般为localhost
  5. 填写mysql用户名及密码
    1. $cfg['Servers'][$i]['user'] = ‘root’;  //填写mysql用户名,一般为root
    2. $cfg['Servers'][$i]['password'] = ’sgagame’;//填写mysql密码
  6. 选择认证方法
    $cfg['Servers'][$i]['auth_type'] = ‘config’; //有四种方式可以选择:cookie,http,HTTP(针对Apache),config,我选择的是config,因为是在本机测试,安全方面不用考虑,一般选cookie,特别是在服务器中
  7. 如认证方式选择cookie,还需要设置$cfg['blowfish_secret'] = ”;随意填写,不留空即可
  8. 测试下,应该成功鸟

php环境配置时出现无法访问MYSQL数据库的解决办法汇总

昨天重新配了一下PHP的环境(windows 2003+iis下),安装PHP时没的问题,安装MYSQL时也没的问题,而且都可以联上,但是,在使用mysql_connect()函数时提示此函数无法使用,在安装discuz!时也提示“请检查 mysql 模块是否正确加载”及“不支持Mysql数据库,无法安装论坛”,在检查了php.ini中对mysql扩展的支持后开始迷惑,windows/system32下也存在有libmysql.dll,在网上搜了一大堆,都是很平常的问题的解决方法,后来重新复制的时候发现原来我的libmysql.dll是mysql程序中的,把php文件夹中相对应文件copy进去,问题解决。

为方便其他人,我把这个问题的解决方法都列下面,有需要的同志可以参考下!

1.在系统的 system32(C:\windows\system32)目录下缺少libmysql.dll文件,解决方法是找到php目录下的libmysql.dll,并将libmysql.dll复制到C:\ windows\system32目录中,然后重新启动Web服务(IIS中右键点击本地计算机–>所有任务)。

2, 在C:\windows目录下的php.ini文件中,php.ini配置不正确,没有将“;extension=php_mysql.dll”中的前面一个“;”去掉,所以不能使用相应功能,解决方法是打开php.ini文件找到
;extension=php_mysql.dll
改成
extension=php_mysql.dll //去掉前面的;使之生效

3, Mysql目录没有读取权限,正确的目录权限如下:
administrator 完全控制
system 完全控制
users 读取和运行+列出文件夹目录+读取
其他的用户权限全部删除,然后重启MYsql服务和Web服务
(注:以上设置无安全设置;建议修改后重启一下服务器)
重要,还要检查php.ini文件的权限,检查复制到system32里面的php文件的权限,检查php安装目录文件夹的权限.至少要有users默认权限.temp文件夹至少要有users组修改级别权限.

最后感谢Comsenz Team