こんにちは、なかわけです。
今日もEC-CUBEの話。
商品登録の際、管理ページからは#を含むURLが登録できるのに商品登録CSVから登録すると、「メーカURLを正しく入力してください」というようなエラーが表示されてしまいます。
これは、EC-CUBEのURL_CHECKメソッドが甘い(逆に厳しいのか?)ため、ページ内アンカーの#nameをURLとしてみなしてないためです。対処法は以下のようにすればOKでした。
/data/class/SC_CheckError.phpの539行目あたりにURL_CHECKメソッドがあるので、
if( strlen($this->arrParam[$value[1]]) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9_~=:&\?\.\/-])+$", $this->arrParam[$value[1]] ) ) {
を
if( strlen($this->arrParam[$value[1]]) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9#_~=:&\?\.\/-])+$", $this->arrParam[$value[1]] ) ) {
に変更。
正規表現の中に#(シャープ)を含めるだけです。
Tags: EC-CUBE