我有一个文本字段和一个提交按钮,当我点击我要添加到查询字符串的提交按钮时。
例如
http://www.fakewebsite.com/?name=mike
但我的名字显示为空白
这是我的代码
<?php
if($_POST){
echo $_POST['name'];
}else{ ?>
<form action="http://www.fakewebsite.com/test.php?name=<?php $_SERVER['name']; ?>" method="post">
<label for="name">Name</label><input type="text" name="name" id="name" />
<input type="submit" name="submit" id="submit" />
</form>
<?php } ?>
答案 0 :(得分:1)
POST
请求与GET
请求的不同之处在于它们如何向服务器发送数据。
用get将数据元素附加到url(就像你试过的那样)。
使用post将数据元素放在http请求的正文中。
问题1:您正在尝试将参数作为get参数传递。这可行,但不保证。
另一方面,您有一个名为name
的输入字段。因此,即使第一件事可行,输入字段也会覆盖该数据。
<form action="foo.php" method="post">
<input type="hidden" name="other_name" value="<?= $_SERVER['name'] ?>" />
<input type="text" name="name" value="" />
<input type="submit" />
</form>
还要控制名称冲突。
编辑:
刚出现在我身上的第三个问题<? $_SERVER['name'] ?>
无法在$_SERVER['name']
内输出数据。
要做到这一点你应该使用
<?php echo $_SERVER['name'] ?>
// or, works sometimes
<?= $_SERVER['name'] ?>
答案 1 :(得分:0)
替代解决方案
<?php
if(!empty($_POST)){
echo $_POST['name'];
}else{ ?>
<form action="http://www.fakewebsite.com/test.php" method="post">
<label for="name">Name</label><input type="text" value="<?=$_SERVER['name']; ?>" name="name" id="name" />
<input type="submit" name="submit" id="submit" />
</form>
<?php } ?>