バージョン選択

フォーラム

メニュー

オンライン状況

40 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 40
もっと...

サイト内検索

バグ報告 > その他 > INT_LEN

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yosako
投稿日時: 2011/12/14 15:31
対応状況: −−−
一人前
登録日: 2011/12/3
居住地:
投稿: 101
INT_LEN
パラメータ設定で、INT_LENが9となっていますが、これは、10の間違いではないでしょうか。注文番号に10桁の番号を与えるとエラーになる場合があり、調べたところ、SC_utilの

function sfIsInt($value) {
if (strlen($value) >= 1 && strlen($value) <= INT_LEN && is_numeric($value)) {
return true;
}
return false;
}
でエラーとなります。
nanasess
投稿日時: 2011/12/14 15:54
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: INT_LEN
32bit 符号付き整数は 2147483647 までですので, 10桁(9999999999)まで使用可能とすると, 桁溢れが発生してしまいます.
このため, 9桁に制限しています.

本来なら桁数ではなく, 32bit符号付き整数の範囲でチェックすべきだと思います.
yosako
投稿日時: 2011/12/14 16:18
対応状況: −−−
一人前
登録日: 2011/12/3
居住地:
投稿: 101
Re: INT_LEN
あっ、なるほど。
注文番号に10桁の数値を与えるのはまずい場合がありますね。
$order_id = substr(time(), -9) として問題がないか検証してみます。
ありがとうございました。
yosako
投稿日時: 2011/12/15 10:23
対応状況: −−−
一人前
登録日: 2011/12/3
居住地:
投稿: 101
Re: INT_LEN
sfIsIntは、なぜ

function sfIsInt($value) {
if($value >= 0 && is_int($value)) {
return true;
}else{
return false;
}
}

としないのでしょうか?
不都合がありますか?
ゲスト
投稿日時: 2011/12/15 13:19
対応状況: −−−
Re: INT_LEN
32bitと64bitとで結果が異なるからでしょう。
nanasess
投稿日時: 2011/12/15 14:27
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: INT_LEN
引用:

Ringoさんは書きました:
32bitと64bitとで結果が異なるからでしょう。


付け加えると, is_int() は, 文字列型の数字は false を返してしまいます.
フォームから取得した値など, 文字列型の数字を扱うことも多いため, is_numeric() と桁数を併用しています.

# 本当は, 小数点や, マイナス符号なども許容できるようにしたい...
yosako
投稿日時: 2011/12/16 8:52
対応状況: 解決済
一人前
登録日: 2011/12/3
居住地:
投稿: 101
Re: INT_LEN
nanasessさん、Ringoさん、

ありがとうございます。
sfIsIntを書き換えてそのまま注文番号を10桁にしようと思ったのですが、やはり、問題が多そうなので、9桁にしてテストしてみます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,802名です
総投稿数は109,972件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1289
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.