欢迎光临一碗小面的重庆SEO博客!
Jan
24
今天host1free空间上上传资料的时候,发现zip的压缩文件解压不了,出现如下错误提示:sh: /usr/local/bin/unzip: No such file or directory,再网上搜了很长时间,没能找到有效解决办法,最后只能认为是服务器功能问题,在支持解压zip文件时有时会有错误。
tar.gz是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式,然而这种格式在windows并不多见,WinRAR、 WinZip等主流压缩工具可以释放解开,却不能打包生成。
但是tar.gz在服务器端却很常用,因为服务器系统linux占了相当的一部分。于是许多习惯用Windows的Web开发人员,在上传网站到空间时可能会遇到这个压缩格式的麻烦。
7-Zip可以将文件先压缩成 tar文件,然后再次压缩成.gz的格式
经过压缩测试,.gz的文件要比.rar的格式要小一点。也就是说压缩率要强一点。
步骤如下:
一、安装7-ZIP以后,直接在你想要打包的文件上点右键菜单,会有一个7-ZIP的子菜单栏,类似WinRAR和WinZIP的那种右键菜单。然后选 “7-ZIP”->“添加到压缩档案”,在弹出来的窗口里有个“压缩格式”的选项,里面并没有tar.gz格式,没关系,里面有一个Tar格式,第 一步就是要先压成tar格式。
二、成功打包为Tar文件后,你可能会发现这个tar文件包和原来的文件大小一样,也就是说tar本身并没有压缩,而是仅仅把它们打包成一个单独的 Tar文件。所以需要做第二步,再在这个tar文件上面点右键,选“7-ZIP”->“添加到压缩档案”,这时候弹出的窗口里再看“压缩格式选 项”,发现多了两个刚才没有的,其中就包括“GZip”,是的,这一步就是把tar文件继续压缩成GZip。选择“GZip”格式后确定,最后结果就是一 个新的tar.gz格式的文件。
tar.gz是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式,然而这种格式在windows并不多见,WinRAR、 WinZip等主流压缩工具可以释放解开,却不能打包生成。
但是tar.gz在服务器端却很常用,因为服务器系统linux占了相当的一部分。于是许多习惯用Windows的Web开发人员,在上传网站到空间时可能会遇到这个压缩格式的麻烦。
7-Zip可以将文件先压缩成 tar文件,然后再次压缩成.gz的格式
经过压缩测试,.gz的文件要比.rar的格式要小一点。也就是说压缩率要强一点。
步骤如下:
一、安装7-ZIP以后,直接在你想要打包的文件上点右键菜单,会有一个7-ZIP的子菜单栏,类似WinRAR和WinZIP的那种右键菜单。然后选 “7-ZIP”->“添加到压缩档案”,在弹出来的窗口里有个“压缩格式”的选项,里面并没有tar.gz格式,没关系,里面有一个Tar格式,第 一步就是要先压成tar格式。
二、成功打包为Tar文件后,你可能会发现这个tar文件包和原来的文件大小一样,也就是说tar本身并没有压缩,而是仅仅把它们打包成一个单独的 Tar文件。所以需要做第二步,再在这个tar文件上面点右键,选“7-ZIP”->“添加到压缩档案”,这时候弹出的窗口里再看“压缩格式选 项”,发现多了两个刚才没有的,其中就包括“GZip”,是的,这一步就是把tar文件继续压缩成GZip。选择“GZip”格式后确定,最后结果就是一 个新的tar.gz格式的文件。
Jan
24
帝国CMS会员数据主表:
http://www.phome.net/doc/dbdoc/66/page/phome_enewsmember.html
字段名 类型 解释 附加说明
userid int(11) 用户ID
username varchar(30) 用户名
password varchar(32) 用户密码
rnd varchar(30) 随机认证码
email varchar(50) 联系邮箱
registertime datetime 注册时间
groupid smallint(6) 会员组ID
userfen int(11) 点数
userdate int(11) 有效期
money float(11,2) 金额
zgroupid smallint(6) 到期后转向会员组ID
havemsg tinyint(1) 是否有短信息 1为提示有短信息,0为不提示
checked tinyint(1) 是否审核 1为已审核,0为未审核
salt varchar(8) salt密码加密随机码
相关字段说明:
涉及登陆的字段有username,password,rnd,salt,checked
username: 就是用户名不用说
rnd:是randomize的缩写,取得随机数的意思,记录中会员每登陆一次变一次,用这个随机数来判断当前登陆是否有效,用两个非IE内核浏览器登陆同一个会员,第一个登陆的被挤掉就是RND的效果。
checked:会员是否被审核
password,salt:共同用于密码会员密码验证
openid第一次连接帝国CMS 或者绑定帝国CMS账号:
新浪微博,腾讯微博,QQ空间等等都会给一个openid,比如新浪微博的是weiboid,腾讯微博的是nickname,QQ空间给的是openid,无论第一次连接注册还是绑定原有帝国CMS账号都是绑定一个openid而已,所以在一般在帝国CMS主表新建一个字段用于储存openid;
以后的连接:
以后的连接就简单了,获得返回的OPENID后搜索帝国CMS会员主表,如果有存在的OPENID就执行登陆,没有就执行注册或绑定,登陆函数如下:openid已经是绑定的,所以函数更新下RND之后写COOKIE就可以;
function ecms_memberlogin($userid) {
global $empire, $user_tablename, $public_r, $user_groupid, $user_username, $user_userid, $user_email, $user_password, $user_dopass, $user_rnd, $user_registertime, $user_register, $user_group, $user_saltnum, $user_salt, $user_seting, $forumgroupid, $registerurl, $dbtbpre, $user_regcookietime, $user_userfen, $user_checked, $level_r;
$r = $empire->fetch1("select * from " . $user_tablename . " where " . $user_userid . "='$userid' limit 1");
$rnd = make_password(12);
$sql = $empire->query("update " . $user_tablename . " set " . $user_rnd . "='$rnd' where " . $user_userid . "='$userid' ");
$logincookie = 0;
$set1 = esetcookie("mlusername", $r[$user_username], $logincookie);
$set2 = esetcookie("mluserid", $r[$user_userid], $logincookie);
$set3 = esetcookie("mlgroupid", $r[$user_group], $logincookie);
$set4 = esetcookie("mlrnd", $rnd, $logincookie);
if ($set1 && $set2 && $set3 && $set4) {
$re = 1;
} else {
$re = 0;
}
return $re;
}
本文转载于:http://www.trylife.cn/openid-connect-ecms/
http://www.phome.net/doc/dbdoc/66/page/phome_enewsmember.html
字段名 类型 解释 附加说明
userid int(11) 用户ID
username varchar(30) 用户名
password varchar(32) 用户密码
rnd varchar(30) 随机认证码
email varchar(50) 联系邮箱
registertime datetime 注册时间
groupid smallint(6) 会员组ID
userfen int(11) 点数
userdate int(11) 有效期
money float(11,2) 金额
zgroupid smallint(6) 到期后转向会员组ID
havemsg tinyint(1) 是否有短信息 1为提示有短信息,0为不提示
checked tinyint(1) 是否审核 1为已审核,0为未审核
salt varchar(8) salt密码加密随机码
相关字段说明:
涉及登陆的字段有username,password,rnd,salt,checked
username: 就是用户名不用说
rnd:是randomize的缩写,取得随机数的意思,记录中会员每登陆一次变一次,用这个随机数来判断当前登陆是否有效,用两个非IE内核浏览器登陆同一个会员,第一个登陆的被挤掉就是RND的效果。
checked:会员是否被审核
password,salt:共同用于密码会员密码验证
openid第一次连接帝国CMS 或者绑定帝国CMS账号:
新浪微博,腾讯微博,QQ空间等等都会给一个openid,比如新浪微博的是weiboid,腾讯微博的是nickname,QQ空间给的是openid,无论第一次连接注册还是绑定原有帝国CMS账号都是绑定一个openid而已,所以在一般在帝国CMS主表新建一个字段用于储存openid;
以后的连接:
以后的连接就简单了,获得返回的OPENID后搜索帝国CMS会员主表,如果有存在的OPENID就执行登陆,没有就执行注册或绑定,登陆函数如下:openid已经是绑定的,所以函数更新下RND之后写COOKIE就可以;
function ecms_memberlogin($userid) {
global $empire, $user_tablename, $public_r, $user_groupid, $user_username, $user_userid, $user_email, $user_password, $user_dopass, $user_rnd, $user_registertime, $user_register, $user_group, $user_saltnum, $user_salt, $user_seting, $forumgroupid, $registerurl, $dbtbpre, $user_regcookietime, $user_userfen, $user_checked, $level_r;
$r = $empire->fetch1("select * from " . $user_tablename . " where " . $user_userid . "='$userid' limit 1");
$rnd = make_password(12);
$sql = $empire->query("update " . $user_tablename . " set " . $user_rnd . "='$rnd' where " . $user_userid . "='$userid' ");
$logincookie = 0;
$set1 = esetcookie("mlusername", $r[$user_username], $logincookie);
$set2 = esetcookie("mluserid", $r[$user_userid], $logincookie);
$set3 = esetcookie("mlgroupid", $r[$user_group], $logincookie);
$set4 = esetcookie("mlrnd", $rnd, $logincookie);
if ($set1 && $set2 && $set3 && $set4) {
$re = 1;
} else {
$re = 0;
}
return $re;
}
本文转载于:http://www.trylife.cn/openid-connect-ecms/
Jan
24
e/class/q_functions.php 搜索 printerror(“AddFeedbackSuccess”,$reurl,1);
在其上一行加入代码如下:
view plaincopy to clipboardprint?
//trylife反馈发送到邮箱 [s] 1/1
//所需字段用 $add[字段]来表示
if($bid==1)//反馈ID1
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==2)//反馈ID2
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==3)//反馈ID3
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
//发送邮件部分
if($sendmail)
{
@include(ECMS_PATH.'e/class/SendEmail.inc.php');
EcmsToSendMail($email,$subject,$content);
}
//trylife反馈发送到邮箱 [e] 1/1
在其上一行加入代码如下:
view plaincopy to clipboardprint?
//trylife反馈发送到邮箱 [s] 1/1
//所需字段用 $add[字段]来表示
if($bid==1)//反馈ID1
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==2)//反馈ID2
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
elseif($bid==3)//反馈ID3
{
$sendmail=1;//1 发邮件 0不发邮件
$email=array('94592590@qq.com');
$subject='邮件标题';
$content='邮件内容';
}
//发送邮件部分
if($sendmail)
{
@include(ECMS_PATH.'e/class/SendEmail.inc.php');
EcmsToSendMail($email,$subject,$content);
}
//trylife反馈发送到邮箱 [e] 1/1
Jan
24
在“管理栏目”里修改“生成选项” 下的“内容页存放目录”选择“自定义”并在其后的编辑框中填写“/”
Jan
24
1、打开e/class/connect.php
2、将文件里从
//前台分页
到
//时间转换函数
改为
//前台分页
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
if($num<=$line)
{
return '';
}
$search=htmlspecialchars($search,ENT_QUOTES);
$url=$_SERVER['PHP_SELF'].'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
$firststr='';
//上一页
if($page<>0)
{
$toppage='<<';
$pagepr=$page-1;
$prepage='<';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage='>';
$lastpage='>>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1="";
$is_2="";
}
else
{
$is_1='';
$is_2="";
}
$pagenum=$i+1;
$returnstr.="".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
3、在相对应的列表模板合适的地方插入
[!--show.listpage--]
4、在css文件中为分页编写样式
/*分页*/
.page-list{float:left;width:680px;margin-top:10px;}/*这里的宽度width:680px;自己调整*/
.page-list b,.page-list a{float:left;margin-right:3px;padding:2px 4px;line-height:16px;display:block;color:#fff;}
.page-list a{border:1px solid #186197;background:#186197;}
.page-list b,.page-list a:hover{text-decoration:none;border:1px solid #f60;background:#f60;}
5、效果图
PS:
1、此效果主要作用是用符号代替中文,让中文和英文的人都明白“<”和“>”是代替上下页,而不仅仅是单一的中文“上一页”和“下一页”显示,这样英文的人看不懂。
2、去除了总页数,感觉有点鸡肋
3、当前版本6.6
2、将文件里从
//前台分页
到
//时间转换函数
改为
//前台分页
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
if($num<=$line)
{
return '';
}
$search=htmlspecialchars($search,ENT_QUOTES);
$url=$_SERVER['PHP_SELF'].'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
$firststr='';
//上一页
if($page<>0)
{
$toppage='<<';
$pagepr=$page-1;
$prepage='<';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage='>';
$lastpage='>>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1="";
$is_2="";
}
else
{
$is_1='';
$is_2="";
}
$pagenum=$i+1;
$returnstr.="".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
3、在相对应的列表模板合适的地方插入
[!--show.listpage--]
4、在css文件中为分页编写样式
/*分页*/
.page-list{float:left;width:680px;margin-top:10px;}/*这里的宽度width:680px;自己调整*/
.page-list b,.page-list a{float:left;margin-right:3px;padding:2px 4px;line-height:16px;display:block;color:#fff;}
.page-list a{border:1px solid #186197;background:#186197;}
.page-list b,.page-list a:hover{text-decoration:none;border:1px solid #f60;background:#f60;}
5、效果图
PS:
1、此效果主要作用是用符号代替中文,让中文和英文的人都明白“<”和“>”是代替上下页,而不仅仅是单一的中文“上一页”和“下一页”显示,这样英文的人看不懂。
2、去除了总页数,感觉有点鸡肋
3、当前版本6.6




