将脚本从PHP mysql\u insert\u id头、位置方法转换为PHP会话方法

将脚本从PHP mysql\u insert\u id头、位置方法转换为PHP会话方法,php,session,session-variables,Php,Session,Session Variables,我已经成功地使用PHP mysql_insert_id头location方法实现了从一个页面到另一个页面的数据传输尝试。我所做的是: 我已经对其进行了验证(将表单传输(即表单操作)到同一页面),我已经将其保存在数据库中,现在我正在尝试在另一个页面上显示数据 第1页(原始表格所在位置) 在第2页 $id = $_GET['id']; $query = "SELECT * FROM form1 WHERE id=$id"; { // there after display of data }

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

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

第1页(原始表格所在位置)

在第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?
}

你必须解释你到底想做什么?以便我们能提出建议。尽管下面的代码可以很好地工作。但是我认为它没有用。在使用会话之前先使用会话

第1页:

$id =  mysql_insert_id();
$_SESSION['last_id'] = $id;
header('Location: page2.php');
第2页: $id=$\u会话['last\u id']

 $query  = "SELECT * FROM form1 WHERE id=$id";
  {
// there after display of data
  } 
page1.php:

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


会话也可以修改,但仍然不安全。但问题是:为什么不允许用户通过更改ID来访问其他内容?它只对某些用户是私有的吗?您正在寻找一个合适的身份验证和权限系统,而不是以各种方式隐藏id。如果不允许用户查看某些内容,请拒绝该请求。@Steve此数据与表单相关。。我正在将表单的值保存到db中,并将在稍后阶段支付,因此如果用户更改id,则值将发生更改,用户可能会支付更少的钱并获得更多的钱,而且对于我来说,使用
get
交叉检查表单中的paypalPassing变量在这种情况下没有意义。。。无论如何,也可以使用
POST
修改表单输入。。。如果你谈论的是钱,那么你应该看看一些安全的程序。
<form action="post" action="page2.php">
       <input name="name" type="hidden" value="<?=mysql_insert_id();?>"></input>
</form>
<?php
  $id = $_POST['name'];
  $query  = "SELECT * FROM form1 WHERE id=$id";
?>