HOME > WEB > PHP

NEWEST    BACK >

フィールドが長すぎて表示されない場合の対応法

フィールドが長すぎてPHPからデータを取り出そうとすると
途中までしか表示されず困っていました。

探している途中で見つけたのは
DAOのエラー定数一覧
3231 ODBC--フィールドが長すぎるため、あふれたデータは切り捨てられました。

悲しいことにWindows+Apache+PHP+ACCESS(ODBC使用)という
構成であったのでダメなのか?しくしく と思いきや

phpinfoのODBCの欄を見ると odbc.defaultlrl 4096
なる欄を発見。

php.iniで

odbc.defaultlrl = 4096

odbc.defaultlrl = 1048576

初期の設定は4096バイトだったものを1M(1048576バイト)に変更すると
ちゃんと表示!

問題解決した~にかっ

マニュアルを見るとphp.iniだけは1Mとかの表記でいいですよ、とも書かれていたり




| WEB::PHP | comments (0) | trackback (0) |

<a>タグでGETする際の文字化け防止

日本語文字列をタグでGETする際に文字化けして困っていたのですが
urlencodeで簡単に解決しました。

GETで特定の値を送信時、文字化けしてしまう PHPプロ!Q&A掲示板


他にも技術的なこととか参考になったHP

PHP GET/POSTメソッドでの日本語の文字化け防止

Re: GET メソッドでの文字化けについて

ServletにおけるGETパラメータの文字化けについて (PHPとは違いますが)

| WEB::PHP | comments (0) | trackback (0) |

文字化け(PHP+Access)対策

PHP+データベースでShift-Jisを使わなければ解決する問題なのですが
PHP+Accessって組み合わせだったので文字コードを変えることができずしょぼん
(内部のシステムなのでSQLインジェクションはそれほど考慮しなくてよいのが救いでしたが。。。)

データベースに書き込む際には「'」シングルクォーテーションで囲むことで文字化けは防げると。
ただし、データの内部に「'」があるとデータが切れるので「''」シングルクォーテーションを重ねて回避
(preg_quoteのようにバックスラッシュをつけるのではダメなので、str_replaceで「’」右「’’」に置き換え

「"」ダブルクォーテーションが文字列中にあると不具合があったのですが
確認画面を表示させて、フォームのデータを「"」で囲っていたのが影響していたようで
これを「&quot」を使ってPOST(GET)してSQL文では元に戻すことで解決

足りないような気がするけど「"」「'」が使えるようになったのでひとまずこれで

参考
Sjis文字化け
CGIで特定の文字(表・予・申・能など)が文字化けする
PHP 利用時に Shift_JIS で addslashes() によるエスケープ処理に SQL インジェクション可能な穴

PHP クォーテーションについて
シングルクォーテーションとダブルクォーテーションについて
文字列内での変数展開

etc
フォームにダブルクォーテーションが含まれているとデータベースエラー
第2回 サニタイズ どこかで誰かが やっている?
SQLインジェクション対策
MS-Access + ODBC での文字コードの指定

| WEB::PHP | comments (0) | trackback (0) |

PHPでExcelを操作する方法

PHPでExcelの読み込み、書き込みする方法として以下のサイトが参考になります。

PHPでエクセルを読む Spreadsheet_Excel_Reader

PHPでExcelを操作する方法

Spreadsheet_Excel_Readerは有名ですが、罫線情報など属性を読み取りなどできないようで、それを解決したのが
Excel_Peruserです。

Excel_Reviser、Excel_Peruserはサイトが日本語なので、使いやすいと思います。(フォーラムもある)

| WEB::PHP | comments (1) | trackback (0) |

IP アドレスを並べ替える

IP アドレスを並べ替える
ここではAccessにて説明

データベースではIPは文字列であるため文字列がきれいに並ばない場合がある。オクテット(ピリオドで区切られた数字)ごとに並び替えるようにしないといけないが、結構ソース長く、複雑になる。SQLではなかなか・・・

ためしに、IPアドレスの文字列数(LEN)とIPアドレスで並べてみたらOKだったので、コレで
(第4オクテットのみ違うだけならうまく並ぶような感じ!?)

| WEB::PHP | comments (0) | trackback (0) |

NEWEST  PAGE TOP    BACK >

GmailをWeb Storage
 Tips

SEARCH

CATEGORIES▼

ARCHIVES▼

LINK▼

OTHER▼

Counter
(since 080903)
合計: 240460
今日: 40
昨日: 107


Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0