Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不要求用户填写表单的情况下将数据从html传递到php_Php_Html_Forms - Fatal编程技术网

在不要求用户填写表单的情况下将数据从html传递到php

在不要求用户填写表单的情况下将数据从html传递到php,php,html,forms,Php,Html,Forms,我对html/php还不熟悉,所以对于这个新手的问题我很抱歉。 我有一个表单中有两个文本字段的第一个HTML页面。 通过单击表单末尾的按钮,我将进入一个PHP页面,在该页面中,我以这种方式检索数据 $id = $_REQUEST['id']; $password = $_REQUEST['password']; 一切都很好。无论如何,在这个PHP中,我嵌入了一些带有按钮的HTML代码 <input type="button" id="fbutton" value="Go Further"

我对html/php还不熟悉,所以对于这个新手的问题我很抱歉。 我有一个表单中有两个文本字段的第一个HTML页面。 通过单击表单末尾的按钮,我将进入一个PHP页面,在该页面中,我以这种方式检索数据

$id = $_REQUEST['id'];
$password = $_REQUEST['password'];
一切都很好。无论如何,在这个PHP中,我嵌入了一些带有按钮的HTML代码

<input type="button" id="fbutton" value="Go Further" onClick="location.href='anotherPage.php'"> <br>


这将导致另一个PHP页面。问题是,我需要将$id传递给最后一个“新”页面(anotherPage.php),因为我将使用它作为查询的条件(sqlwhere)。但是我找不到如何传递这个$id变量。我可以使用表单,但我如何才能在不在屏幕上“打印”任何内容的情况下使用表单呢?

首先,您需要了解GET和POST请求之间的区别

将数据传递到PHP的最简单方法是使用GET变量。它们以?key=value&otherKey=otherValue的形式附加到URL

这对于某些事情来说是很好的,比如页面要显示的帖子的id。对于正在提交(发布)而不是用于标识您请求(获取)的资源的数据,您需要使用POST,因为它不会显示在URL中

您只有可以发送POST数据的表单和AJAX请求

如果您想发布数据,最简单的方法就是使用表单。如果您不想在页面上显示表单字段,那么您可以愉快地创建一个
标记,并包含隐藏的表单输入,这些表单输入不会显示在浏览器中,但可以包含可以传递到PHP中的数据

然而

您需要注意一些基本的安全问题

首先,POST看起来比GET更安全。事实并非如此。伪造帖子数据是很容易做到的,所以你不能依靠它来保持干净


其次,如果在数据库查询中使用这些已发布的变量,则需要确保使用了正确的转义语句或理想的准备语句,以避免SQL注入。

添加a我是否应该像以前使用上述代码一样将其放置在表单中并在新的PHP页面中检索值?是的。您应该创建一个新表单,其中包含隐藏的输入和希望用户按下的按钮(顺便说一句,不要在按钮内部使用onclick=“…”。如果您确实需要它(您不需要),那么可以使用类似jQuery的东西从外部链接它。例如,您可以使用$\u GET参数:onclick=“location.href=”anotherPage.php?id={$id}“@Tularis正在使用onClick,因为此按钮不在代码中!无论如何,我将尝试您提供的这段代码。谢谢:)