『壹』 php js跨域請求,並設置cookies
首先要說的是,閣下的問題看起頗費神,中文英文符號混雜,大小寫混雜,讓閱讀者看起相當吃力。
其次,你跨域,JS不能使用POST和GET請求的,這是瀏覽器安全規則,不過可以使用其它辦法來獲得類似結果。
JS跨域,POST可以通過提交隱藏表單至隱藏框架頁來得到請求結果。而GET請求則可以在目標地址後面加上要請求的GET參數然後抓取目標頁的所有網頁內容,再通過正則處理獲得結果;也可以使用JSON來獲取(詳情請自行學習JSON,很簡單的)。
閣下的問題,只是獲取COOKIE時間,那麼可以直接通過JS抓取目標頁或JSON獲得。而B域名的cookies.php,完全不需要訪問index.php來獲得上一個COOKIE的時間,因為它們是同一個站,index.php能訪問到的COOKIE,cookies.php也能訪問到。
B域名的cookies.php參考如下(僅供參考,具體請根據自己情況另行寫代碼):
if(isset($_COOKIE["user"]))//
$time=$_COOKIE["user"];//
else
$time=0;//
$_COOKIE["user"]=time();
echo$time;
//或輸出JSON,請自行學習
終上,僅是提供一個思路,更多的還是要靠閣下自行摸索學習。
另外,這種跨域請求,建議使用JSON,因為它簡單方便。當你學會了,就表示你會寫介面和使用介面了(雖然這個只是最簡單的介面)。當然除了JSON還可以使用XML,只是性能稍差一些,也不錯
『貳』 php setcookie中path和domain怎麼設置
setcookie函數原型如下:
boolsetcookie(string$name[,string$value[,int$expire=0[,string$path[,string$domain[,bool$secure=false[,bool$httponly=false]]]]]])
其中name為cookie的名字,value為cookie的值,expire為過期時間的秒級時間戳(默認為0,代表內存cookie,關閉瀏覽器即失效)
path為cookie的路徑,瀏覽器在發送cookie是只會發送對應路徑及祖先級路徑的cookie,如cookieA設置在根下,cookieB設置在/dir/下,訪問dir的請求會帶著cookieB和cookieA,但訪問根路徑的請求只會帶著cookieA
domain為cookie的域名,只能設置為當前域或當前域的上級域。例如,一個在a.b.com的頁面,可以設置domain為a.b.com,b.com,設置為a.b.com只能在a.b.com中訪問cookie,若直接設置為b.com,則可以在其他b.com域下訪問
secure為true會對cookie進行HTTPS加密傳輸
httponly為true時,只能通過請求發送cookie,使用javascript無法讀取httponly的cookie,安全性更高
『叄』 php怎麼獲取cookie呢
在 PHP 中,獲取 cookie 的值可以使用 $_COOKIE 變數。以下是具體的說明和示例:
答案:
使用 $_COOKIE 變數獲取 cookie:
示例代碼:
設置 cookie:
通過上述方法,你可以在 PHP 中輕松地獲取、設置和刪除 cookie。
『肆』 thinkphpcookie設置domain不生效
thinkphpcookie設置domain不生效的原因如下。
1、domain參數設置錯誤:在設置cookie的domain參數時,需要確保它的值是正確的域名格式,比如example.com。如果domain參數設置不正確,瀏覽器是不會接受該cookie的。
2、設置的域名與當前域名不匹配:如果您在本地開發環境中設置了cookie的domain參數,但是在實際生產環境中使用了不同的域名,那麼cookie就不能跨域傳遞了。
3、瀏覽器設置阻止了cookie:有些瀏覽器可能會阻止cookie的設置,可以檢查瀏覽器的cookie設置,確保它們沒有被禁用。
『伍』 如何使用PHP操作cookie
PHP setcookie() 函數向客戶端發送一個 HTTP cookie。cookie 是由伺服器發送到瀏覽器的變數。cookie 通常是伺服器嵌入到用戶計算機中的小文本文件。每當計算機通過瀏覽器請求一個頁面,就會發送這個 cookie。cookie 的名稱指定為相同名稱的變數。例如,如果被發送的 cookie 名為 "name",會自動創建名為 $user 的變數,包含 cookie 的值。
必須在任何其他輸出發送前對 cookie 進行賦值。如果成功,則該函數返回 true,否則返回 false。
setcookie(name, value, expire, path, domain, secure)
name 必需。規定 cookie 的名稱。
value 必需。規定 cookie 的值。
expire 可選。規定 cookie 的有效期。
path 可選。規定 cookie 的伺服器路徑。
domain 可選。規定 cookie 的域名。
secure 可選。規定是否通過安全的 HTTPS 連接來傳輸 cookie。
可以通過 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 來訪問名為 "user" 的 cookie 的值。在發送 cookie 時,cookie 的值會自動進行 URL 編碼。接收時會進行 URL 解碼。如果不需要這樣,可以使用 setrawcookie() 代替。
程序1:
設置並發送 cookie:
1 <?php
2 $value = "my cookie value";
3 // 發送一個簡單的 cookie
4 setcookie("TestCookie",$value);
5 ?>
01 <html>
02 <body>
03 ...
04 ...
05 <?php
06 $value = "my cookie value";
07 // 發送一個 24 小時候過期的 cookie
08 setcookie("TestCookie",$value, time()+3600*24);
09 ?>
10 <html>
11 <body>
程序2:
檢索 cookie 值的不同方法:
01 <html>
02 <body>
03 <?php
04 // 輸出個別的 cookie
05 echo $_COOKIE["TestCookie"];
06 echo "<br />";
07 echo $HTTP_COOKIE_VARS["TestCookie"];
08 echo "<br />";
09 // 輸出所有 cookie
10 print_r($_COOKIE);
11 ?>
12 </body>
13 </html>
程序輸出:
1 my cookie value
2 my cookie value
3 Array ([TestCookie] => my cookie value)
程序3:
通過把失效日期設置為過去的日期/時間,刪除一個 cookie:
1 <?php
2 // 把失效日期設置為一小時前
3 setcookie ("TestCookie", "", time() - 3600);
4 ?>
程序4:
創建一個數組 cookie:
01 <?php
02 setcookie("cookie[three]","cookiethree");
03 setcookie("cookie[two]","cookietwo");
04 setcookie("cookie[one]","cookieone");
05 // 輸出 cookie (在重載頁面後)
06 if (isset($_COOKIE["cookie"]))
07 {
08 foreach ($_COOKIE["cookie"] as $name => $value)
09 {
10 echo "$name : $value <br />";
11 }
12 }
13 ?>
程序輸出:
1 three : cookiethree
2 two : cookietwo
3 one : cookieone
程序5:
view sourceprint?
1 /**
2 * 01.cookie設置
3 * */
4 function ssetcookie($var, $value, $life=0) {
5 global $_SGLOBAL, $_SC, $_SERVER;
6 setcookie($_SC['cookiepre'].$var, $value, $life?($_SGLOBAL['timestamp']+$life):0, $_SC['cookiepath'],$_SC['cookiedomain'], $_SERVER['SERVER_PORT']==443?1:0);
7 }