2015-10-01 96 views
0

如果一個人登錄到網站(網站)及本網站的創建會話變量,可能其他網站(網站B)作出一個PHP程序捲曲呼叫網站會發送回網站B一個json變量與網站A的會話變量?是否可以通過cURL跨域發送PHP會話變量?

如果是這樣,我該怎麼做到這一點?

這是我心目中的情景:

  1. 用戶訪問網站在一個和日誌這網站B
  2. 創建會話變量在同一個瀏覽器會話,用戶訪問網站B
  3. 網站B使得一個特定的常規捲曲呼叫網站是否存在會話變量驗證,如果是這樣,他們發回的信息作爲JSON主頁。
  4. 根據JSon變量內容(如果存在),網站B向用戶顯示不同的內容。

它可以通過捲曲來實現嗎?

謝謝。

+1

是的,這是可能的。你試過了嗎?有什麼問題? – Alfwed

+0

我遇到的問題是會話變量返回空。通過重定向使用相同的解決方案,即標題(位置:...)工作。換句話說,在同一瀏覽器會話中,cURL給了我空的會話變量,但雙重定向(向前和向後)給了我會話變量,因爲它們存在。 –

回答

2

沒有試過這個,所以我不知道它是否可以正常工作,但是我最好的猜測是想得到類似於你想要的東西的東西,如下所示。

假設兩個網站都在同一臺服務器上,您可以手動設置session_id()並跟蹤此值。然後,您將此ID字符串發送到網站B,並使用相同的ID也呼叫session_id()。

http://php.net/manual/en/function.session-id.php

如果你的網站是不一樣的服務器上,那麼你就需要修改你的php.ini和你的會話存儲連接到內存緩存一樣服務。

舉例來說。

網站A:

session_id('test'); 
$_SESSION['hello'] = "hello world\n"; 

網站B:

session_id('test'); 
echo $_SESSION['hello']; 

顯然,你需要做更多的工作比上面的,因爲你需要爲每一個用戶/請求唯一的ID。

1

由於我的網站是在同一服務器中不,這是我必須做的,使其工作(不內存緩存)。這不是最優雅的解決方案,但這是我如何使它工作,即,如何發送到網站內容網站B的會話變量:

  1. 網站一個PHP程序使用重定向到header()網站B。在網站A請求的PHP發送其URL作爲查詢字符串的一部分,因此網站B知道在哪裏發送其答案。
  2. 網站B接收頁面抓住會話ID使用session_id()並將其發送回給網站甲通過自動提交後的形式。
  3. 現在從網站B網站的會話ID一個使得以網站B,它返回網站B的會話變量的內容捲曲電話。

:無會話ID網站B發送一個空的會話變量來網站甲