02

Ecshop安装过程中的问题:cls_image::gd_version()和不支持JPEG

在安装Ecshop的时候,遇到两个问题:

1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31

解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:

1)将function gd_version()改成static function gd_version()即可。

2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:

$p = new cls_image();
return $p->gd_version();

2.检测环境的时候提示:是否支持 JPEG是不支持的。

解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:

$jpeg_enabled = ($gd_info['JPEG Support']        === true) ? $_LANG['support'] : $_LANG['not_support'];

为何说Ecshop写错了,因为我打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。

3.默认时区问题:Warning: date_default_timezone_get(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone. in D:\X\www\ecshop\install\includes\lib_installer.php on line 225

解决:方法1,将php.ini里是date.timezone前的”;”去掉,改成:date.timezone = PRC;

方法2,在页头使用 ini_set('date.timezone','Asia/Shanghai');

方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');

31

CSS滚动条样式,火狐无效

效果不好,自己改。

另有滚动条插件,没有下载测试。链接 >> 狂点

据说,用法是这个样子的,在PHP100看到的,如下:

 

30

Opacity透明度属性IE浏览器及其它浏览器兼容方法

 

29

常用jQuery方法分类汇总(待续)

jQuery减少了代码的书写量,为前端开发节省了很多时间。有关于JavaScript常用函数请看这里 JavaScript常用函数收集

一、jQuery添加移除CSS类的方法

1 . addClass() – 添加CSS类

$(“#target”).addClass(“newClass”);

//#target 指的是需要添加样式的元素的ID

//newClass 指的是CSS类的名称

2 . removeClass() – 移除CSS类

$(“#target”).removeClass(“oldClass”);

//#target 指的是需要移除CSS类的元素的ID

//oldClass 指的是CSS类的名称

3 . toggleClass() – 添加或者移除CSS类:如果CSS类已经存在,它将被移除;相反,如果CSS类不存在,它将被加上。

$(“#target”).toggleClass(“newClass”);

//如果ID为“target”的元素已经定义了CSS样式,它将被移除;

//反之,CSS类”newClass“将被赋给该ID。

jQuery还提供用来判断某个元素是否已经被赋予某个CSS类的方法,如下:

1 . hasClass()方法是用来检查被选择的元素是否包含指定的class名,其语法:

$(selector).hasClass(“className”);//其中class是必须的值,规定需要在指定元素中查找的类名。

hasClass()也可以同时写多个class但他们之前用空格隔开,如下:

$(selector).hasClass(“className1 className2″);

2 . is()方法也是用来检查被选择的元素是否包含指定的class名,其用法为:

$(selector).is(“.className”);

同样is()也可以有多个类名的写法,如下:

$(selector).is(“.className,.className”);

hasClass()方法与is()方法有同各功能,但hasClass()方法的用时较短,所以说hasClass()方法在性能上是优于is()方法的。
Continue reading

29

织梦系统会员登录成功后返回之前来路页面

在使用织梦内容管理系统时,为使网站能有更好的用户体验度,我们都会对其进行功能方面的修改。那么会员登录成功后,返回到会员来到登录页面的前一页面的这个功能怎么修改呢?如下:

查找 文件member/templets/login.htm

第68行<input type="hidden" name="gourl" value="<?php if(!empty($gourl)) echo $gourl;?>">

改为<input type="hidden" name="gourl" value="<?php if(!empty($_SERVER['HTTP_REFERER'])) echo $_SERVER['HTTP_REFERER'];?>">

21

织梦网站管理系统禁止会员同一帐号多地登录

修改织梦网站管理系统PHP程序,实现禁止同一会员帐号多地登录,一般来讲就要从判断IP入手。我修改的这个原理是:会员登录后增加创建名为Only的cookie,当会员刷新页或浏览新页面时判断从数据表@_member中当前会员的loginip值md5后与Only比较异同,把此条件加在验证用户是否已经登录函数IsLogin()中,成立返回真,不成立返回假,即可实现。修改如下:

修改文件/include/memberlogin.class.php

构造函数,大约171行左右的$this->OnlyCookie = GetCookie("Only");代码下一行增加代码如下:
$this->OnlyCookie = GetCookie("Only");

验证用户是否已经登录函数IsLogin(),大约第290行 改为
function IsLogin()
{
$loginipCookie = substr(md5($this->fields['loginip']),0,16);
if($this->M_ID > 0 && $this->OnlyCookie == $loginipCookie) return TRUE;
else return FALSE;
}

重置用户信息函数ResetUser()内的最后,大约第389行左右代码DropCookie('DedeLoginTime');的下一行增加代码如下(除管理员外的cookie方法):
DropCookie('Only');
意为重置会员cookie信息

大约第530行左右保存用户cookie的函数PutLoginInfo()内的if($this->M_KeepTime > 0)内增加代码如下(除管理员外的cookie方法);
PutCookie('Only',substr(md5(GetIp()),0,16),$this->M_KeepTime);
意为增加cookie条目
下面的else内最后加上
PutCookie('Only',$this->M_LoginTime);

修改文件/include/userlogin.class.php(这个没有测试管理员的帐号效果,后来我没我修改这条,也就是说这条改不改不影响除ID为1的其他会员的禁止多地登录效果)
keepUser()函数内大约第315行增加代码如下:
PutCookie('Only', substr(md5('MrDede'.GetIp()),0,16), 3600 * 24, '/');
保持用户的会话状态,这里给管理员(id=1)增加了名为Only的cookie信息

20

php模拟用户自动在qq空间发表文章的方法

 

21

PHP创建TXT文件

fwrite(file,string,length)

file     必需。规定要写入的打开文件。
string     必需。规定要写入文件的字符串。
length     可选。规定要写入的最大字节数。

fwrite() 返回写入的字符数,出现错误时则返回 false。

fclose(file)

file 参数是一个文件指针。fclose() 函数关闭该指针指向的文件。如果成功则返回 true,否则返回 false。

Posted in PHP
21

PHP函数获取客户端真实IP方法

两种PHP写法获取客户端真实IP方法:

本地测试获取的IP一般为::1这是正常的,在远程服务器中此方法是可用的

Host映射查看方法 C:\Windows\System32\drivers\etc  文件hosts

由于客户端可以篡改IP,所以在使用此方法获取的IP要进行过滤。

下面是获取到的客户端IP再获取客户端的地理信息(省份、地区、经纬度)

 

20

JS获取当前域名

<script language="javascript">
//获取域名
host = window.location.host;
host2=document.domain;

//获取页面完整地址
url = window.location.href;

document.write("<br>host="+host)
document.write("<br>host2="+host2)
document.write("<br>url="+url)
</script>