2013-12-21 41 views
1

我正在處理一個必須處理預留號碼的網站,我需要將變量傳遞給確認頁面。目前,當你在confirmation.php到達的URL看起來像下面:在URL中隱藏PHP變量,URL重寫

http://localhost/confirmation.php?reservation_id=1&proceed=no 

這些變量是通過鏈接從索引頁發送到該頁面。我需要一種方法要麼加密$reservation_id或重寫我的網址,所以它看起來像這樣

http://localhost/confirmation.php 

...但仍然可以訪問我的變量。我嘗試過會話和一些加密方法,但無法找到任何不希望使頁面變得複雜的事情,因爲我試圖儘可能簡化頁面。具有隱藏字段的表單不是一個選項,我打印所有的保留鏈接與數據庫中的循環。

謝謝!

+0

你想做一些複雜的事情,但你不想過度複雜的頁面? – Barmar

+0

爲什麼你需要加密這些東西? –

+0

將它們放入會話中。這些值只能在服務器端使用。發送到瀏覽器的唯一內容是對會話的引用。 –

回答

1

使用會話變量。創建一個隨機會話變量名,及保留信息分配給它:

foreach ($reservations as $r) { 
    $random = make_random_string(); // You need to write this function 
    $_SESSION[$random] = $r; 
    echo "<a href='reservation.php?id=$random'>...</a>"; 
} 

然後reservation.php可以看一下$_SESSION[$_GET['id']]拿到預約信息。

+0

+1爲隨機變量名稱。我喜歡! – TecBrat

0

聽起來你需要開始一個會話並傳遞數據。或者,您可以改爲發佈數據(使用表單)。但會議可能是更好的選擇。

+0

他說表單不是一個選項,它聽起來像是一個鏈接表。就像在Expedia上列出所有行程一樣。 – Barmar

+0

@Barmar我不知道那是否在那裏,我沒有看到它,或者它是否在編輯中添加。無論哪種方式,聽起來像會議是正確的選擇。 – TecBrat