2010年9月29日 星期三

2010年9月28日 星期二

[CodeIgniter] 讓CI支援rar 檔案上傳 20101026修正

今天在用CodeIgniter作檔案上傳功能時, 才發現不管怎麼傳rar都會顯示

The filetype you are attempting to upload is not allowed.

後來發現原來CI的MIME(Multipurpose Internet Mail Extensions)檔根本沒有rar

所以手動加入rar 這個檔案類型

但因不同瀏覽器判斷rar的結果不一樣, 所以要三種都加上

IE8, Chrome, Safari:   application/octet-stream
Firefox: application/rar
Opera:  application/x-rar-compressed


打開 codeigniter\system\application\config\mimes.php


在mime陣列中加上


'rar'   =>  array('application/x-rar-compressed', 'application/rar', 'application/octet-stream')
 

2010-10-26 更新

今天發現Chrome跟Firefox瀏覽器更新之後, 都會發現mimes type抓不到的情形

Firefox是上傳rar時顯示document/unknown
Chrome則是zip和rar都完全抓不到

所以之後就用CI內建的file_helper

有個函數叫get_mime_by_extension, 直接透過副檔名來抓它的type, 即可解決

2010年9月26日 星期日

[Chrome] CSS Viewer 滑鼠移到哪, CSS資訊就在哪

我覺得挺方便的~ 有在寫網頁的人可以裝看看^^


Google Chrome Extension - CSSViewer


https://chrome.google.com/extensions/detail/ggfgijbpiheegefliciemofobhmofgce


CSS Scan (簡中版)
https://chrome.google.com/extensions/detail/nnnadlfihgoldfbmigdbbhlejpenlihe


[Music] Bruno Mars - Just the way you are (& Jayesslee cover)



(Jayesslee cover)




她們好久沒錄新的歌了~ 其實我是剛好看到她們前天有發新的影片才知道這首歌~

這首歌超好聽~ 她們唱的很好聽^^

這部影片結束還表演一刀削完一顆大梨子~@@"


===

Oh her eyes, her eyes
Make the stars look like they're not shining
Her hair, her hair
Falls perfectly without her trying

She's so beautiful
And I tell her every day

Yeah I know, I know
When I compliment her
She wont believe me
And its so, its so
Sad to think she don't see what I see

But every time she asks me do I look okay
I say

When I see your face
There's not a thing that I would change
Cause you're amazing
Just the way you are
And when you smile,
The whole world stops and stares for awhile
Cause girl you're amazing
Just the way you are

Her lips, her lips
I could kiss them all day if she'd let me
Her laugh, her laugh
She hates but I think its so sexy

She's so beautiful

And I tell her every day

Oh you know, you know, you know
Id never ask you to change
If perfect is what you're searching for
Then just stay the same

So don't even bother asking
If you look okay
You know I say

When I see your face
There's not a thing that I would change
Cause you're amazing
Just the way you are
And when you smile,
The whole world stops and stares for awhile
Cause girl you're amazing
Just the way you are

The way you are
The way you are
Girl you're amazing
Just the way you are

When I see your face
There's not a thing that I would change
Cause you're amazing
Just the way you are
And when you smile,
The whole world stops and stares for awhile
Cause girl you're amazing
Just the way you are

[Lovely Song] 初戀紅豆冰主題曲-純文藝戀愛





你是洶湧的海浪 我是疲憊的沙灘
暖暖的斜陽 吊在我們的肩膀
你用醉人的眼波 拴住戀愛的繩索
那麼痴迷 那麼綺麗

你輕輕柔柔的細述著檳城下的雨
淋濕你的長發幾十年來抹也抹不去
啊 我會慢慢的想起 幾十年都不會忘記

輕輕的為你唱首歌 幾十年的歌
靠在你的背後 緊緊握著你的右手
慢慢的教你寫首詩 要你記著我的事
當你孤孤單單的時候我要繼續為你唱出這首歌

---
這首歌對我的意義很特別, 看完這部電影, 心中有深刻的感觸與悸動...

[CSS] 將footer 浮動固定在網頁下方

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<div id="footer">footer圖片 and 內容</div>


CSS:
#footer {
  position: fixed;
  width: 100%;
  bottom: 0;
  z-index: 1;
}

Note: 不支援IE6以下瀏覽器

如果要支援的話請搜尋 " position: fixed IE6 Hack "

2010年9月16日 星期四

[CodeIgniter] Show all session userdata 列出所有session

使用CI 時, 在http://codeigniter.com/user_guide/libraries/sessions.html

找不到列出所有Session key & value的方法

後來直接到CI Library打開Session.php

發現裡面有個方法叫 all_userdata


/**
  * Fetch all session data
  *
  * @access public
  * @return mixed
  */
 function all_userdata()
 {
  return ( ! isset($this->userdata)) ? FALSE : $this->userdata;
 }

所以他有提供這方法, 只是Document沒有寫

使用方法
$this->session->all_userdata();

2010年9月15日 星期三

[PHP] 執行緒安全Thread Safe or None-Thread Safe ?

None-Thread Safe就是非執行緒安全,在執行時不進行執行緒(thread)安全檢查;
Thread Safe就是執行緒安全,執行時會進行執行緒(thread)安全檢查,以防止有新要求就啟動新執行緒的 CGI 執行方式耗盡系統資源。

PHP執行有兩種方式:ISAPI和FastCGI。

FastCGI執行方式是以單一執行緒來執行操作,所以不需要進行執行緒的安全檢查,除去執行緒安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP ,都建議下載執行 non-thread safe 的 PHP。

而執行緒安全檢查正是為ISAPI方式的PHP準備的,因為有許多php模塊都不是執行緒安全的,所以需要使用Thread Safe的PHP。

[PHP] 我該選擇哪個版本的PHP on Windows

在PHP的官網上有兩種Windows Binaries的版本for windows, 翻譯以下官方原文讓不知道該下載哪個的人參考


我該選擇哪個版本?
Which version do I choose?


如果你用Apache1 和 Apache2, 你要用VC6版本的PHP
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP


如果你在IIS上用PHP, 你需要VC9版本的PHP
If you are using PHP with IIS you should use the VC9 versions of PHP


VC6 版本是用古老的Visual Studi 6編譯器來編譯
VC6 Versions are compiled with the legacy Visual Studio 6 compiler


VC9 版本是用Visual Studio 2008編譯器來編譯, 改進了效能且更加穩定
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability.


VC9  版本要求安裝 Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) 執行環境
The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64)installed


別在Apache使用VC9 的版本
Do NOT use VC9 version with apache.org binaries

2010年9月9日 星期四

[CentOS] vsftpd 安裝與管理

安裝
# yum install vsftpd

設定檔
# vim /etc/vsftpd/vsftpd.conf

限制使用者不能離開家目錄
修改vsftpd.conf

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
write_enable = YES

touch /etc/vsftpd.chroot_list

Bind 網頁目錄到家目錄
# vim /etc/vsftpd.chroot_list  # 將要允許的使用者帳號加入
# mkdir /home/user/www
# mount --bind /var/www /home/user/www
# chmod 755 /var
# chmod 755 /var/www


更改預設的port
在vsftpd.conf加入 listen_port=1234

[CentOS] 常用用戶管理指令 User Manage Command

新增使用者

$ useradd UserName

設定使用者密碼

$ passwd UserName

刪除使用者

$ userdel UserName

查看可以登入系統的使用者

$ cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1

查看某一使用者

$ w hank

查看登入的使用者

$ who

查看使用者的操作(用root登入)

$ w

查看使用者歷史記錄

$ last

查看系統中有哪些使用者

$ cut -d : -f 1 /etc/passwd

2010年9月5日 星期日

[CentOS] 限制使用SSH登入的User

# vim /etc/ssh/sshd_config

在檔案最後一行加上:
AllowUsers username1 username2

重新啟動 ssh 服務:

# /etc/rc.d/init.d/sshd restart

See Also
http://www.openssh.com/manual.html

[CentOS] ADSL設定PPPOE 網路連線

$ adsl-setup

然後照著指示填入帳號密碼及設定

ADSL連線:
$ ifup ppp0

關閉ADSL連線:
$ ifdown ppp0

查看ADSL連線狀況
$ adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0

[CentOS] 手動設定區域網路 Configuring a DHCP Client

編輯以下檔案來設置DHCP


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

靜態IP設定範例:


DEVICE=eth0
BOOTPROTO=static
HWADDR=00:19:D1:2A:BA:A8
IPADDR=10.10.29.66
NETMASK=255.255.255.192
ONBOOT=yes

用DHCP自動取得IP:


DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:19:D1:2A:BA:A8
ONBOOT=yes

將設定檔存檔後, 重新啟動網卡:

$ /etc/init.d/network restart

Reference:

http://www.cyberciti.biz/faq/setting-up-a-linux-for-dhcp/

[CentOS] ifconfig command not found

CentOS安裝完預設$PATH沒有/sbin

查看目前$PATH

$ echo $PATH


手動加上

$ export "$PATH:/sbin"

[UML] StarUML 自動從diagram產生PHP Class檔














參考網站


<?php

class ShopProduct {

 public $title;
 public $produceMainName;
 public $producerFirstName;
 public $price;

 public function __construct($title,$firstName,$mainName,$price) {

  return;
 }

 public function getProducer() {

  return;
 }

 public function getSummaryLine() {

  return;
 }
}

?>

2010年9月3日 星期五

[PHP] 你的PHP程式是否會產生Y2K38的Bug?

原本的時間取得方式會導致Y2K38

<?php
$date = '2040-02-01';
$format = 'l d F Y H:i';
$mydate1 = strtotime($date);
echo date($format, $mydate1);
?>

用PHP 5.2.0 後的新的DateTime Class來修正

<?php  
$date = '2040-02-01';  
$format = 'l j F Y H:i';  
$mydate2 = new DateTime($date);  
echo $mydate2->format($format);
?>

不過2038還那麼久, 現在擔心好像還太早, 目前很難出現災情, 不然以後都習慣用DateTime Class就好了
Related Posts Plugin for WordPress, Blogger...