2016-09-21 85 views
0

我知道有很多相同題目的問題。 我讀了最多的,但我不知道什麼是錯的。php會話不起作用

我有兩個php文件,每個都在不同的域。

我嘗試將$_SESSION值從一個域中的index.php頁傳遞到另一個域中的get.php頁,但沒有成功。

Whet在get.php文件中回顯$Referal var我得不到結果。

的index.php

<?php 
session_start(); 

$_SESSION['origURL'] = $_SERVER['HTTP_REFERER']; 
echo $_SESSION['origURL']; 
include 'functions.php'; 

?> 

get.php

<?php 
session_start(); 

require_once 'inc.php'; 
$Referal = $_SESSION['origURL']; 
echo $Referal; 

?> 

inc.php

<?php 
session_start(); 

date_default_timezone_set("Asia/Jerusalem"); 

require_once 'config.php'; 
require_once 'userclass.php'; 
require_once 'leedclass.php'; 
require_once 'sessionclass.php'; 

?> 

什麼可能是問題嗎?

+3

如果域名是不同的Web服務器,您不能共享會話通過會話變量?一種方法是將它們保存在中央數據庫中,然後通過代碼訪問。 – SanketR

+2

您需要在php.ini文件中指定會話保存路徑,這兩個域對於域 –

+1

O.K都應該相同,太好了,我不知道會話不能通過不同的域。謝謝! – DavSev

回答

0

可以有多個reason- 1.檢查,如果會話保存路徑是可寫的 2.此外,檢查這兩個文件是同一臺服務器上,會話不會不同的服務器上運行,同時檢查如果您的域名是' www'或沒有'www',這也影響會話。

-1

您可以使用header() 像這樣 header("Location:your_url?".session_name()."=".session_id());

+0

這可能會啓用會話劫持... – DarkBee

+0

是的,你是絕對正確的,但在這種情況下,加密將幫助你... –

+0

你可以加密會話變量,然後在URL中傳遞它們.. –