昨日、 http: //forge.prestashop.com/browse/PSCFI-6967でprestashopコミュニティのバグを報告しました。誰かが私にそれの修正を提案しますか?
質問する
672 次
1 に答える
0
あなたはマイナー バージョンを投稿していないので、最初と最後のマイナー バージョンを取得し、それらを比較しました (正確には Customer.php クラス)。
これは1.4.0.1です:
static public function customerExists($email, $return_id = false)
{
if (!Validate::isEmail($email))
die (Tools::displayError());
$result = Db::getInstance()->getRow('
SELECT `id_customer`
FROM `'._DB_PREFIX_.'customer`
WHERE `email` = \''.pSQL($email).'\'');
if ($return_id)
return intval($result['id_customer']);
else
return isset($result['id_customer']);
}
そして、これは1.4.8.3です:
public static function customerExists($email, $return_id = false, $ignoreGuest = true)
{
if (!Validate::isEmail($email))
die (Tools::displayError());
$result = Db::getInstance()->getRow('
SELECT `id_customer`
FROM `'._DB_PREFIX_.'customer`
WHERE `email` = \''.pSQL($email).'\''
.($ignoreGuest ? 'AND `is_guest` = 0' : ''));
if ($return_id)
return (int)($result['id_customer']);
else
return isset($result['id_customer']);
}
問題は、これら 2 つの中間で、より低いものに近いものを使用しているということです。
ご覧のとおり、後者には別のオプション パラメータ $ignoreGuest があり、デフォルトは true です。したがって、すべての検証がバイパスされます。
次の 2 つのいずれかを実行できます。
- 1.5 と互換性のないコンポーネントがある場合は、最新バージョンの 1.4 (http://code.google.com/p/prestashop/downloads/detail?name=prestashop_1.4.8.3.zip&can=2&q=) にアップグレードしてください。そうである場合は、最新のものに進んでください。
- 一方、迅速で汚い修正が必要な場合は、Customer クラスの関数をこの回答の 2 番目のものに変更してください。
于 2013-01-16T22:55:40.730 に答える