0

ユーザーが自分のID(ユーザー名)を入力できるフォームを作成しようとしています。このフォームは、phpスクリプトで使用されるURLに変数として追加されます。これは私が持っているものです。

<?php
if(isset($_POST['submit']))
{
    $id = $_POST['id'];
    echo 'http://example.com/default.asp?action=data&id=$id';
}
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
   <input type="text" name="id"><br>
   <input type="submit" name="submit" value="Submit Form"><br>
</form> 

ユーザーのIDを適切に収集し、$ idをエコーするだけで適切な値を出力しますが、URLをエコーし​​ようとすると、$id変数の実際の値ではなく$idを出力するだけです。私は何が間違っているのですか?

4

3 に答える 3

5
echo "http://example.com/default.asp?action=data&id=$id";
     ^---wrong quotes                                  ^--- ditto

一重引用符で囲まれた文字列は変数を補間しません。

于 2012-04-16T22:00:51.297 に答える
1

一重引用符は変数を補間しません。二重引用符を使用するか、文字列連結を使用します。3つのオプション:

    echo "http://example.com/default.asp?action=data&id=".$id;

また

    echo "http://example.com/default.asp?action=data&id=$id";

また

    echo 'http://example.com/default.asp?action=data&id='.$id;
于 2012-04-16T22:02:57.360 に答える
1

この行:

echo 'http://example.com/default.asp?action=data&id=$id';

する必要があります

echo 'http://example.com/default.asp?action=data&id='.$id;

PHPで文字列を使用して一重引用符を使用している場合、文字列内にあるものは何も評価せずに出力されます(つまり、変数は評価されません)。したがって、二重引用符を使用するか、上記のように変数を追加することができます。

于 2012-04-16T22:03:42.803 に答える