使用表单输入来使用php构建url。

时间:2012-04-16 21:59:55

标签: php forms

我正在尝试创建一个用户可以输入其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变量。我做错了什么?

3 个答案:

答案 0 :(得分:5)

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

单引号字符串不会插入变量。

答案 1 :(得分: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;

答案 2 :(得分:1)

这一行:

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

应该是

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

如果你在PHP中使用带有字符串的单引号,它将打印字符串中的任何内容而不评估任何内容(即不评估任何变量)。所以你可以使用双引号或像我上面那样附加变量。