2012-07-14 2 views
0

문제가 생겼습니다. 누구든지 해결하도록 도와 주시면 감사하겠습니다.

기본적으로 나는 사용자가 즐겨 찾기에 게시물을 추가하고 즐겨 찾기를 기억하기 위해 쿠키에 저장하는 코드를 만들지 만 실패합니다.

function dt_fav_action() { 
    global $post; 
    $cookie = $_COOKIE['fav-'.$post->ID]; 
    if ($cookie == 1) { 
     $user_faved = true; 
    } 
    if ($user_faved == true) { 
     echo '<a href="';dt_favorites_link();echo '" class="faved">';dt_count_fav();echo '</a>'; 
    } else { 
     echo '<a href="" class="addfav">';dt_count_fav();echo '</a>'; 
    } 
} 

그리고 여기

<?php dt_fav_action(); ?> 

그리고 내 dt_fav_action 함수이다 : 나는 사용자가 저장 한 후 여부가 있는지 확인하는 함수를 실행하려면이 코드를 사용

첫째, 여기 내 코드입니다 여기 쿠키를 좋아하는을 처리하고 저장하는 내 PHP 파일에 데이터를 전송하는 $ 아약스 요청은 등

$('.addfav').click(function(event){ 
    $(this).unbind('click'); 
    var parentfav = $(this).parent(); 
    var postid = $(this).parent().parent().parent().attr('id').replace(/[^0-9]/g, ''); 
    $(this).fadeOut(); 
    $.ajax({ 
     url: '<?php bloginfo('template_directory'); ?>/ajax/favorite.php', 
     type: 'get', 
     data: { postid : postid }, 
     dataType: 'json', 
     success: function(data){ 
      parentfav.html('<a href="<?php dt_favorites_link(); ?>" class="faved">' + data.msg + '</a>'); 
      parentfav.children('.faved').css({'background-position' : 'left bottom', 'color' : '#1871a4'}); 
     } 
    }); 
    return false; 
}); 

마지막으로 favorite.php로 즐겨 찾기 수를 업데이트하고 dt_fav_action 함수를 통해 나중에 검색 할 수 있도록 쿠키를 추가합니다.하지만 실제 문제는 $ _COOKIE가 항상 null을 반환하고 저장되지 않습니다. 이것은 $ 아약스를 통해이라고하고 스크립트가 그 이후로 모든 쿠키를 인식하지 않는 경우

<?php 

// include WordPress 
require('../../../../wp-blog-header.php'); 
$data = array(); 

    // update post favorites count 
    $postid = $_GET['postid']; 
    update_post_meta($postid, 'faves', (int)get_post_meta($postid, 'faves', true)+1); 
    $updated = get_post_meta($postid, 'faves', true); 


    setcookie('fav-'.$postid, '1', time() + (20 * 365 * 24 * 60 * 60)); 

    $data['msg'] = $updated; 

echo json_encode($data); 

?> 

이기에, setcookie 부분은, 내가 쿠키를 설정, 항상 저장 상태를 기억하지 결코 거기에 이물.

나는 루트 디렉토리의 모든 하위 디렉토리에 사용할 수 있도록 사전에

+0

이 질문을 확인 했습니까? http://stackoverflow.com/questions/3431906/setting-a-cookie-in-an-ajax-request – Caffeine

답변

1

설정 쿠키를 그것을 감사 .. 도와주세요.

setcookie(
     'fav-'.$postid, 
     '1', 
     time() + (20 * 365 * 24 * 60 * 60), 
     "/" 
); 
관련 문제