2017-09-24 10 views
0

사용자 검색을 쿠키에 저장하여 사용자에게 "최근 검색"을 표시하려고합니다.PHP 쿠키 저장 사용자 양식 검색 - 저장된 복수 검색

  1. 키워드
  2. 위치

나는 아무 문제 쿠키를 만들 수 있습니다,하지만 난 그것을 업데이트하고 1 개 이상의 검색을 저장할 수 없습니다 : 양식은 2 PARAMS가 포함되어 있습니다. 그들은 아래 형식으로 쿠키에서 검색을 저장 Indeed.co.uk :

"q=carpenter&l=london&ts=1506177856392:q=bricklayer&l=Southwark&ts=1506008036065:q=labourer&l=Southwark&ts=1506007988029" 

당신은 실제로보고 여러 UNIQUE 검색을 저장할 수있다.

PHP를 사용하고있는 사람이라면 복제 양식을 작성하는 방법을 알고 있습니까? 쿼리를 배열로 가져와야합니다.

감사

업데이트 - 코드 시도 :

if (isset($_COOKIE["RS"])) { 

    // Get cookie value 
    $new = "key=$keyword&loc=$locationKey:"; 
    //"q=carpenter&l=london&ts=1506177856392:q=bricklayer&l=Southwark&ts=1506008036065:q=labourer&l=Southwark&ts=1506007988029" 
    $prev_value = $_COOKIE["RS"]; 

    $prev_value = stripslashes($prev_value); 
    $prev_value = json_decode($prev_value, true); 
    // Add current value to array and set cookie again 

    $prev_value = $prev_value."".$new; 

    $new_value = json_encode($prev_value, true); 

    setcookie('RS', $new_value, time()+3600); 

}else { 

    // Set cookie to current value 
    $init_value = "key=$keyword&loc=$locationKey:"; 
    $init_value = json_encode($init_value, true); 
    setcookie('RS', $init_value, time()+3600); 

} 
+0

) 그리고 당신이 노력 무슨이 당신이 쿠키에 저장할 수, $의 searches_by_key에서 고유 키가됩니다이에 의해

//after explode $searches_by_key = array(); foreach($searches as $search){ list($keyword, $location) = explode('&', $search); $searches_by_key[$keyword] = $search; } 

는 희망이 도움이 ? –

+0

Mr Pro Pop - 코드를 사용하여 업데이트 된 질문 –

+0

그럼, 여러 값을 저장하려고합니까? –

답변

0

가 하나 개의 쿠키에 더 많은 검색 결과를 저장하려면, 먼저 다음 새 검색을 추가, 쿠키에서 실제 값을 읽을 수 있습니다. 이 같은

뭔가 : 그렇다면이 쿠키 존재 여부

<?php 
$cookie_name = "searches"; 
$stored_searches = isset($_COOKIE[$cookie_name]) ? $_COOKIE[$cookie_name] : null; 

$new_search_value = "keyword:asdf&location=http://example.com"; 

if($stored_searches){ 

    $searches = explode('|',$stored_searches); 

    $searches[] = $new_search_value; 

    $searches_to_store = implode('|', $searches); 

} else { 
    $searches_to_store = $new_search_value; 
} 


setcookie($cookie_name, $searches_to_store, time() + (86400 * 30), "/"); 

이 코드 검사, 배열에 모든 검색을 구문 분석합니다. 그런 다음 새로운 검색과 함몰을 쿠키 문자열에 추가합니다. 검색은 | (파이프) 문자 다음 저장합니다 ..

내가 그러나 세션 값으로 검색에 대한 그 데이터를 저장하는 것이 좋습니다 것

, 자사의 서버에 저장하고 사용자가 조작 할 수 없습니다

$_SESSION['searches'] = $searches_to_store; 

편집 : 고유 검색 만 저장하려면 저장된 검색을 일부 키로 배열에 할당 할 수 있습니다.

이 같은 예를 들면 다음과 같습니다;

+0

지미,이 덕분에 작동 해! 내 유일한 문제는 이제 멈추는 것입니다. 복제 된 양식 검색이 쿠키에 추가되었으며 고유 한 키워드 + 위치 조합 만 저장합니다. –

+0

고유 검색에 대한 힌트를 포함하는 답변을 편집했습니다. – Jimmmy