$ _GET参数在php中没有通过

时间:2013-08-31 04:04:17

标签: php wordpress audio

我正在尝试用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脚本。

'nonce'参数使其进入脚本ok,但'audio'为空,尽管已设置。它必须因某种原因被剥离,但我不知道为什么。

编辑:

感谢目前为止的回复......

我最初没有包含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';
}

如果我只是在浏览器中运行此脚本,它就能看到'audio'参数,但当它从'audio'标签内部作为脚本运行时,音频参数被剥离。

我在'$ server ='部分之前添加了一些代码,它将$ _GET的内容写入日志文件,所以我可以在后一种情况下看到 - 并且只设置'nonce'。

.htaccess确实设置为确保.mp3扩展名被视为该目录中的.php。

它的行为方式让我觉得存在某种大小限制或魔术引号问题导致它放弃音频参数。但我不知道。

1 个答案:

答案 0 :(得分:1)

似乎它的工作应该如此。除非您发布PHP代码,否则我们无法帮助您。

这很适用于我的localhost。

<?php
echo $_GET['nonce'];
echo "<br>";
echo $_GET['audio'];

<强>输出:

enter image description here