0

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 として扱われるように設定されています。

それが動作する方法は、ある種のサイズ制限またはマジッククォートの問題が原因でオーディオパラメータがドロップされると私に思わせます。しかし、私にはわかりません。

4

1 に答える 1