2011-12-14 118 views
0

得到SESSION_ID()我有捲曲幾個問題:如何從捲曲

  1. 我需要使用session_start()與捲曲?

  2. 如果不是,我如何從cURL獲得session_id()

  3. 什麼時候產生了session_id()

  4. 初始化cURL會話(curl_init)和執行cURL會話(curl_exec)有什麼區別?

+2

你想完成什麼? PHP會話和cURL並沒有太大的關係。 – 2011-12-14 18:47:00

+2

你能解釋你想完成什麼嗎?在這個問題中,你認爲會話和cURL沒有任何共同之處。 – Lars 2011-12-14 18:47:29

回答

0

捲曲是建立到服務器(就像你的web瀏覽器一樣)連接一個庫,沒有session_id可言(因爲它只是檢索客戶端所看到的和session_id()將是一個服務器端的方法) 。

就是說,通常是會話ID可以在請求的標頭中找到,例如Set-Cookie標頭(或有時在URL本身中)。因此,如果您需要確定會話,我將着眼於使用cURL的Cookie Jar功能,或確保檢索標題的內容,以便您可以查看Set-Cookie的值。

後續:

  • curl_init正在建立一個新的捲曲請求。基本上,它會創建一個新的cURL實例,然後您可以使用衆多的curl_setopt設置進行配置。
  • curl_exec是根據您的配置執行cURL請求並返回結果。根據您的設置,這可能是您要進行的實際內容,一組標題,單個狀態結果或其他值。

<?php 
    // create a new instance of curl we can configure 
    $curl = curl_init('http://google.com'); 

    // begin configuring that instance 
    curl_setopt($curl, CURLOPT_COOKIE, 'PHPSESSID=12345ABCDE67890'); 

    // now fire off the result, with the specified cookie attached 
    // (in this case, it's fetching google.com with a cookie named PHPSESSID 
    // and a value of 12345ABCDE67890) 
    $result = curl_exec($curl); 
0

PHP會話Cookie中默認transmited,如果通過捲曲得到網頁,並試圖訪問同一網頁的另一部分,則必須添加你從了會議cURL

0

您可能需要考慮將用戶從一個站點切換到另一個站點並仍保持其「登錄」狀態的替代解決方案。

我張貼類似的話題的響應,你可能想看看:Session lost when switching from HTTP to HTTPS in PHP

概括地說,你可以創建一個哈希鍵,將用戶重定向到站點B,查找哈希鍵,如果他們排隊將用戶登錄到siteB。

0

首先,會話和cURL是完全不同和不相關的東西。會話就像當前用戶的服務器端緩存。 cURL是一種用PHP發送HTTP請求的方式,例如GET和POST。一些API需要使用cURL從您自己的PHP腳本/代碼中與它們進行交互。

session_id()函數用於獲取或設置當前用戶的當前會話ID。如果你想設置的會話ID 7例如,你會打電話

session_id(7); 
session_start(); 

如果你想獲取會話ID,你會打電話

session_start(); 
$CurrentSessID = session_id(); 

,當你調用生成會話ID session_start(),除非在調用session_start()之前自己設置它。