将多个变量传递给PHP

时间:2012-07-25 18:31:24

标签: php var

我有一个接受两个变量的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)。请帮忙。

5 个答案:

答案 0 :(得分:4)

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

应该是

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

第一个查询字符串键以?开头,其余字符以&开头。

我添加了空格和.(让步)以便于阅读(不需要)

Wikipedia link to info about the query string

<强>更新

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

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

答案 1 :(得分: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中的类似工具)自行调试,因为它们可以让您查看发送/接收的实际数据。

答案 2 :(得分:0)

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

应该是:

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

titlname变量未正确传递。

答案 3 :(得分:0)

您的标题有误。拿出空间?它应该是

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

答案 4 :(得分:0)

尝试以下方法:

urlencode("$playerurl?mp3name=$mymp3&titlname=$mytitl")