风火家人开发记要

技术总结精华贴

Year: 2011

CMS, 原创

codeigniter(CI)刷新页面新增空session数据解决方案codeigniter(CI) refurbish page new session data added resolvent

使用codeigniter(CI)开发网站,使用自带session时会出现写seesion失败,但数据库中添加空session,每次刷新页面都会新增。 这个问题产生是由于手册给到的帮助信息中创建session表的时候有个字段的长度不够造成的,只要修改这个长度就可以了, CREATE TABLE IF NOT EXISTS `ci_sessions` ( session_id varchar(40) DEFAULT ‘0’ NOT NULL, ip_address varchar(16) DEFAULT ‘0’ NOT NULL, user_agent varchar(50) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text DEFAULT ” NOT NULL, PRIMARY KEY (session_id) ); 将user_agent varchar(50) NOT NULL,的字段长度改到255吧,50太少了,查看网站上,他至少也是60多个字符。use codeigniter(CI)to develop website, session writed failed,and session table of database be added empty session,every time you refurbish page. this is because you use the example of handbook about session,you need to change something. CREATE TABLE IF NOT EXISTS `ci_sessions` ( session_id varchar(40) DEFAULT ‘0’ NOT NULL, ip_address varchar(16) DEFAULT ‘0’ NOT NULL, user_agent varchar(50) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text DEFAULT ” NOT NULL, PRIMARY KEY (session_id) ); change 50 to 255 in this string : user_agent varchar(50) NOT NULL.Hope it can help you. (1347)

查看全文
CMS, 原创

记事狗微薄同步到新浪一直40009 system error, does multipart has image 解决方案

记事狗同步新浪Error: 40009:Error: system error, does multipart has image?解决方案 如果你也在用记事狗,也在为同步新浪图片而大动肝火,不要着急了,我花了3天时间终于把这个问题搞定了,而你就不用那么费事费力去研究了,听我说说把, 经过一步一步测试,最终将问题定位到了 include/xwb/lib 下面的 oauth.class.php 这里面在处理图片的时候出现里错误,错误的行数是 510 多行左右,看下面代码 其实是个foreach 循环问题 foreach ($params as $parameter => $value) { if( ($parameter == ‘pic’ || $parameter == ‘image’) ){ if(is_string($value) && $value{0} == ‘@’) { $url = ltrim( $value , ‘@’ ); $ctx_userAgent = isset($_SERVER[‘HTTP_USER_AGENT’]) ? $_SERVER[‘HTTP_USER_AGENT’] : ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.5.30729)’; if( version_compare(PHP_VERSION, ‘5.0.0’, ‘>=’) ){ $ctx_header = “Accept: *”.”/”.”*\r\nAccept-Language: zh-cn\r\nUser-Agent: {$ctx_userAgent}\r\n”; $ctx = stream_context_create(array(‘http’=>array(‘timeout’=>8,’method’=>’GET’,’header’=>$ctx_header))); $content = file_get_contents( $url, 0, $ctx); }else{ @ini_set(‘user_agent’, $ctx_userAgent); $content = file_get_contents( $url ); } $filename = reset( explode( ‘?’ , basename( $url ) )); $mime = OAuthUtil::get_image_mime($url); } elseif(is_array($value)) { $content = $value[2]; $filename = $value[1]; $mime = $value[0]; } //exit($content.’|’.$filename.’|’.$mine.’|’.$value); $multipartbody .= $MPboundary . “\r\n”; //$multipartbody .= ‘Content-Disposition: form-data; name=”‘.$parameter.'”; filename=”‘ . $filename . ‘”‘. “\r\n”; $multipartbody .= ‘Content-Disposition: form-data; name=”‘.$parameter.'”; filename=”‘ . $value . ‘”‘. “\r\n”; //$multi partbody .= ‘Content-Type: ‘. $mime . “\r\n\r\n”; $multipartbody .= ‘Content-Type: ‘. ‘multipart/form-data’ . “\r\n\r\n”; $multipartbody .= $content. “\r\n”; } else { $multipartbody .= $MPboundary . “\r\n”; $multipartbody .= ‘Content-Disposition: form-data; name=”‘.$parameter.”\”\r\n\r\n”; $multipartbody .= $value.”\r\n”; } } 只要将这部分用新浪api提供的里面的这个东西替换就可以了,下面是替换成的代码 foreach ($params as $parameter => $value) { //if( $parameter == ‘pic’ && $value{0} == ‘@’

查看全文
CMS, 原创,

修改dedecms在godaddy的linux空间读取权限问题,自动生成文件权限不正确

同事用dedecms作网站,改换成godaddy的linux的空间后,发现生成的静态文件浏览不了,好像是提示权限不对,我没有仔细看。 但问题肯定是生成文件时权限后,普通用户权限不够了,这里交给不知道如何处理的大虾们一个方法。 需要修改如下文件 include/arc.archives.class.php 找到  //循环生成HTML文件  的部分 在  $this->dtp->SaveTo($TRUEfilename); 之后加入   chmod($TRUEfilename,0755); 修改到这个只是针对单文件生成成功浏览了,但批量生成还是有问题,没关系,我们继续 找到  //创建远程文件夹  的部分 在  $this->ftp->upload($localfile, $remotefile, ‘ascii’); 之后加入 chmod($remotefile,0755); 好了,这样就可以了。 多说两句 这里的0755 前面的0一定要带的,这代表8进制,去掉权限就变了,当然也可以改成其他的数字,如 0644 ,这里是网站主可以读写,其他人只有读,权限更低些。 (1611)

查看全文
CMS, 原创

CI(codeigniter)开发之分页的多语言设置(第二课)

分页的配置文件写在 config文件夹中的 pagination.php文件中。 代码如下 $config[‘num_links’] = 5; $config[‘first_link’] = ‘第一页’; $config[‘last_link’] = ‘最后一页’; $config[‘next_link’] = ‘下一页’; $config[‘prev_link’] = ‘上一页’; 这个写,显然不能够多语言。 那就要继续添加代码。 在language文件夹中的语言文件夹中,如english (每个都要有哦),添加需要多语言话的字段, 比如我建的叫 my_lang.php 添加语言代码如下 $lang[‘page_first_link’] = ‘First Page’; $lang[‘page_last_link’] = ‘Last Page’; $lang[‘page_next_link’] = ‘Next Page’; $lang[‘page_prev_link’] = ‘Prev Page’; 这样对应的语言就有了(其他语言照样写)。 回来修改我们的pagination.php文件 $CI =& get_instance();//这句话就可以使用$CI引用语言了 $config[‘num_links’] = 5; $config[‘first_link’] = $CI->lang->line(‘page_first_link’); $config[‘last_link’] = $CI->lang->line(‘page_last_link’); $config[‘next_link’] = $CI->lang->line(‘page_next_link’); $config[‘prev_link’] = $CI->lang->line(‘page_prev_link’); 好,这样当您更换语言的时候,分页的语言也同时改变了(codeigniter)。 (944)

查看全文