:set foldmethod= で折りたたみ方式を指定できる manual indent expr marker syntax diff が指定できる markerを指定した場合 /* コメント {{{ */ . . . /* }}} */ と書いてその中でzcと打つと折りたたみzoと打つと折りたたみを開く zC/zOを再帰的に処理を行う
2006年9月アーカイブ
たぶんこれ使いこなすと便利になるのかな?とりあえずクラスドキュメントから引用 getObjectPropList (line 207) オブジェクトプロパティの一覧を返す getObjectList()メソッドは条件にマッチするIDを元にEthna_AppObjectを生成するためコストがかかる。こちらはプロパティのみをSELECTするので低コストでデータ を取得することが可能。 * return: array(0 => 検索条件にマッチした件数, 1 => $offset, $countにより指定された件数のプロパティ一覧) Ethna_Error:エラー * access: public mixed getObjectPropList (string $class, [array $keys = null], [array $filter = null], [array $order = null], [int $offset = null], [int $count = null]) * string $class: Ethna_AppObjectの継承クラス名 * array $keys: 取得するプロパティ一覧(nullなら全て) * array $filter: 検索条件 * array $order: 検索結果ソート条件 * int $offset: 検索結果取得オフセット * int $count: 検索結果取得数
フォームに {form ethna_action="template_add_do"} {uniqid} {/form} として登録のアクションで if (Ethna_Util::isDuplicatePost()) { // 二重POSTの場合 return 'regist_done'; } // 登録処理 : return 'regist_done'; とすることにより登録前の画面でユニークIDが作成され登録時にその値があるかどうか確認することが出来る このユニークIDは1時間で消えるらしい 出典http://ethna.jp/ethna-document-dev_guide-app-duplicatepost.html#cbf75c27
Ethna 2.3.0-devを使ってたんだけど actionFormの正規表現のエラーチェックが利かない! なぜだ〜と調べてみると class/Plugin/Validator/Ethna_Plugin_Validator_Regexp.php の37行目にregexなる部分がここをregexpに修正することで正常に動作する http://ethna.jp/ethna-community-forum.html の書き込みにも同様のものがあったやっぱCSV版を常に使うべき?
入力画面->確認画面を二つのアクションに割り振った場合等最初のアクションフォームの定義と同じなものを確認画面で書くのを手抜きしたいので確認画面側でextendsしてアクションフォームを作成するそのとき class Admin_Form_TemplateAddDo extends Admin_Form_TemplateAdd としただけではファイルの実態を見つけられないようなので(パスの直下じゃないから?) Action.php Action/Do.php のような構成の場合は require_once dirname(__FILE__).'.php'; と記述する最初実態で require_once 'Action.php'; でいいじゃんと思ったけど Action.php Action/Do.php Action/Do2.php とかなったときに便利なのか? 大本はたしかEthnaのサイトのサンプルを参照(?) /** * Template/Add/Do.php * * @author hideo kashioka * @package Admin * @version $Id: skel.action.php,v 1.8 2006/07/10 13:47:33 fujimoto Exp $ */ require_once dirname(__FILE__).'.php'; /** * template_add_doフォームの実装 * * @author hideo kashioka * @access public * @package Admin */ class Admin_Form_TemplateAddDo extends Admin_Form_TemplateAdd { } こんな感じで if ($this->af->validate() > 0) { return 'template_add'; } とか、そのまま使えるようになる
JSPでもinclude出来るようだ 読み込ませるファイルは基本的には読み込む側と同じ文字コードで記述する必要がある
あれ?PHPだとforeachって0件でもループ入らなかったような気が…… smartyでforeachすると0件でも表示処理が行われてしまう。そのような場合はforeachelseを用いることで回避できる {foreach from=$app.items item=item} 表示処理 {foreachelse} データがありません {/foreach}
$sample_table =& new Sample_AppObject($this->backend); $row = $sample_table->searchProp(); これで全データが取得出来る検索やオフセットで抜く場合第二引数以降を設定する * @param array $keys 取得するプロパティ * @param array $filter 検索条件 * @param array $order 検索結果ソート条件 * @param int $offset 検索結果取得オフセット * @param int $count 検索結果取得数 * @return mixed array(0 => 検索条件にマッチした件数, 1 => $offset, $countにより指定された件数のオブジェクトプロパティ一覧) Ethna_Error:エラー Keysは配列にて複数指定が出来る一つのキーなら配列にしなくてよかった(かな?)
以前はgenerate_app_objectのパッチかけて上手くいってたんだけど
ethnaコマンドでスケルトンを作るときに authorとか自分で入れるためには ‾/.ethnaに [ethna] author = "username " 等書いておく
JavaScriptで{}タグを利用するとSmartyがエラーになってしますその場合Javascript部分を{literal}{/literal}で囲うことによりエラーなくjavascirptを記述できる またこのliteralというデリミタ自身を変更するためには Smarty.class.phpの var $left_delimiter = '{'; var $right_delimiter = '}'; 部分を書き換えることによりデリミタの変更が可能
あるファイルのm行目からn行目まで別ファイルとして保存する場合 :m,nw ファイル名 サンプル :10,100w another.txt
複数のファイルを蓄えておく時,tarをした後に圧縮しておくと良い. [tar + compress] ディレクトリdirの場合 % tar cvf ss.tar ./dir % compress dir.tar または % tar cvf - ./ss | compress > ss.tar.Z とする. 解凍は % umcompress ss.tar.Z % tar xvf ss.tar または % zcat ss.tar.Z | tar xvf - 引用元:http://www.infonets.hiroshima-u.ac.jp/‾taoka/tools/node1.html
なんかSolarisサーバで圧縮したり解凍してたら
String result = ""; StringBuffer buffer = new StringBuffer(); for (int i=0; i < 20; i++) { buffer.append(getNextString()) } result = buffer.toString(); Stringで定義したもの、そのまま対称としないほうがいいらしい 参考URL:http://java.sun.com/docs/books/performance/1st_edition/html/JPMutability.fm.html
ずっと放置していたMovable Type2.6?から一気に Movable Type 3.2-ja-2 に更新しました。 sixapartから最新版をダウンロードしたらもともとのMTが動いていたディレクトリをリネームして新しいく解凍したものもとのディレクトリに配置 mt-config.cgi-originalをmt-config.cgiとしその中の CGIPath 公開URLを設定 PublishCharset を EUC-JPやShift_JISに設定 36行目付近のDBの記述(mysqlの場合)をバックアップしていた以前のものに合わせる。 これで準備は完了公開ディレクトリのmt.cgiにアクセスすると指示が出るので指示にしたがい DBのアップデート等を行い(問題無ければ自動的にアップデートしてくれる)「Movable Typeにログインしてください。」が表示されればインストール完了 正常にインストールされていれば以前のID/PASSで管理画面に入ることが出来る
PCのモニタをTVに出来るということで通販で購入してみました。送料入れて大体5000円くらい ん?期待していたほどの移りではなく DVDやPS2を接続してもガンガンちらつきます接触の関係かと本体を振ってみたり、叩いてみたりw古典的な機械修理法を試してみたら悪化して白黒状態に(;・∀・) 逆にちらつきが少なくなって見やすくなった説も…… 微妙に節約しようとしたのが裏目にでちゃったか普通に安いTV買おうっと
たまに装備を預けるときあんま行かない街で場所を忘れたりしちゃうので ジュノ下層(J-9) Caruvinda 北サンドリア(G-8) Taulenne バストゥーク商業区(H-9) Sinon ウィンダス森の区(H-11) Tesch Garanjy タブナジア地下壕(F-8) Ratonne
いつも思ってたんだけど信号の無い横断歩道に人待ってても車止まらずなんならスピードそのままで横断歩道を突っ切るのは何故??
ブログでもなんでもないページに最近海外からのSPAMが来るようになった掲示板でもないのに〜 そんなわけで半角のみチェック! if (preg_match('/^[¥x20-¥x7F]$/', $body) { echo "半角のみです"; } else { echo "全角があります"; }
事務所でLAN関係の環境を新しくしたため今まで設定してなかった無線LANの設定をしてみた。 昔、友人からもらったBUFFALOのルータがあったので Webで検索しダウンロードして設定開始 順調に設定が進む中ルータの情報が取り出せない ダイアログでノートンファイアーウォールが入っている場合〜なコメントが出たので、ノートンOFFって見るも症状変わらず …… あっWindowsファイヤーウォール??!無効にしてみたところ順調に設定完了 あいまいならファイヤーウォールとだけ書いとけってーの
Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? といったようなエラーが発生する場合 postgresへの接続はUNIX SOCKETで行われる。 port 5432で接続可能か確認する必要がある。 phpから接続する場合であればlocalhostを指定しないという手もある。
編集中のファイルのm行目からn行目までを別ファイルに保存する場合 :m,n w! file とする この行を見る時には ctl+gで行情報を見ると便利
クラスメソッドでundefin functioとか出てしまった場合メソッド一覧を表示して確認するための関数 PHPマニュアルより function print_methods($obj) { $arr = get_class_methods(get_class($obj)); foreach ($arr as $method) echo "¥tfunction $method()¥n"; }
feedpath.jpからの日記更新テスト
ページタイトル: 有限会社アリウープ
XSS対策
サニタイズじゃないよ(笑)
なんていったらいいのかな?
HTML無効化?
function check( $arr) {
if (is_array( $arr)) {
$ret = array_map( "check", $arr);
} else {
$ret = htmlspecialchars($arr,ENT_QUOTES);
}
return $ret;
}
$post = check($_POST)
generated by feedpath
サニタイズじゃないよ(笑)
なんていったらいいのかな?
HTML無効化?
function check( $arr) {
if (is_array( $arr)) {
$ret = array_map( "check", $arr);
} else {
$ret = htmlspecialchars($arr,ENT_QUOTES);
}
return $ret;
}
$post = check($_POST)
generated by feedpath
本タイトル: DEATH NOTE (1)
$ wget http://jaist.dl.sourceforge.net/sourceforge/sentrytools/portsentry-1.2.tar.gz $ tar xzvf portsentry-1.2.tar.gz とし作成できたディレクトリに移動して $ vi portsentry.conf とし /KILL_ROUTE でサンプルとして書き込まれているiptableやipchainsといった行の利用するもののコメントをはずしファイルの場所を存在する例: #KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP" → KILL_ROUTE="/usr/sbin/iptables -I INPUT -s $TARGET$ -j DROP" さらにportsentry.ignoreに監視を除外するIPを記述(念のため、どこかのサーバ書いておいた方がいいと思います) 修正が終わったら $make linux (linuxの場合) #make install としてインストール #/usr/local/psionic/portsentry/portsentry -tcp #/usr/local/psionic/portsentry/portsentry -udp で起動完了 /etc/rc.d/rc.local 等に上記起動コマンドを書き込むと設定終了 tail /var/log/messages としてみて PortSentry is now active and listening. と表示されていれば正常に起動できています これでアタックがあった場合、指定の方法で自動的にブロックされます 参考URL:http://pocketstudio.jp/linux/?PortSentry%2FREADME%20%C6%FC%CB%DC%B8%EC%CC%F5#content_1_9
<% java.util.Calendar cal = java.util.Calendar.getInstance(TimeZone.getTimeZone("JST")); DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd"); String dateString = dfm.format(cal.getTime()) + "T00:00:00+09:00"; %> <%= dateString %>