2016-07-19 3 views
-2

WordPress 사이트를 믹스 패널과 통합하려고합니다. 그래서 우리 사이트를 방문하는 각 사용자에 대해 쿠키를 설정해야합니다. 그렇다면 방문 횟수를 세고 MySQL을 저장해야합니다. 지금 나는 논리 자체로그인하지 않은 사용자를 어떻게 추적 할 수 있습니까?

enter image description here

+1

그럼, 문제는 무엇입니까? – mitkosoft

+0

이것이 올바른 방법일까요? 나는 이것을 데이터베이스에 저장하려고합니다. 하지만 쓸 때마다 $ sql = "INSERT INTO full_visit_count (unreg_user_id, user_visit_count) VALUES ($ userId, $ user_visit)"; mysqli_query ($ sql); 데이터베이스에는 변화가 없습니다. –

답변

0

이 스크립트의 문제가되어 사용하고 있습니다 - 당신이 UID 때마다 생성됩니다, 각각의 당신이 브랜드를 작성합니다 방문에 기존의 UID 쿠키 일치 할 수있는 방법은 없다 생성 된 UID를 가진 새로운 쿠키. 또한 쿠키 이름 (다시 이미 기록 된 쿠키와 일치하지 않을 수 있음)으로 UID를 사용하므로 이것을 확인하는 잘못된 접근입니다 : 이것은 정적 이름이 쿠키를 생성합니다

<?php 
    if (!isset($_COOKIE['swain_uid'])) { 
     $guid = com_create_guid(); 
     $ucnt = 1; 
    } else { 
     $guid = $_COOKIE['swain_uid']; 
     $ucnt = ++$_COOKIE['swain_cnt']; 
    } 
    setcookie('swain_uid', $guid); 
    setcookie('swain_cnt', $ucnt); 
    print_r($_COOKIE); //for debug purposes only, remove it on production. 
?> 

- UID 하나가와 하나는 계산에 사용됩니다. 그러면 사용자가 쿠키를 삭제하지 않는 한 각 사용자의 방문을 셀 수 있습니다.

UPDATE : 데이터베이스 레코드에 관한

는, 단순히 UID가 기본 키를하고 쿠키 로직 후 INSERT ON DUPLICATE KEY UPDATE을 할 수있는 테이블을 만들 :

MySQL의 테이블 :

CREATE TABLE `visit_count` (
    `userId` varchar(255) NOT NULL, 
    `userVisit` int(11) DEFAULT NULL, 
    PRIMARY KEY (`userId`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

PHP (추가 위 스크립트 사용) :

$con = mysqli_connect('localhost', 'root', '', 'test') or die(mysqli_error($con)); 
    $query = "INSERT INTO visit_count 
      (userId, userVisit) 
     VALUES 
      ('".$guid."', ".$ucnt.") 
     ON DUPLICATE KEY UPDATE userVisit = ".$ucnt; 
    mysqli_query($con, $query) or die(mysqli_error($con)); 
+0

답변 해 주셔서 감사합니다. 나는 그것의 바로 뒤에 SQL 쿼리를 넣을 수 있도록 데이터베이스에 저장하고 싶습니까? $ sql = "INSERT INTO 방문 횟수 (swain_uid, swain_cnt) VALUES ($ userId, $ user_visit)"; mysqli_query ($ sql); 또는 다른 조치를 취해야합니까? –

+0

내 업데이트 확인 – mitkosoft

+0

로컬 호스트에있는 내 wordpress 웹 사이트의 header.php에이 코드를 포함 시키려고합니다. 맞을까요? –

관련 문제