年紀大了有些事容易忘記... 所以.....

星期日, 4月 27, 2014

紅米機 小米機 大陸版 如何使用 Google Play 商店

買了大陸版的小米機 紅米機 確無法使用 Google Play 商店時該怎麼辦?!

免ROOT 免刷機

先在小米市集下載谷歌應用下載器並安裝新版 Play 商店
http://app.xiaomi.com/detail/36925


下載此apk並安裝即可使用 Google Play 商店
https://dl.dropboxusercontent.com/u/24181563/apk/com.android.vending-4.2.9.apk

星期三, 4月 23, 2014

[Android] 打包簽署 APK 時出現 Export aborted because fatal lint errors were found 錯誤

打包簽署 APK 時出現下面錯誤
「Export aborted because fatal lint errors were found. These area listed in the Lint View. Either fix these before running Export again, or turn off "Run full error check when exporting app" in the Android > Lint Error Checking preference page.」





星期四, 4月 17, 2014

PHP 自動等比縮放圖片函式

//取圖片寬高並回傳適合寬高
 /*
  $org_height 原圖高
  $org_width 原圖寬
  $height 限制的高
  $width 限制的寬
  $autoResize 是否強制縮到寬高都在範圍內
  2014/4/17 @C Fixed
 */
 function getImageSize_resize($org_height='',$org_width='',$height='',$width='',$autoResize='N'){
  if(!$org_height || !$org_width){
   return FALSE;
  }
  
  $new_height = '';
  $new_width = '';

  $tmp_width = $org_width;//圖片寬度
  $tmp_height = $org_height;//圖片高度
  
  $ratio = 1;
  
  if(($width && $tmp_width > $width) || ($height && $tmp_height > $height))
  {
   if($width && $tmp_width > $width)
   {
    $width_ratio = $width/$tmp_width;
    $resize_width_tag = true;
   }
   
   if($height && $tmp_height > $height)
   {
    $height_ratio = $height/$tmp_height;
    $resize_height_tag = true;
   }
      
   if($resize_width_tag || $resize_height_tag)
   {
    if($width_ratio > $height_ratio)
    {
     $ratio = $width_ratio;
    }
    else
    {
     $ratio = $height_ratio;
    }
    
    if($resize_width_tag && !$resize_height_tag)
    {
     $ratio = $width_ratio;
    }
    
    if($resize_height_tag && !$resize_width_tag)
    {
     $ratio = $height_ratio;
    }

    $new_width = round($tmp_width*$ratio);
    $new_height = round($tmp_height*$ratio);

    if($autoResize=="Y")
    {
     if(($width && $new_width > $width) || ($height && $new_height > $height))
     {
      return $this->getImageSize_resize($new_height,$new_width,$height,$width,"Y");
     }
    }
    
    return array($tmp_width,$tmp_height,$new_width,$new_height);
   }
  }
  return array($tmp_width,$tmp_height,$new_width,$new_height);
 }

PHP 變更 Session 存放路徑

<?php
session_save_path('tmp');
?>

上述是將 session 存放於 tmp 資料夾的意思

星期二, 4月 08, 2014

iOS Xcode 常用相關資料記錄

記錄與 iOS 開發有關的常用工具或指令 

Apple Developer
https://developer.apple.com/
管理憑證用

iTunes Connect
https://itunesconnect.apple.com/
管理應用程式及報表

Application Loader
https://itunesconnect.apple.com/apploader/ApplicationLoader_2.9.dmg
發佈 ipa 檔用

Android SDK 常用相關資料記錄

記錄與 Android 開發有關的常用工具或指令

Android SDK
http://developer.android.com/sdk/index.html?hl=sk

Eclipse
https://www.eclipse.org/downloads/


Titanium 常用相關資料記錄

記錄 Titanium 相關指令或是注意事項

Titanium
http://www.appcelerator.com/titanium/

修正 jQuery Validation 日期檢查在 ie8 不支援 yyyy-mm-dd 的小問題

我習慣用 2014-01-30 這樣的日期格式,很奇怪在其它瀏覽器都正常,就 ie8 有問題......orz

開啟 jquery.validate.js
#1025 行
date: function( value, element ) {
            return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()) || value.match(/^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$/);
        },


改成這樣就可以了,不過有點不防呆就是了XD
版本是 jQuery Validation Plugin 1.11.1

延伸閱讀
jQuery plugin: Validation
http://bassistance.de/jquery-plugins/jquery-plugin-validation/

星期二, 4月 01, 2014

開啟及使用 Codeigniter 的 CSRF 保護

開啟及使用 Codeigniter 的 CSRF 保護

1.開啟 /application/config/config.php
$config['csrf_protection'] = true; //將此項設為 true
$config['csrf_token_name'] = 'csrf_test_name'; //此為csrf的token名稱,可自訂
$config['csrf_cookie_name'] = 'csrf_cookie_name'; //此為csrf的cookie名稱,可自訂
$config['csrf_expire'] = 7200; //cookie失效時間

2.將 CSRF 語法加入於表單內
如果你是使用 form_open() 去建立表單的話,CI會自己產生 csrf 的語法,如果你跟我一樣都喜歡自己寫表單,那就照下面的方式就可以了

在表單中插入下列字串
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name()?>" value="<?php echo $this->security->get_csrf_hash()?>" />

3.測試方法
表單送出後,如果表單內沒有csrf的token或是token不同的話,頁面會顯示 The action you have requested is not allowed. 訊息,拒絕操作

若僅前台要使用csrf,則修改config.php檔案,依實際情況調整下列語法即可
if(stripos($_SERVER["REQUEST_URI"],'/admin') === FALSE)
{
    $config['csrf_protection'] = TRUE;
}
else
{
    $config['csrf_protection'] = FALSE;
}  


※延伸閱讀
CodeIgniter User Guide Version - Security Class
http://ellislab.com/codeigniter/user-guide/libraries/security.html

CSRF (Cross Site Request Forgery) 跨網站請求偽造攻擊
http://en.wikipedia.org/wiki/Cross-site_request_forgery