为每个提交的表单分配URL

时间:2014-12-31 18:41:16

标签: php html mysql forms

我有表单,当用户提交表单时,信息存储在MySQL数据库中。我想要它,以便当用户提交表单时,它将为该表单提供一个URL,其中包含他们在该表单上提交的信息。我需要为每个提交的表单提供一个唯一的URL。当我转到该URL时,将显示该表单中的信息。我该怎么做?

2 个答案:

答案 0 :(得分:1)

答案&演示

  
     

我已经设置了php demo,因此您可以看到以下代码的作用。

     

(注意:如果您稍后查看此帖子,则演示可能会脱机,因为它是我使用的个人免费网站,可能会断开连接)

     

你可以通过为表中保存的每个表单分配一个id,然后创建另一个.php page来获取你想要的内容,然后创建另一个<form action="process.php" method="post"> Name:<input type="text" name="name"><br> Description:<textarea name="description"></textarea><br> <input type="submit" value="Send"> </form> 来获取id等于x id的表单的表单数据。

所以,假设您使用以下内容保存表单:

  • 名称:Lucas
  • 描述:卢卡斯是个好人。

您还会自动保存:

  • id :21894128947

然后你会通过这个网址获得表单信息:

  

http://www.somewebsite.com/getform.php?id=21894128947

HTML(form.htm)

form

这是一个简单的input,包含两个<?php $servername = "mysqlhost"; $username = "mysqluser"; $password = "mysqlpass"; $dbname = "mysqldatabasename"; $id = rand(0,100000000); $name = $_POST["name"]; $description = $_POST["description"]; $url = "../getform.php?id=".$id; //Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "INSERT INTO someTable (id,name, description) VALUES ('".$id."','".$name."','".$description."')"; if ($conn->query($sql) === TRUE) { echo "<a href='".$url."'>".$url."</a>"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?> 元素和一个提交按钮。您可以将其更改为您需要的任何输入。

PHP(process.php)

$_POST["name"]

我们为表单分配 id (0到1000000000之间的随机数),然后我们从$_POST["description"]变量中获取名称,并且说明 HTML变量。

  

语法为$ _POST [“ n ”],其中 n 是您在echo中指定元素的名称。

然后我们创建一个mysql连接并将值id,name,description推送到表字段id,name,description。

  

语法为“INSERT INTO 字段字段字段)VALUES('','','')“其中是表名,字段< / strong>是表格字段名称,是您要在该字段中推送的值。

然后我们getform.php或打印指向自定义表单网址的链接,该链接将由<?php $servername = "mysqlhost"; $username = "mysqluser"; $password = "mysqlpass"; $dbname = "mysqldatabasename"; $id = $_GET["id"]; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM someTable WHERE id = $id"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "id: " .$row["id"]. "<br>"; echo "name: ".$row["name"]."<br>"; echo "description: ".$row["description"]."<br>"; } } else { echo "No results with that id"; } $conn->close(); ?> 文件处理。

SQL TABLE(在phpMyAdmin中)

SQL Table (in phpMyAdmin)

以下是sql表在我的服务器的phpMyAdmin中的样子。 (您应该创建此表以便代码工作)

PHP(getform.php)

$_GET["id"]

我们连接到数据库,我们从get method变量得到 id ,这几乎与$ _POST变量完全相同,但在form中使用get request {1}}。

然后我们选择包含我们通过id过滤表单数据的特定行,其语法是:

  

“SELECT * FROM WHERE id = id ”其中是表名,而id是{中提供的ID {1}}。

然后,我们通过Connection->query(sql)获取查询结果,其中 sql 是实际查询。

然后我们检查选择的行数是否大于0,然后我们使用while($row = $result->fetch_assoc())遍历每一行,其中 $ row 是一个包含表的每个字段的数组,它的价值。

最后,我们使用以下语法来获取字段的值:

  

$行[ “字段”]

其中字段是字段名称。


希望这有助于男人,对不起,如果我没有得到你想做的事情:)

答案 1 :(得分:0)

我用一个例子解释你需要的东西:

假设表单提交有关文章的信息(您还需要数据库中的文章表),因此每次用户提交表单时,文章表中的新行都会插入唯一ID。

然后为了展示这篇文章(这是你想要的问题:提交的每个表单的唯一URL)使用这样的URL:showArticle.php?id =(pu article id here)