문제가 생겼습니다. 누구든지 해결하도록 도와 주시면 감사하겠습니다.
기본적으로 나는 사용자가 즐겨 찾기에 게시물을 추가하고 즐겨 찾기를 기억하기 위해 쿠키에 저장하는 코드를 만들지 만 실패합니다.
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 부분은, 내가 쿠키를 설정, 항상 저장 상태를 기억하지 결코 거기에 이물.
나는 루트 디렉토리의 모든 하위 디렉토리에 사용할 수 있도록 사전에
이 질문을 확인 했습니까? http://stackoverflow.com/questions/3431906/setting-a-cookie-in-an-ajax-request – Caffeine