codeIgniter我用过一下,觉得比较的理想,很适合做开发,一个很小巧的php的MVC框架。
由于是一个框架模式,所以样例代码拿过来是很容易看清楚程序架构的,也很容易参考,这比自己写的程序要好很多,至少你很容易找到每个代码的功能和位置。

碰到一个问题:

apache里面可以这样做rewrite

<VirtualHost *:80>
    ServerName    www.aslibra.com
    DocumentRoot  F:\WebsiteLocal\www.aslibra.com
    RewriteEngine On
    RewriteRule   ^/(topic|user)  /index.php$0
    #RewriteRule   ^/(topic|user)  /index.php?$0
</VirtualHost>


两种写法都可以让index.php处理此链接,而第一种是最好的,用户输入查询也没事,比如 /topic?test=ds
第二种写法就不行了,会出现错误,地址匹配有特殊字符
但对于nginx的服务器,是不能那样写的,如果按第一种写法,会出现404错误,当作目录了
如果是lighttpd,那应该和apache类似,没有问题。

location ~^/(topic|user) {
        rewrite ^/(.*)  /index.php?/$1 last;
}


出现的错误是:

引用
An Error Was Encountered
The URI you submitted has disallowed characters.


出自(系统库文件URI.php):

function _filter_uri($str)
{
  if ($str != '' && $this->config->item('permitted_uri_chars') != '' && $this->config->item('enable_query_strings') == FALSE)
  {
    // preg_quote() in PHP 5.3 escapes -, so the str_replace() and addition of - to preg_quote() is to maintain backwards
    // compatibility as many are unaware of how characters in the permitted_uri_chars will be parsed as a regex pattern
    if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str))
    {
      show_error('The URI you submitted has disallowed characters.', 400);
    }
  }

  // Convert programatic characters to entities
  $bad  = array('$',     '(',     ')',     '%28',     '%29');
  $good  = array('&#36;',  '&#40;',  '&#41;',  '&#40;',  '&#41;');

  return str_replace($bad, $good, $str);
}


看代码,我们可以设置config里面 enable_query_strings 为TRUE
这次会得到什么结果:

引用
404 Page Not Found
The page you requested was not found.


这说明已经过了检查地址,到了路由这一部分了,这个错误是找不到相应的class/method所导致的
重要的URI处理是在 _fetch_uri_string 函数里面,调用这个过滤器是在路由控制里面:

从Router.php里面找到(大概90行)

// Fetch the complete URI string
$this->uri->_fetch_uri_string();
echo $this->uri->uri_string."<hr>"; //检查


我们可以看到路由取出来的地址是什么,比较两种方式
设置为:

$config['uri_protocol']  = "AUTO";
$config['enable_query_strings'] = TRUE;


测试地址为: /topic/test?site=aslibra.com
理想状态应该是进入 /topic/test

第一种情况,取得的uri为 site,这错的比较离谱
第二种为 /topic,检查server变量
引用
[QUERY_STRING] => /topic
    [REQUEST_URI] => /topic/test/?site=aslibra.com
    [SCRIPT_NAME] => /topic/test/
    [PHP_SELF] => /topic/test/
    [REQUEST_TIME] => 1259512731
    [argv] => Array
        (
            [0] => /topic
        )

    [argc] => 1
)


都发生了错误,修改auto为REQUEST_URI应该可以有救
对于这个是支持,因为有正常的class和method,但如果是一级参数,那就出错了,比如
/topic/?site=aslibra.com

这种情况最好的解决办法是钩子处理,在系统开始的时候把查询字符都忽略了
或者,在index.php调用CI之前,就去掉,比如

//code from http://aslibra.com/
$tmp = explode('?',$_SERVER['REQUEST_URI']);
$_SERVER['REQUEST_URI'] = $tmp[0];


钩子方式的解决办法:

//配置里 $config['enable_hooks'] = TRUE;

//config/hooks.php
$hook['pre_system'] = array(
                                'class'    => 'Uri',
                                'function' => 'fix',
                                'filename' => 'Uri.php',
                                'filepath' => 'hooks',
                                'params'   => ''
                                );


新建 hooks/Uri.php
<?php
//code from http://aslibra.com/
class Uri{
  
  function fix(){
    $tmp = explode('?',$_SERVER['REQUEST_URI']);
    $_SERVER['REQUEST_URI'] = $tmp[0];
  }
}
?>


那修改auto为REQUEST_URI应该可以,查询字符支持可以不支持了
点击在新窗口中浏览此图片

三里屯,快到节日了,把自己给送出去了

点击在新窗口中浏览此图片

近来甲流严重,身为孕妇的淮淮非常注意,坚持戴口罩,还是两个的,怕一个不起作用

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

迷雾里的建外SOHO
25日早上,北京在一片迷雾之中,30多层以上基本看不到了,貌似很美妙
在30楼的我们,看窗外是白茫茫的,平时的车流根本就看不到了,好像身处云端
Tags: ,
今天被linux折腾了一天,折磨了我的笔记本和一台本地服务器。

中午的时候兴奋,要按照ubuntu,因为上次安装在分区的文件,挺不好的,这次决定要安装在分区,打算今后经常用一下它,甚至在viturlBox下用xp弥补windows的需求,可是事与愿违。中午抵着肚子安装了ubuntu,买KFC外卖回来看着,安装好了系统,还满心欢喜,不想前面自己选错了安装方式,小子把我的5G空间调整出来了但又没法用,这5G空间可不小了,疯了。。空间太紧张了,想着要把它弄回来。

分区是三个主分区,一个扩展分区。我选择了共同安装两个系统(本应选择在剩余空间的,错了),然后小子自动帮我调整分区,把我的主分区调整少了5G,可又发生错误,这5G就白白丢了。因为四个分区用完了,这个空白的块是用不了的,可以合并到邻近的分区。中间曾经试图想备份临近的主分区,可一共60G,备份到猴年马月呢。然后或者把临近的扩展分区都删了,重新分。。是个方法。

PQmagic安装了,启动时提示出错,该死的东西。
于是乎我犯了个错误,直接把linux分区删了,扩展分区删了,把剩下的分出扩展分区,分一个空间给windows用,准备剩下的给linux。结果重启就进不了系统了。

解决办法:
修改bios的硬盘为兼容模式(T61或者新的机器可能都有这问题),否则后面会发现不了硬盘。插入xp光盘进入修理台修复。
详细参考前面的笔记《直接删除linux分区导致启动失败的解决办法

其实也还有另外一个解决方法的,这是我后来在redhat4的升级上折磨出来的。
后来两个方式试图安装ubuntu,都没有提示找到windows的系统了,都是选择重新安装,可把我给纳闷死了。
改天折腾死你。。。弄自己的机器不顺心,我又想起一直要升级但没有升级的局域网服务器。redhat4的系统,我要升级为redhat5,因为没有办法用飞信发短信报警。

放光盘进去,选择升级安装,然后就ok了,还挺顺心了。不知道为啥,我发现机箱后面有灰尘,用布拂打了一下,结果发现正在升级安装的系统停止工作了,也不知道今天碰到什么鬼了。没法,等很久也没用,重启,重新升级,还好,可以继续升级。

终于升级完成,却又来了,到“GRUB Loading stage2...” 死掉了。真折腾啊。。
谢天谢地,网上有解决方案:

引用
有一次重新引导Redhat AS4 时就出现了:

linux grub loading stage2 ,然后就停在了这个界面上。

解决办法:

放入第一张光盘,重新启动机器,在boot: linux rescue

按F2也可以看到Linux rescue

选择完一些键盘 字符后就进入救援模式
执行:chroot /mnt/sysimage
再执行:grub-install /dev/sda


所言属实,但会提示是否自动找到系统的,像第一种情况,那这个方案也是可以解决的。
1 进入rescue模式
2 自己mount系统目录到某个目录
3 执行chroot到该目录
4 更新grub

chroot是必须的,如果没有执行,那会提示 /sbin/grub 没有找到还是怎么的。

PS:升级后基本没事,就是named启动失败,看日志知道,“couldn't open pid file '/var/named.pid': Permission denied”
修改named chroot的目录下的var目录的权限即可解决。

参考:GRUB Loading stage2 错误解决
Tags: ,
今天找到话剧的地点也算是有的曲折。
问过人大的人,如果有演出,可能就是在西门的明德堂的如伦讲堂,可最终发现是在学生活动中心,处理票务问题的滚滚同学说,我们没有那么高级,我们在学活中心。看来这过去肯定就没位子了,不出所料,虽然7点赶上了,可里面都坐满人了,看来订票这事不靠谱,根本没有订票限制,也没有座位限制,还让我之前干着急,发短信问着要票。

点击在新窗口中浏览此图片

舞台布景很简单,甚至细看能够看的出来,并非一个纯色的布,背面还是某个白字横幅的文字。

点击在新窗口中浏览此图片

座无虚席,还有不少站着的同学。
好久都没有感受过学校氛围,又体验了一把。

点击在新窗口中浏览此图片

舞台拍照有点要注意的问题就是ev设置,一定得减,否则脸部都是白色的了。
我设置了 -2.0档,好了很多,当然跟镜头有关,我没有长焦,否则点测光到人脸也可以。

点击在新窗口中浏览此图片

全部演员

点击在新窗口中浏览此图片

还有值得一说的是灯光。我也做过不少幕后工作,所以倒喜欢看这个。
我刚坐下的位子就是灯光师的位子后面,我发现他们是开灯插线,熄灯拔线,开灯比较麻烦,需要一个人用手机照着,免得插错了,然后还得看剧本,抓住时间点,挺辛苦。
很难得拍了一张开灯瞬间的相片。因为开灯时是黑色的,按下快门那是噩梦,快门得很久,而开灯后,就拍不上这个工作了。

前面我写过介绍:话剧:《阴道独白》
Tags:
点击在新窗口中浏览此图片

不用说了,落叶太多了,都快淹没汽车了

点击在新窗口中浏览此图片

叶子会用袋子装起来,拉走

点击在新窗口中浏览此图片

另外,这几天北京风不大,看烟囱就知道了,直上直下的

点击在新窗口中浏览此图片

某天在咖啡店和友人打牌,发现灯光如此的优雅
Tags:
分页: 1/6 第一页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐