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

单引号不会插入变量,要么使用双引号,要么使用字符串连接......三个选项:

    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 回答