2013-03-13 35 views
3

我已經成功實現了使用PHP mysql_insert_id頭,位置方法從一個頁面到另一個頁面的數據傳輸嘗試。我所做的是:將腳本從PHP轉換爲mysql_insert_id頭,定位方法爲PHP會話方法

我已驗證它(將表單轉移(即表單操作)到同一頁面),我已將它保存在數據庫中,現在我試圖在其他頁面上顯示數據。

第1頁(其中原來的形式位於)

$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 
} 

我所面臨的問題:

我m到處在標題欄此鏈接

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

感謝您的幫助

+0

會話還可以被修改,仍然不安全。但問題是:爲什麼不想讓用戶通過更改ID來訪問其他內容?僅對某些用戶專用嗎? – Alvaro 2013-03-13 09:53:54

+1

您正在尋找一個正確的**身份驗證**和**權限**系統,而不是以各種方式隱藏身份證。如果用戶不被允許查看內容,*拒絕*請求。 – deceze 2013-03-13 09:56:05

+0

@Steve這個數據與一個表單相關..表單的值我保存到數據庫,它將在稍後階段支付,所以如果用戶更改了ID,所以這些值將會改變,用戶可能會支付更少,並獲得更重要的是,對於我來說,使用paypal進行交叉檢查將會很乏味 – aks 2013-03-13 09:57:29

回答

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 
    } 
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"; 
?>