jQuery slideToggleで動きがカクカクする

ググってみるとtableタグが・・・とか書いてたが spanでもカクカクしてたdivに変更すると大丈夫だった。

js

$(function() {
    $('a').hover(
        function(){
            $(this).find('.status').slideToggle(200);
        }
    )
});

Before

<a href="#">
    <img src="#" alt="">
    <span class="status" style="display: none;">xxx</span>
</a>

After

<a href="#">
    <img src="#" alt="">
    <div class="status" style="display: none;">xxx</div>
</a>

upload_max_filesize post_max_sizeエラーの対策 CakePHP

PHPで大きなファイルをアップロードした時のエラーの原因

  • post_max_size
  • upload_max_filesize

このエラーによる問題

  • CakePHPで空のデータがインサートされる
    メソッドはポストなんだけどポストされたデータが全て空に。
    nameが空なのでvalidateも機能せず、createdとmodifiedだけ追加されインサートされる。
  • ポストされたデータが空になるので$_FILE['xxx']['size']でファイルサイズが取れない

post_max_sizeの対策

ポストしたデータのヘッダのContent-Lengthからポストされたサイズが分かるのでこれをチェックする。 f:id:watuu:20130912214516p:plain

if ($this->request->is('post')) {
    if ($_SERVER['CONTENT_LENGTH'] > (8*1024*1024)) {
        $this->Session->setFlash('アップロードサイズが上限を超えています。');
        $this->Session->write('tmp_data', $this->request->data);
        $this->redirect($this->referer());
    }
} elseif ($this->Session->read('tmp_data')) {
    $this->request->data = $this->Session->read('tmp_data');
    $this->Session->delete('tmp_data');
}

サイズチェックした後、元のページへリダイレクトしたら元のデータが消えてたのでセッションを使ってデータを渡した。
こんなやり方でいいのかな。。。

upload_max_filesizeの対策

MAX_FILE_SIZEを使えば、サイズオーバーなら$_FILE['xxx']['error']に2が返ってくる。

<input type="hidden" name="MAX_FILE_SIZE" value="2097152">

さらにvalidateの方でもファイルチェックを行う必要あり。

CentOSでLinkStationをマウント。

アクセス制御などしてなければそのまま。

#mount -t cifs //192.168.1.xxx/DIR /mnt/linkstation

ユーザを指定する場合はオプションを付ける。
オプションはカンマ区切りで。

#mount -t cifs -o user=watuu,password=*** //192.168.1.xxx/DIR /mnt/linkstation

マウントしたディレクトリをDocumentRootにシンボリックリンクをはれば仕事がはかどる。

$ln -s /mnt/linkstaion linkstation

twitter widget width 可変の指定方法

twitter のタイムラインウジット

下記widget作成ツールから作成出来る。
https://twitter.com/settings/widgets

幅はコードにwidth="200"などを指定すればOKだが可変パーセントの指定ができない。
下記方法でいけた。

#twitter-widget-0 { 
    width: 100% !important; 
}

sqlite_open() が使えない。

パッケージで入れたPHP 5に最新版sqlite拡張を入れるAdd Star
http://d.hatena.ne.jp/sotarok/20080607/php_5_with_sqlite

ここのphpのバージョンを変えてmake && make install sqlite_open() が使えるようになった。