从HTML表单获取ID - PHP

5
我有一个 HTML 表单,用于获取访问者的 ID。
<form action="show.php" method="post">
 <p>Your id: <input type="text" name="id" /></p>
 <p><input type="submit" /></p>
</form>

并且需要用PHP文件来实现这个。

<?php
$id = ((int)$_GET["id"]);
$con=mysql_connect('localhost','user','pass');
mysql_select_db('dbname',$con);
$query="SELECT * FROM `users` WHERE id = '$id'";
$select=mysql_query($query);
while($row=mysql_fetch_array($select)){
echo $row['name'];
}
mysql_close($con);

?>

但是它没有起作用,无法读取ID,请帮助我解决这个问题。

谢谢。


1
使用 $_POST$_REQUEST 来收集通过 post 方法发送的表单数据。 - Amit Verma
1
@CodingHorror:使用 $_REQUEST 永远不是一个好习惯,因为当你没有足够的小心只有一次时,它会创建不必要的安全漏洞。你最好总是使用明确的 $_POST 或 $_GET 来获取你期望从提交数据源中获得的数据。 - serjoscha
谢谢您提供完整的信息,问题已经解决。那是我的疯狂错误 :D - Achilles
4个回答

8
您正在通过 POST 提交数据。这是通过您表单标签内的 "method" 属性来定义的:
<form action="show.php" method="post">

因此数据不会存储在$_GET,而是存储在$_POST中。

因此要访问ID,请使用$_POST['id']而不是$_GET['id']。


4

由于您使用的是表单方法“post”,因此ID变量将在全局$_POST数组中可用,因此请使用:

<?php
$id = ((int)$_POST["id"]);
....

3

使用POST而不是Get,因为表单需要使用set post方法。

$id = ((int)$_POST["id"]);

2
您的表单正在通过POST提交数据,因此您必须通过POST方法接受它。
<?php
   $id = $_POST['id'];
?>

否则将方法更改为GET,并按如下方式编写。
$id = ((int)$_GET["id"]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接