バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > 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
居住地: 宝塚
投稿: 1967
Re: INT_LEN
32bit 符号付き整数は 2147483647 までですので, 10桁(9999999999)まで使用可能とすると, 桁溢れが発生してしまいます.
このため, 9桁に制限しています.

本来なら桁数ではなく, 32bit符号付き整数の範囲でチェックすべきだと思います.


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

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
居住地: 宝塚
投稿: 1967
Re: INT_LEN
引用:

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


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

# 本当は, 小数点や, マイナス符号なども許容できるようにしたい...


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

yosako
投稿日時: 2011/12/16 8:52
対応状況: 解決済
一人前
登録日: 2011/12/3
居住地:
投稿: 101
Re: INT_LEN
nanasessさん、Ringoさん、

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


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,414名です
総投稿数は93,180件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1967
4
468
1818
5
yuh
1602
6
red
1342
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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