2016-02-19 34 views
0

我有兩個API頁面,api1.php和api2.php。在1上設置了一個會話,並且2會話需要被返回。 Ofcourse會有額外的功能,但我的目標是通過使用會話將這兩個API連接關聯到一個和每個人。file_get_contents api鏈接與會話的兩個連接

api1.php:

session_start(); 

$api_key = 'dfdsakdsfjdskfjdskfdsjfdfewfifjjsd'; 

$_SESSION['api_key'] = $api_key; 
setcookie('api_key', $api_key); 

api2.php:

session_start(); 

echo $_SESSION['api_key']; 
echo $_COOKIE['api_key']; 

test.php的:

$url = 'http://example.com/api1.php'; 
$content1 = file_get_contents($url); 

$url2 = 'http://example.com/api2.php'; 
$content2 = file_get_contents($url2); 
echo $content2; 

正如你可能已經注意到了,我訪問該頁面測試.php來獲得結果。 但是沒有結果正在返回。 有人可以告訴我爲什麼這不起作用,並且可能有什麼其他方式使所有這一切發生?

(注意:example.com都是同一站點(礦))

回答

1

你的代碼 「鏈接」 正確。問題實際上是在test.php中!它不是執行兩個文件中包含的代碼,而是檢索整個文件。如果你查看源代碼,你會注意到PHP標籤和你的代碼。檢查這個工作是否有效的更好的解決方案是分別去api1.php和api2.php。通過一些代碼調整,你也可以使用include()或require()函數。這將是這樣的:

api2.php

echo $_SESSION['api_key'] . "\n<br/>\n"; 
echo $_COOKIE['api_key']; 

test.php的

include('api1.php'); 
include('api2.php'); 

值得使用包括並要求職能注意到執行api1.php和API2的代碼。就好像那個代碼是test.php的一部分一樣。

+0

感謝您的回覆。但問題是,包括和要求只會解決本地主機上的問題。然而,api文件位於其他地方,以便使api可以從任何網站上運行。 – Mart