我有一个基于web,php,DB系统使用mysql。用户登录,在表格中输入数据,点击提交,输入数据,可以阅读,分析,报告等等。
现在我们有一个数据提供者想要通过链接将数据发送到mysql数据库,从未登录到系统的源向DB提交外部提交
“我们如何向客户提供数据的最常见方式是将数据发布到您的系统。为了做到这一点,我需要一个URL来发布数据以及 必填字段名称。“
我不确定这意味着什么。
http://mysite.com/data.php?first_name=bob&last_name=smith // ??
如何在上面的例子中设置data.php,这样数据提供者可以通过链接输入而不必发布到表单中?
通常,我有一个像这样的html表单,在我们称之为form1.php的页面上:
<html><body>
<form method="POST" NAME="form1" action="data.php">
<input type='text' name='first_name'>
<input type='text' name='last_name'>
<input type=submit value="Submit">
</form>
</body></html>
data.php看起来像这样:
<?
include("dbinfo.inc.php"); // has the access info for the DB, how to connect
$first_name = mysql_real_escape_string($_POST['first_name']);
$last_name = mysql_real_escape_string($_POST['last_name']);
$query = "INSERT INTO table1 (first_name, last_name) VALUES ('$first_name','$last_name')";
mysql_query($query);
mysql_close();
?>
<html>
<head>
<meta HTTP-EQUIV="REFRESH" content="0; url=form1.php">
</head>
</html>
但在此示例中,用户必须登录并发布到表单。用户使用相关数据生成链接的方式是什么,并通过data.php提交,不是从表单提交,而是直接从链接提交?
TIA
答案 0 :(得分:1)
GET
方法将数据发送到链接中。你的应该看起来像这样:
<form method="GET" NAME="form1" action="data.php">
<input type='text' name='first_name'>
<input type='text' name='last_name'>
<input type=submit value="Submit">
</form>
这会将浏览器发送到http://mysite.com/data.php?first_name=bob&last_name=smith
在PHP中,您可以使用$lastname=$_GET['last_name'];
来获取这些变量
因此,您只需要更改data.php中表单中数据的方法:
<?
include("dbinfo.inc.php"); // has the access info for the DB, how to connect
$first_name = mysql_real_escape_string($_GET['first_name']);
$last_name = mysql_real_escape_string($_GET['last_name']);
$query = "INSERT INTO table1 (first_name, last_name) VALUES ('$first_name','$last_name')";
mysql_query($query);
mysql_close();
?>
<html>
<head>
<meta HTTP-EQUIV="REFRESH" content="0; url=form1.php">
</head>
</html>
答案 1 :(得分:0)
您可以了解网络服务,REST可以了解这一点。
要保留给定的数据,您应该通过POST请求而不是GET请求(或PUT,如果它是更新)来执行此操作。
客户端将仅使用您的URI并发出POST或PUT请求来保留或更新数据,并发出GET请求以获取数据,并使用DELETE删除数据。