0

2 つの変数を受け入れる 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>

1 つの変数 ( mp3name) のみが表示されます。助けてください。

4

5 に答える 5

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 に答える
3
header("Location: $playerurl?mp3name=$mymp3& ?titlname=$mytitl");

する必要があります

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

最初のクエリ文字列キーが始まり?、残りは で始まり&ます。

.読みやすくするために、スペースと (concetenation) を追加しました(必須ではありません)。

クエリ文字列に関する情報への Wikipedia リンク

アップデート

@ernieがコメントで指摘したように...http_build_queryこれを行います...そしてパラメータをエンコードします..次のように使用します:

$params = http_build_query(array('mp3name' => $mymp3, 'titlname' => $mytitl), '', '&');
header( "Location: " . $playerurl . "?" . $params);
于 2012-07-25T18:34:08.637 に答える
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 に答える