2012-01-09 136 views
1

我在將一個變量從一個PHP文件傳遞到另一個PHP文件時遇到問題。我試圖將varialbe $ insert發送到另一個只顯示它的PHP文件。對於我的生活,我無法弄清楚爲什麼它不起作用。

任何幫助將是偉大的!謝謝。

1 PHP文件(發送$插入到$ _SESSION [ 'finalimage'])

<?php 

session_start(); 
$insert = rand(5, 1500); 
$_SESSION['finalimage'] = $insert; 

header("Location: http://www.shmoggo.com/snapshot/snapshot_view.php"); 

echo base64_decode($_POST["image"]); 

$final = base64_decode($_POST["image"]); 


$newpath = "uploads/" . $insert . ".jpg"; 
file_put_contents($newpath, $final); 

?> 

第二PHP文件

<?php 

session_start(); 
$insert = $_SESSION['finalimage']; 
echo "Image Number = ". $insert; 

?> 
+3

你是什麼意思的「不會工作」,究竟是什麼? – 2012-01-09 21:48:06

+1

發生了什麼或沒有發生什麼? – 2012-01-09 21:48:07

+4

這兩個頁面都在同一個域上嗎? – 2012-01-09 21:48:18

回答

1

(由$ _SESSION [ 'finalimage']接收$插入)首先要檢查的是您的PHP安裝如何支持會話。有兩種可能的方法爲「持續」的請求之間的會話ID:

1)使用cookie或使用 2)「URL重寫」(即每個URL傳遞一個的sessionid值)

如果使用餅乾請檢查您的服務器是否實際上向您的瀏覽器發送了一個cookie。

如果您使用的是URL重寫,您將發送的將客戶端瀏覽器重新路由到「snapshot_view.php」的位置標題將需要修改以包含會話標識。像這樣:

$reroute = 'Location: http://www.shmoggo.com/snapshot/snapshot_view.php?PHPSESSID=' . session_id(); 
header($reroute); 
+0

這是我需要的,謝謝。 FireFox沒有啓用cookie以允許cookie方法工作。我無法弄清楚如何使用你給我的這個代碼來用cookies來做同樣的事情......任何明智的詞彙? – Aaron 2012-01-09 22:59:55

+0

嗨亞倫 - 如果您使用cookie來在瀏覽器中保留會話ID,那麼上面的代碼就不必要了,因爲Cookie會隨着每個請求自動發送。 URL重寫不依賴於Cookie支持,但它意味着每個URL都必須包含PHPSESSID值--PHP會自動爲您提供**大部分**,但是在發送「位置」標題時,您必須手動執行此操作。 PS在你原來的代碼你應該移到「頁眉()」調用的代碼的結束,以避免之前的圖像文件已經提交到磁盤找回的請求。 – 2012-01-09 23:05:37

+0

謝謝你的幫助! – Aaron 2012-01-10 01:17:56

相關問題