投稿

1月, 2012の投稿を表示しています

PHP5系 と IIS(7 または 7.5)のPHP.ini の編集方法について

PHP.ini の編集って、テキストから出来るから楽ですよね? でも、ちょっと編集をミスって起動しなくなったり、設定忘れてた… とかありそうなもので… また、初心者って何を設定して良いの…?ってなりますよね。 そんな時にこれっ! PHP Manager 1.2 for IIS 7 http://phpmanager.codeplex.com/releases/view/69115 IIS 7 系 とPHP5系? で、PHP.ini をIISからweb経由で設定できるツールです。 使い方は簡単。 1.上記からx86 か x64 をOSに合わせてダウンロードする。 2.IISサーバーにインストールする。 3.IISの設定画面の"接続"(画面左のツリー)から、サーバーを選択する。 4.XXXXホーム(画面中央)の"IIS"の分類の中に"PHPマネージャ"が追加されているので選択する。 5.PHPの設定画面が開くので、設定を変更する。 ただし、PHP.ini に書いた、日本語は文字化けするので、 コメントなどは、後で記述することをお勧めします。 何が楽かって… PHPの拡張機能(Oracleの読み込みとか…)の 有効・無効 がすっごく楽。 選んで、"操作"(右の一覧)で、"有効にする"・"無効にする"を選ぶだけっ! いやぁ、記述ミスとかが減って良い感じでしたーー でわでわ。

PHP5系 と IIS(7 または 7.5)のファイルアップロードサイズの制限について

PHPとIISで開発することは多いと思われる?が、 どうもPHPの情報を探すのが下手らしい。(僕が) なので、調べた内容を転記しておく。 1.PHP側の設定  PHP.ini の下記項目の関係を注意してサイズを指定すること。  memory_limit  > post_max_size > upload_max_filesize 2.IIS側の設定  IISのサイズ指定できる箇所があるので、そこで確認を行うこと。 バイト指定なので気をつけてね。 ***************ここから 転記******************** 1.IISマネージャを起動します。 2.[接続]ウィンドウで対象のサイトまたはディレクトリなどを選択します。 3.[要求のフィルタリング]をダブルクリックします。 4.“要求のフィルタリング”ページの[操作]ウィンドウ(右側に出るはず)の[機能設定の編集]をクリックします。 5.[要求制限]の[許可されたコンテンツの最大長]に、バイト単位でアップロードの際の最大サイズを指定します。 ※付帯情報があるので、若干大きめに設定することをお奨めします。 ***************ここまで 転記********************  http://www.windows-maniax.com/kuniteru/iis/iis-tips250.html 最終的には、  PHP.iniの"memory_limit" > PHP.iniの"post_max_size" > PHP.iniの"upload_max_filesize" > IISの設定 のサイズで設定する必要があります。 ん~どの環境になっても、ファイルアップロードサイズって面倒ですよね。 忘れてた… IIS7.0 では"IISマネージャ"が無いそうです。 無い場合は「http://www.iis.net/download/AdministrationPack」にある、 画面右下の「Japanese: WebPI / x86 / x64」 から、OSに合わせてダウンロードして下さいな。

Ext JS 4.0.7 でメッセージボックスを出す。

Ext JS 4.0.7 でダイアログボックスを出す時、 検索で、alert とか、confirm はすぐに出てきたが、 アイコンが指定できるダイアログボックスの出し方がすぐに出てこなかったのでメモしておく。 alertの場合: Ext.Msg.alert( 'ここがタイトルです。', 'ここが本文のメッセージです。', function(){console.log('ここがボタン押下後のコールバック関数です。')} ); confirmの場合: Ext.Msg.confirm( 'ここがタイトルです。', 'ここが本文のメッセージです。', function(){console.log('ここがボタン押下後のコールバック関数です。')} ); カスタマイズ可能なダイアログボックスの場合: Ext.MessageBox.show( { 'ここがタイトルです。', 'ここが本文のメッセージです。', buttons : Ext.MessageBox.OK, // ここでボタンの種類を指定します。 icon : Ext.MessageBox.WARNING // ここでアイコンの種類を指定します。 } ); ちなみに、アイコンとボタンの種類はこれです。 ボタンの種類 :OK、YES、NO、CANCEL、OKCANCEL、YESNO、YESNOCANCEL アイコンの種類:INFO、WARNING、QUESTION、ERROR また、アイコンの種類は、CSSで指定されているだけなので、 独自CSSを作成し、アイコンを好きなものを表示することが出来る…と思います。(タブン・オソラク・キット) 詳しくは、MessageBox.jsのソースを見ろ(笑

PHPの小数点って…

2012年1月24日 追記 とりあえず解決しました。 小数点の整数値が0の場合、0が消えてしまう現象 「0.33」などをそのまま「0.33」で使用する方法! if( $results['data'][$i] !== null ) { $length = (float)$results['data'][$i]; } とします。 なぜNULLチェックを行うのか? nullの場合、「0」に変換されてしまいます。 変換しなくて良いのに… PHPなんて…PHPなんてっ!!!!! PHPなんて…PHPなんてっ!!!!! (大事な事なので2度言いました) ***************前回の文章***************** DBから取得したデータが、0.33 とかだと、 「.33」に変換される… どうやって、「0.33」にするんだよ… ネットですぐに出てこないのも解せない… PHPなんて…PHPなんてっ!!!!! 解決方法募集中…

Extjs4 でGridを触れなくしたい

たとえば、左にグリッド、右に明細を表示するような画面があるとする。 その場合、左のグリッドをクリックすると、 「DBにデータを取りに行って、右に明細を表示する」という処理になるでしょう。 「DBにデータを取りに行って、右に明細を表示する」の間に ユーザーがグリッドをクリックすると連続でリクエストが走り 重くなったり、整合性が取れずに冷害が発生する可能性があります。 で、Gridの更新以外でGridを触れなくする方法は、 「Ext.grid.Panel.getView().setLoading()」 に true を設定すればよい。 逆に、触れるようにするには、 false を設定すれば、触れるようになります。 が! 初期表示時に「Ext.grid.Panel.getView().setLoading(true)」を行うと、"クリックした時に選択されない。" という事象が発生しました。 まぁ、初期表示時に画像を読んだり、グリッドの自動選択したり、 Ajaxを5・6回呼び出したりと…思い処理をたくさんやったんですがね(笑 その時の解決方法です。 Ext.grid.Panel.getView().setLoading(false); Ext.grid.Panel.getView().setLoading(true); のように、先にfalseを設定し、後にtrue を設定します。 こうすることにより、クリックしたのに選択されないっ! ということが起こらなくなります。 ふしぎなぁ~~~ とりあえずメモとして… ******************サンプル********************** tmp.readMapImage = function(){ // Gridを触れないようにする extGrid.getView().setLoading(false); // これがみそっ! extGrid.getView().setLoading(true); // 画像ファイルパスを作成 var imageFileName = './a.gif'; // イメージの読み...

Puppy5.1.1 と VMWare

VMWare Player に、Puppy5.1.1 をインストールしてみた。 インストールはうまく行ったが、VMWare Toolsのインストールが出来ない。 調べてみると、フォルダ構成が違うらしいので、 シンボリックリンクを張って対応してみたが、別の所で引っかかる。 仕事で忙しいし、腰を据えて調べる時間が無い…。 支援ページの掲示板への質問しようにもアカウントが1週間経っても発行されない… 使えねっ! (俺が使えないのか?(w mantis を動かしたいだけなのになぁ…

Ext JS 4.0.7 で、クラスを作る場合…

2012年1月13日修正: やっぱりクラス作成について、まだまだだったっぽいので修正をします。 修正箇所: コンストラクタで「me.callParent(arguments);」を呼び出しているが、 足りなかった… me.callParent(arguments); me.initConfig(config); // これを追加 する必要がある。 なぜなら、config のgetter/setter は、initConfig()を呼び出す事により作成される。 そのため、上記2点の呼び出しは必須でしょう。 下記のソースにも追加しておきました。 2012年1月11日投稿: ****************修正前******************** Ext JS 4.0系 で、クラスを作成する(Ext.defineを使う)場合、 "extend:"の指定ができます。 指定しない場合は、「Ext.Base」が自動で付与されます。(確か…) で、使ってて解った事は… 「Ext.Component」は必ず継承すべきなんだろうなぁ… という事です。 なぜなら、 1.「Ext.Component」を継承しておけば、コンストラクタにconfig形式で値が設定できるので、 Extの使い方と同じにできる。 (config を必ず指定しなきゃだめだけど…) 2.イベントの登録ができる。 の2点です。 特に、「1.」は意外と良いです。ソース全体が統一されるので 個人的には大好きです♪ 何も継承しなくても「Ext.Base」が付く(はず)なので、「Ext.Component」を継承しておくのが 無難だと思います。 以下例です。ただし、動かしてないので、動かなかったらごめんなさい。: *************************クラス************************ Ext.define('hoge', { extend: 'Ext.Component', // 継承する場合、親クラスのconfig を必ず確認すること config : { /** * @cf...

やっぱり僕は…

今日はEXT JS4 の画面がとりあえず完成したから、 PHPで実際に処理を書いた……結果…PHPがやっぱり嫌いだという事が判った… Ver:PHP5.3.8 嫌いだと思ったのは、2点あります。 その1!! includeしたファイルにある変数は、メソッド内でしか使えない。 当たり前ジャン。という人も要るだろうが、DB接続クラスなどは 本来1クラスで全体を制御すると思います。 その際、DB接続用のユーザーID/パスワード/ホスト名(SID)などは、外だししたいのが普通でしょ? それを、DB接続クラスに読み込ませるのがめんどくさい… こんな感じです。 ************************************************************************* class Hoge { /** DB接続用コネクション */ /** DB接続用ユーザーID*/ private $userId; /** DB接続用パスワード*/ private $password; /** DB接続用SID*/ private $sid; public function __construct($connection = null){ include('.const.php'); $this->con = $connection; $this->userId = $ORA_UID; $this->password = $ORA_PWD; $this->sid = $ORA_CONSTR; } } ************************************************************************* include メソッドは、1メソッド内でしか参照できません。 そのため、コンストラクタ内で読み込み、クラスフィールドに保持します。 その後は、クラスフィールドで保持した値を使用します。($this-> 参照で…) 確かにカプセルかとか考えるとこの方が良いのかも...