wordpress プラグインの問題をデバッグしようとしています。
次のような html を作成します。
<audio src="http://mydomain.com/wordpress/wp-content/plugins/the-stiz-audio-for-woocommerce/server/preview.mp3?nonce=e38553d840&audio=4mgvi4h3Jg5qD_Vj5Qj5Kp9V3WxcfxSqhZ71zoEfqGPM3xQL-KqT7fsCoywEk3_VmJSZpMnCa5FNYB_H_50Uwuvy6G8iDgNbMP2ezlV3moj8T0mUkoj7R5tcegYlyRAu3cNTZvTkza4A0P7_g2AhhvQ60FwFAvGZ9jjy9iPJIdU"
class="wcjd-audio-individual" type="audio/mpeg">
</audio>
preview.mp3 は実際には php スクリプトです。
「ノンス」パラメータはスクリプトに問題ありませんが、「オーディオ」は設定されていますが空です。なんらかの理由で剥がれているはずですが、理由はわかりません。
編集:
これまでの回答に感謝します...
非常に単純なので、最初はphpコードを含めませんでしたが、次のものが必要です。
/**
* @file Instantiate a WCJDServerAudio instance and allow it handle the request.
*/
define('WCJD_ROOT', realpath(dirname(__FILE__).'/../'));
include_once WCJD_ROOT.'/../../../wp-config.php';
include_once WCJD_ROOT.'/include.php';
$fp = fopen("../../log.txt", "w");
fwrite($fp, "nonce: ".$_GET['nonce']."\n");
fwrite($fp, "audio: ".$_GET['audio']);
fclose($fp);
// The code above results in a file with
// nonce: a90c436753
// audio:
$server = new WCJDServeAudio($_GET);
// Determine whether this is a valid request
if ($server->validRequest()) {
$server->output();
die();
} else {
header('HTTP/1.1 403 Forbidden');
include WCJD_ROOT.'/views/error/403.php';
}
このスクリプトをブラウザで単純に実行すると、「オーディオ」パラメータが表示されますが、「オーディオ」タグ内からスクリプトとして実行すると、オーディオ パラメータが削除されます。
$_GET の内容をログ ファイルに書き込む「$server =」部分の前にいくつかのコードを追加して、後者の場合に確認できるようにしました。「nonce」のみが設定されています。
.htaccess は、.mp3 拡張子がそのディレクトリで .php として扱われるように設定されています。
それが動作する方法は、ある種のサイズ制限またはマジッククォートの問題が原因でオーディオパラメータがドロップされると私に思わせます。しかし、私にはわかりません。