3

我已经使用 PHP mysql_insert_id 标头位置方法成功实现了从一个页面到另一个页面的数据传输尝试。我所做的是:

我已经验证了它(将表单传输(即表单操作)到同一页面),我已经将它保存在数据库中,现在我正试图在另一个页面上显示数据。

page1(原始表格所在的位置)

$id =  mysql_insert_id();
header('Location: page2.php?id='.$id);

并在第 2 页

$id = $_GET['id'];
$query  = "SELECT * FROM form1 WHERE id=$id";
{
 // there after display of data
}

我面临的问题:

我在标题栏中得到这个链接

http://localhost/aaa/page2.php?id=76

现在,如果我尝试更改 id= 56 或 45 或任何其他值,它会将显示的数据更改为该 id .. 所以任何用户都可以在地址栏中更改它,因此将能够看到我的 db 值..

我首先考虑对其进行编码,然后在第二位我想将其更改为会话。

所以我在谷歌上搜索了很多以将其设置为会话,我尝试了这个

<?php 
// Starting the session 
session_start();

if(isset($_SESSION['id'])) //and is this use of id correct?
{ // then what?
}

谢谢大家帮助

4

2 回答 2

2

你必须解释你到底想做什么?以便我们提出建议。虽然下面的代码可以正常工作。但我认为没有用。在使用会话之前使用 session_start。

第 1 页:

$id =  mysql_insert_id();
$_SESSION['last_id'] = $id;
header('Location: page2.php');

第 2 页:$id = $_SESSION['last_id'];

 $query  = "SELECT * FROM form1 WHERE id=$id";
  {
// there after display of data
  } 
于 2013-03-13T10:03:30.193 回答
0

page1.php:

<form action="post" action="page2.php">
       <input name="name" type="hidden" value="<?=mysql_insert_id();?>"></input>
</form>

page2.php:

<?php
  $id = $_POST['name'];
  $query  = "SELECT * FROM form1 WHERE id=$id";
?>
于 2013-03-13T10:17:04.517 回答