0

我有一个接受两个变量的 PHP 页面

<?php 
    $formurl = "listen.html" ;
    $playerurl = "player.php" ;

    $mymp3 =  $_POST["mp3name"]; 
    $mytitl = $_POST["titlname"]; 

    /* echo "MP3 Name: ".$mymp3."<br>" ;
    echo "Chapter Name: ".$mytitl;  */
    header( "Location: $playerurl?mp3name=$mymp3& ?titlname=$mytitl");
    exit ;
?>

但是当我打开 player.php 时,

<table width="519" border="0" align="center">
    <tr>
        <?php
            $mymp3=$ _GET[ "mp3name"];
            $mytitl=$ _GET[ "titlname"];
        ?>
        <td width="513" height="63" class="TopNav" align="center">You are listening to
            <?php echo $mytitl; ?>
        </td>
    </tr>
    <tr>
        <td align="center">
            <audio autoplay controls preload="auto">
                <source src="/MP3s/<?php echo $mymp3; ?>.ogg" type="audio/ogg" />
                <source src="/MP3s/<?php echo $mymp3; ?>.mp3" />Your browser does not support the audio tag.</audio>
        </td>
    </tr>
    <tr>
        <td>&nbsp;</td>
    </tr>

仅显示一个变量 ( mp3name)。请帮忙。

4

5 回答 5

3
header("Location: $playerurl?mp3name=$mymp3& ?titlname=$mytitl");

应该

header("Location: " . $playerurl . "?mp3name=" . $mymp3 . "&titlname=" . $mytitl);

第一个查询字符串键开始?,其余的以&.

我添加了空格和.(contenation)以使其更易于阅读(不是必需的)

维基百科链接到有关查询字符串的信息

更新

正如@ernie 在评论中指出的那样......http_build_query为你做这个......并对参数进行编码......你像这样使用它:

$params = http_build_query(array('mp3name' => $mymp3, 'titlname' => $mytitl), '', '&');
header( "Location: " . $playerurl . "?" . $params);
于 2012-07-25T18:34:08.637 回答
3

您的 GET 字符串需要更正,即:

header( "Location: $playerurl?mp3name=$mymp3&titlname=$mytitl");

如果您使用http_build_query来避免此类错误,可能会更好。http_build_query 将处理参数的所有格式(即名称、键值生成和分隔符),因此只要您有一个有效的数组,您就会得到一个有效的查询字符串,例如:

$getString = http_build_query(array ( 'mp3name'=>$mymp3, 
                                      'titlname'=>$mytitl));
header( "Location: $playerurl?$getString);

您还可以使用 FireBug 中的控制台视图(或 Chrome 和 IE 中的类似工具)来帮助您自行调试,因为它们可以让您查看正在发送/接收的实际数据。

于 2012-07-25T18:37:15.603 回答
0
header( "Location: $playerurl?mp3name=$mymp3& ?titlname=$mytitl");

应该:

header( "Location: $playerurl?mp3name=$mymp3&titlname=$mytitl");

变量未titlname正确传递。

于 2012-07-25T18:34:06.820 回答
0

你有错误的标题。用 ? 取出空间?它应该是

header( "Location: $playerurl?mp3name=$mymp3&titlname=$mytitl");
于 2012-07-25T18:34:17.787 回答
0

尝试以下方法:

urlencode("$playerurl?mp3name=$mymp3&titlname=$mytitl")
于 2012-07-25T19:04:17.690 回答