2016-07-14 1 views
5

지난 2 주 동안 나는 쿠키에 페이지 아이디를 저장하고 다른 페이지에서 그것을 검색하고있었습니다.PHP로 저장된 변수 사용 PHP

마지막으로 나는 그것을 풀었지만 이제는이 PHP 코드에서이 이드 (쿠키에 저장하고 가져온 것)를 사용하려고하는 다른 문제가 있습니다.

JavaScript가 클라이언트 측 코드이고 PHP가 서버 측 코드라는 것을 알고 있지만이 작업을 수행해야합니다. 이걸 도와주세요.

이 큰 노력하고 있습니다 내 자바 스크립트 코드이며 이미 쿠키에 저장 관리하는 경우, 나는이 라인 "+ value.favoriteid +"

<script> 
 
    /* 
 
    * Create cookie with name and value. 
 
    * In your case the value will be a json array. 
 
    */ 
 
    function createCookie(name, value, days) { 
 
    var expires = '', 
 
    date = new Date(); 
 
    if (days) { 
 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
 
     expires = '; expires=' + date.toGMTString(); 
 
    } 
 
    document.cookie = name + '=' + value + expires + '; path=/'; 
 
    } 
 
    /* 
 
    * Read cookie by name. 
 
    * In your case the return value will be a json array with list of pages saved. 
 
    */ 
 
    function readCookie(name) { 
 
    var nameEQ = name + '=', 
 
    allCookies = document.cookie.split(';'), 
 
    i, 
 
    cookie; 
 
    for (i = 0; i < allCookies.length; i += 1) { 
 
     cookie = allCookies[i]; 
 
     while (cookie.charAt(0) === ' ') { 
 
     cookie = cookie.substring(1, cookie.length); 
 
     } 
 
     if (cookie.indexOf(nameEQ) === 0) { 
 
     return cookie.substring(nameEQ.length, cookie.length); 
 
     } 
 
    } 
 
    return null; 
 
    } 
 
    function eraseCookie(name) { 
 
    createCookie(name,"",-1); 
 
} 
 
    var faves = new Array(); 
 
$(function(){ 
 
    var favID; 
 
    var query = window.location.search.substring(1); 
 

 
\t var vars = query.split("&"); 
 
    for (var i=0;i<vars.length;i++) { 
 
     var pair = vars[i].split("="); 
 
     var favID = (pair[0]=='ID' ? pair[1] :1) 
 
//alert(favID); 
 
\t } 
 
\t $(document.body).on('click','#addTofav',function(){ 
 
    var fav = {'favoriteid':favID}; 
 
    faves.push(fav); 
 
\t var stringified = JSON.stringify(faves); 
 
    createCookie('favespages', stringified); 
 
    location.reload(); 
 
\t }); 
 
    var myfaves = JSON.parse(readCookie('favespages')); 
 
    if(myfaves){ 
 
    faves = myfaves; 
 
    } else { 
 
    faves = new Array(); 
 
    } 
 
    $.each(myfaves,function(index,value){ 
 
     var element = '<li class="'+index+'"><h4>'+value.favoriteid+'</h4> '; 
 
     $('#appendfavs').append(element); 
 
    }); 
 

 
}); 
 
</script>

+3

시도'인 print_r ($ _ COOKIE)는'또한 http://php.net/manual/en/features.cookies.php 살펴 –

+0

쿠키는 클라이언트에 저장되고 서버로 발송에 실패하는이 . 그래서 자바 스크립트와 PHP에서 동일한 쿠키로 재생할 수 있지만 서버와 클라이언트를 구별 할 필요가 있습니다. –

답변

2

쿠키를 php 쪽에서 읽는 것은 js으로 설정 한 후 가장 쉬운 방법입니다. 클라이언트에서 발송

모든 쿠키가 자동으로 variables_order를가 "C"를 포함하는 경우 $의 _COOKIE 자동 전역 배열에 포함됩니다. 하나의 쿠키에 여러 값을 지정하려면 쿠키 이름에 에 []를 추가하십시오. 이 기능은 종종로

<?php 
echo $_COOKIE["your cookie name"]; 
?> 

<?php 
print_r($_COOKIE); 
?> 

그들에 의존하지 않는 것이 좋습니다 : register_globals의에 따라, 일반 PHP 변수가 쿠키

다음

PHP에서 생성 할 수는 몇 가지 예입니다 보안을 위해 꺼졌다.

http://php.net/manual/en/features.cookies.php

+0

안녕하세요, 답변 해 주셔서 감사합니다. 코드가 작동하지만 문제가 있습니다. 쿠키에 페이지 아이디와 페이지 URL을 저장하므로 코드를 사용할 때 다음과 같이 나타납니다. '[{ "favoriteid": "6", "url": "http : //localhost/viewcookie.php? ID = 6 "}]' – Malekian

+0

ID 번호를 보여 주려면 어떻게해야합니까? 6 – Malekian

+0

@ user6362236 https://eval.in/604982 도움이 될 것입니다. –

1

에 저장된 ID를 얻을 자바 스크립트를 사용하는 경우 PHP에서 다시 검색하는 데 문제가 없어야합니다. $_COOKIE["COKKIE_NAME"] (COOKIE_NAME을 (를) JS에서 저장 한 쿠키의 이름으로 변경하는 경우)

자세한 내용은 t http://php.net/manual/en/features.cookies.php을 참조하십시오.

+0

안녕하세요, 코드에 대한 답변을 해주셔서 감사하지만 문제가 있습니다. 쿠키에 페이지 아이디와 페이지 URL을 저장하므로 코드를 사용할 때 다음과 같이 나타납니다. '[{ "favoriteid": "6", "url": "http : //localhost/viewcookie.php? ID = 6 012}}}' ID 번호를 표시하려면 어떻게해야합니까? 6 – Malekian

+0

좋아요, 저장 한 내용은 JSON 값이므로 [json_decode()] (http : // php. net/manual/ko/function.json-decode.php). 그러면 사용 가능한 PHP 변수가됩니다. –

+0

나는 조금 더 설명해 주시거나 간단한 코드 덕분에 – Malekian