Php 这在代码$id=$\u GET[';id';]中是做什么的;?

Php 这在代码$id=$\u GET[';id';]中是做什么的;?,php,mysql,Php,Mysql,我正在尝试学习php,我从一个简单的CRUD项目开始。我基本上已经下载了一些源代码,我只是在努力完成它。当我进入CRUD项目的删除部分时,我遇到了以下代码: include 'connect.php'; $id = $_GET['id']; // what does this line do? $table = 'book'; $query = "DELETE FROM $table WHERE id_book=$id"; $result = mysqli_query($connect, $qu

我正在尝试学习php,我从一个简单的CRUD项目开始。我基本上已经下载了一些源代码,我只是在努力完成它。当我进入CRUD项目的删除部分时,我遇到了以下代码:

include 'connect.php';
$id = $_GET['id']; // what does this line do?
$table = 'book';
$query = "DELETE FROM $table WHERE id_book=$id";
$result = mysqli_query($connect, $query) or die(mysqli_error($connect));
header('location: index.php');
我真的被这句话弄糊涂了:

$id = $_GET['id'];
当我在谷歌上搜索时,我发现的唯一一件事就是类似代码的简短描述,上面写着“从url获取id”。这对我来说毫无意义。有人能解释一下这行的实际作用以及$id变量中存储了什么吗

提前感谢您的帮助

如果您的url为

Id是$_GET['Id']

看看:

但这不是最好的方式。。。看:

您的代码需要验证$id(外观:)


对于db,使用PDO()

$\u GET['id']
引用的是URL参数。以下是一个例子:

给定上面的URL,您可以使用
$\u get['id']
$\u get['name']
$\u get['city']
获取URL参数
id
name
$\u get['city']


此外,如注释中所述,您的行
$query=“从$table中删除,其中id\u book=$id”不安全。看看准备好的语句。

您有两个基本的调用,可以从浏览器调用这个php脚本。您可以使用“GET”或“POST”$_GET将变量作为键值对传递给php脚本。例如,如果您执行了如下get请求:,那么$\u get将有两个键:usermail和id。$\u get[“id”]的值为1275,并且在php脚本中,这将插入SQL语句中

你见过这样的url吗http://www.example.com/index.php?id=123
?在这种情况下,它使您的代码SQL可注入。它从如下URL读取
42
file.php?id=42
。但是,没有执行任何验证,因此有人可以注入任何东西。昨天看到类似的问题。可惜你们不是邻居。看看事先准备好的声明。虽然与您的问题无关,但此代码可以很容易地删除您的所有书籍。是的,在担心安全性之前,我只是想了解一切是如何工作的。我理解其重要性,但是此项目除了在我的计算机上之外什么都做不了。他们正在这里寻找解释。
$HTTP\u get\u VARS[不推荐]
not$\u GET。根据你自己的链接。你不是自己读的吗?如果$\u GET曾经被弃用过,他们会是一些相当愤怒的程序员,包括我自己。那么请编辑你的答案,它是不正确的,并且对OP和未来读者的答案具有误导性。编辑:谢谢。是的,这是wierd,因为在我的源代码中,表单是随POST一起发送的,所以我认为这意味着url中没有任何内容,所以这行对我来说没有意义。但是如果表单操作是
action='file.php?id=11'
,那么使用POST表单请求也可以包含GET参数是有意义的。基本上,GET参数是URL中的所有参数。
$id = $_GET['id'];