デフォルトでは2M(サーバーによっては5M)以下ならUploadできるが、超えるとUploadできない現象が起こる。
(VCL for PHPであれば、ファイル名とかに何も入らない状況)
原因はphp.ini 内でリミット設定がある事。
1)さくらのレンタルサーバーの場合
サーバーコントロールパネル→PHP設定の編集において以下を追記
memory_limit=128M
post_max_size=32M
upload_max_filesize=16M
max_execution_time=600
2).htaccessを使う場合
.htaccessに以下を追記
php_value memory_limit 128M
php_value post_max_size 32M
php_value upload_max_filesize 16M
php_value max_execution_time 600
値の大きさは
memory_limit > post_max_size > upload_max_filesize
であること。
2010年02月25日
Upload 2Mでコケル対策
posted by すら at 17:32| PHP(delphi for PHP)
2009年12月25日
Delphi For PHP の思わぬ罠(1)クラス名
クラス名はちゃんと管理して分けておかないといけない(当たり前)
意外に、コピペでクラスを作成したときなど、クラス名を替えるのをわすれてしまう(汗
特定ページを表示後、別の特定ページが表示されないときはまずこれを疑うこと。
意外に、コピペでクラスを作成したときなど、クラス名を替えるのをわすれてしまう(汗
特定ページを表示後、別の特定ページが表示されないときはまずこれを疑うこと。
posted by すら at 19:37| PHP(delphi for PHP)
VCL for PHP
最新(ファイル別)のリポジトリ
http://vcl4php.svn.sourceforge.net/viewvc/vcl4php/trunk/vcl/
もしくは
http://sourceforge.net/projects/vcl4php/
http://vcl4php.svn.sourceforge.net/viewvc/vcl4php/trunk/vcl/
もしくは
http://sourceforge.net/projects/vcl4php/
posted by すら at 16:53| PHP(delphi for PHP)
2009年11月04日
ページ移行(redirect)
ボタンクリックなど、リンク以外でページを移動する場合は
redirect( $url );
$url - クライアントを転送すべき新規URL
を使う。
この場合の注意点として、「クライアントにどんな種類のデータも送らない」ということ。
このredirectがちゃんと動かない場合は、何かを送っている。
たとえば。
require_once でライブラリ的なクラスを呼んでいて、その中でチェックライトな echoなり、var_dumpなりがあるとき。
あるいは
ファイル先頭の <?php の前に改行やスペースがあるとき。
・・・など。
もしかして、redirect は delphi for PHP の関数かも。
実装はおそらく
function redirect( $url )
{
header("HTTP/1.1 301 Moved Permanently")
header("Location: " . $url );
}
といったところと推定。
redirect( $url );
$url - クライアントを転送すべき新規URL
を使う。
この場合の注意点として、「クライアントにどんな種類のデータも送らない」ということ。
このredirectがちゃんと動かない場合は、何かを送っている。
たとえば。
require_once でライブラリ的なクラスを呼んでいて、その中でチェックライトな echoなり、var_dumpなりがあるとき。
あるいは
ファイル先頭の <?php の前に改行やスペースがあるとき。
・・・など。
もしかして、redirect は delphi for PHP の関数かも。
実装はおそらく
function redirect( $url )
{
header("HTTP/1.1 301 Moved Permanently")
header("Location: " . $url );
}
といったところと推定。
posted by すら at 10:08| PHP(delphi for PHP)
2009年03月11日
(PHP)ファイルのステータスのキャッシュをクリア
clearstatcache()を使うとよいそうな。
影響を受ける関数
stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), および fileperms().
影響を受ける関数
stat(), lstat(), file_exists(), is_writable(), is_readable(), is_executable(), is_file(), is_dir(), is_link(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype(), および fileperms().
posted by すら at 14:59| PHP(delphi for PHP)
2008年12月13日
(VCL2.0) サーバーの利用可能関数に注意!
VCL自体は utf8ベースで使うものと考えること。(EUCはトラブルの元らしい)
ini_set( "mbstring.internal_encoding", "utf8" );
ini_set( "mbstring.encoding_translation", "0" );
なんかで回避できるかも?
また。
ReflectionClass をVCL中より呼んでいるが、サーバーによっては使えない設定になっている(exファーストサーバーの共用サーバーなど)。
実際にサーバーのUPするまで解らないのでかなり問題。
new ReflectionClass( "自分で作ったクラス名" );
なんかをやってみて途中でダウンするようなら駄目。
php.ini中にある
zend.ze1_compatibility_mode
をOffにしたら動くかも。
ini_set( "mbstring.internal_encoding", "utf8" );
ini_set( "mbstring.encoding_translation", "0" );
なんかで回避できるかも?
また。
ReflectionClass をVCL中より呼んでいるが、サーバーによっては使えない設定になっている(exファーストサーバーの共用サーバーなど)。
実際にサーバーのUPするまで解らないのでかなり問題。
new ReflectionClass( "自分で作ったクラス名" );
なんかをやってみて途中でダウンするようなら駄目。
php.ini中にある
zend.ze1_compatibility_mode
をOffにしたら動くかも。
posted by すら at 11:22| PHP(delphi for PHP)
(PHP) デフォルトのマルチバイト文字コード
サーバーによっては、encording_translation がONになっているものがあり、文字化けの原因になる。
.htaccess に以下設定できるものがあれば、設定する。
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation Off
もしくは。
php.iniに。
.htaccess に以下設定できるものがあれば、設定する。
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation Off
もしくは。
php.iniに。
posted by すら at 11:21| PHP(delphi for PHP)
IEの等幅ピッチによる位置あわせ
IEは等幅ピッチを指定しても等幅にならない。
カタカナ、アルファベット、数字が混在すると駄目。
位置あわせをしようとしてもずれる。
FireFoxはちゃんと合う。
カタカナ、アルファベット、数字が混在すると駄目。
位置あわせをしようとしてもずれる。
FireFoxはちゃんと合う。
posted by すら at 11:20| PHP(delphi for PHP)
(VCL2.0) ヘッダ情報の出力順番入れ替え
例:タイトルとmetaタグのcharsetの行を入れ替える。
vcl\forms.inc.php の1600行目あたり
-----------------------------
$title=$this->Caption;
echo "$title\n";
-----------------------------
を
-----------------------------
echo "if (($this->DocType!='dtHTML_4_01_Strict') && ($this->DocType!='dtHTML_4_01_Transitional'))
{
echo "/";
}
echo ">\n";
-----------------------------
の後ろに持ってくる。
vcl\forms.inc.php の1600行目あたり
-----------------------------
$title=$this->Caption;
echo "$title\n";
-----------------------------
を
-----------------------------
echo "if (($this->DocType!='dtHTML_4_01_Strict') && ($this->DocType!='dtHTML_4_01_Transitional'))
{
echo "/";
}
echo ">\n";
-----------------------------
の後ろに持ってくる。
posted by すら at 11:18| PHP(delphi for PHP)
(VCL2.0) jscalender の日本語化
comctrls.inc.php の中で、DateTimePicker / MonthCalendarのClass定義を探す。
→面倒であれば、jscalendar で検索をかける。
__construct($aowner)の中で
$this->_calendar = new ..
の行において、"en" を"jp"にする。
スキンを変更したい場合は同様に
'calendar-win2k-2'
の部分を変更する
ついでにUTCをAsia/Tokyoに替えておくのもいいかも。
---------------------------
vcl\jscalendar\lang において。
元からあるcalendar-jp.jsは不具合だらけなので、calendar-en.jsから自分で作る。
calendar-jp.js をリネームして残し、calendar-en.js をcalendar-jp.jsの名前で保存。
保存したcalendar-jp.jsの中身を日本語に変更、utf-8(実際に出力する日本語コード)で保存。
→面倒であれば、jscalendar で検索をかける。
__construct($aowner)の中で
$this->_calendar = new ..
の行において、"en" を"jp"にする。
スキンを変更したい場合は同様に
'calendar-win2k-2'
の部分を変更する
ついでにUTCをAsia/Tokyoに替えておくのもいいかも。
---------------------------
vcl\jscalendar\lang において。
元からあるcalendar-jp.jsは不具合だらけなので、calendar-en.jsから自分で作る。
calendar-jp.js をリネームして残し、calendar-en.js をcalendar-jp.jsの名前で保存。
保存したcalendar-jp.jsの中身を日本語に変更、utf-8(実際に出力する日本語コード)で保存。
posted by すら at 11:18| PHP(delphi for PHP)
(VCL2.0) Memoのクリアができない
Memoコントロールで一度表示するとClear()メソッドでクリアできない。
SetLines(array())もだめ。
Lines = array(); は効いた。
どうやら、メソッド関数は駄目なものが多いようだ。
色々試す中で、GetLines()、SetLines()は上手く動かない。
Linesプロパティを相手に操作するとうまくいく。
[2008/07/31 追記]
クリアでLines = array(); を使用した場合、Add()が上手く動かないときがある。
Lines = array();を使うときは、ライン追加もLinesプロパティ相手に行う必要があるようだ。
SetLines(array())もだめ。
Lines = array(); は効いた。
どうやら、メソッド関数は駄目なものが多いようだ。
色々試す中で、GetLines()、SetLines()は上手く動かない。
Linesプロパティを相手に操作するとうまくいく。
[2008/07/31 追記]
クリアでLines = array(); を使用した場合、Add()が上手く動かないときがある。
Lines = array();を使うときは、ライン追加もLinesプロパティ相手に行う必要があるようだ。
posted by すら at 11:17| PHP(delphi for PHP)
(VCL2.0) Image のサイズが合わない
Imageは画像をセット後、Width/Heightを再設定しないとImageコントロールのサイズにかかわらず画像が元のサイズで表示される。
posted by すら at 11:16| PHP(delphi for PHP)
ListView の Column 操作サンプル
カラム操作サンプル
// 幅を指定してカラム追加
$this->ListView->addColumn( "カラム1", 80 );
$this->ListView->addColumn( "カラム2", 160 );
$this->ListView->addColumn( "カラム3", 80 );
// リストビュー内各要素を編集不可とする
$clm = $this->ListView->getColumns();
foreach( $clm as $ColumnData)
{
$ColumnData->setEditable(false);
}
$this->ListView->setColumns($clm);
// 幅を指定してカラム追加
$this->ListView->addColumn( "カラム1", 80 );
$this->ListView->addColumn( "カラム2", 160 );
$this->ListView->addColumn( "カラム3", 80 );
// リストビュー内各要素を編集不可とする
$clm = $this->ListView->getColumns();
foreach( $clm as $ColumnData)
{
$ColumnData->setEditable(false);
}
$this->ListView->setColumns($clm);
posted by すら at 11:15| PHP(delphi for PHP)
サーバーに転送したソフトが動かない
確認点は以下の通り
1)use_unit の確認
使用してないコンポーネントをシステムが勝手にインクルードに追加し、エラーになるときがある。
ソースコード先頭のuse_unit()文を確認、使ってないコンポーネントのものは削除する。
2)文字コードの問題
ブラウザがなぜか指定文字コードを無視することが多々ある。
3)サーバーのPHPの設定
サーバーのPHPのConfigure Command の内容によっては、無言で、エラーになる。
たとえば、マルチバイトの関数がインストールされていないサーバーで、マルチバイト系関数を使うとだんまり停止となる。
1)use_unit の確認
使用してないコンポーネントをシステムが勝手にインクルードに追加し、エラーになるときがある。
ソースコード先頭のuse_unit()文を確認、使ってないコンポーネントのものは削除する。
2)文字コードの問題
ブラウザがなぜか指定文字コードを無視することが多々ある。
3)サーバーのPHPの設定
サーバーのPHPのConfigure Command の内容によっては、無言で、エラーになる。
たとえば、マルチバイトの関数がインストールされていないサーバーで、マルチバイト系関数を使うとだんまり停止となる。
posted by すら at 11:14| PHP(delphi for PHP)