2016-04-27 55 views
1

不運行的代碼,我有一個名爲temp.php一個PHP文件,該文件具有下面的代碼:JQuery的崗位在PHP文件

$expiry = 86400; 
if (isset($_POST['action'])) { 
switch ($_POST['action']) { 
    case 'add': 

    if (!isset($_COOKIE['ids'])) { 

     $value = $_GET['id']; 
     $ids = array($value); 
     setcookie('ids', serialize($ids), $expiry); 

    } else { 

     $value = $_GET['id']; 
     $ids = unserialize($_COOKIE['ids']); 
     if (!in_array($value, $ids)) { 

      array_push($ids, $value); 
     } 
     setcookie('ids', serialize($ids), $expiry); 
    } 
    break; 
} 

我運行使用$.POST('temp.php', {'action': 'add'}, function(data))此代碼。

基本上按鈕單擊我執行post函數,並希望將URL參數中的id添加到cookie中的現有數組,否則創建一個數組。不過,我可以看到正在創建的任何Cookie。即使我唯一的代碼是setcookie(...)

+4

但是,如果你發送請求的POST然後'$ _GET'將是空的...... – Technoh

+0

即使在我的文件中唯一的代碼,我是setcookie($ name,$ value,$ expiry),不添加cookie @Technoh – mike157

+0

您需要在ajax調用中向服務器發送一個id:'$ .POST('temp.php?id = ..... ',{'action':'add'},function(data))' – ahPo

回答

1

您正在設置您的Cookie過期:星期五,1970年1月2日00:00:00 GMT。

消除使用變量$expiry或將其更改爲時間戳,setcookie()需要Unix時間戳爲整數,而不是時間量。 PHP: setcookie() man page

setcookie('ids', serialize($ids), time() + 86400) // 1 Day; 

並修復丟失的花括號後break;