エンド ユーザーの出身地に基づいてカスタマイズできる Web アプリケーションを設計しています。たとえば、ユーザーが Farmer's Market というストアからアクセスしている場合、その特定のストアに固有の、そのユーザーが利用できるカスタマイズされたコンテンツまたは追加のリンクが存在する可能性があります。file_exists() は、インポートする必要があるページのカスタマイズされた部分があるかどうかを判断するために使用されます。
これまで、アイテム ID 番号とストアが GET パラメーターとして渡されるだけで、ページ内の各リンクにそれらを適用することをシステムが認識しているという、比較的安全でない方法を使用してきました。ただし、ストアとアイテム番号が暗号化され (「gd651hd8h41dg0h81」のように見える)、可逆ハッシュ方式に切り替えており、ページは単純にそれらをデコードして、ストアと ID 変数を割り当てます。
しかし、それ以来、Google で検索しても答えが見つからないというエラーが発生しました。似たようなコード ブロックがいくつかありますが、それらはすべて次のようになります。
$buttons_first = "../stores/" . $store . "/buttons_first.php";
if(file_exists($buttons_first))
{
include($buttons_first);
}
(/stores/ ディレクトリは、実際には作業ディレクトリの上のディレクトリにあるため、../)
かなり簡単です。ただし、通常の ID とストアが渡された場合は問題なく動作しますが、暗号化された ID を使用すると、同様のステートメントごとに次のエラーがスローされます。
警告: file_exists() は、パラメーター 1 が有効なパスであると想定しています。11 行目の [URL が削除されました] で指定された文字列です。
スクリプトに完全な URL を吐き出させたところ、$store が正しく割り当てられているようです。1&1 ホスティングで PHP 5.4.11 を実行しています (サーバーの動作に何らかの異常があることがわかっているため)。