각 페이지로드 (PHP)로 카운터를 증가시키는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/865015

  •  21-08-2019
  •  | 
  •  

문제

사용자가 사이트의 X 페이지를 방문했을 때 특정 조치가 발생하기를 원합니다.

카운터를 외부로 저장해야합니까 (txt 파일 또는 DB)?

카운터를 0으로 설정하는 방법을 생각할 수 없습니다. 그런 다음 각 페이지로드를 증가시킵니다. 카운터는 항상 0으로 재설정됩니다. 아니면 분명한 것을 놓치고 있습니까?

도움이 되었습니까?

해결책

사용하는 것은 매우 간단합니다 $_SESSION 개인이 본 페이지 수를 저장하는 데이터.

$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;

다른 팁

가장 간단한 방법은 PHP를 사용하는 것입니다 세션 스토리지.

session_start();
@$_SESSION['pagecount']++;

PHP는 사용자에게 세션 쿠키를 자동으로 보내고이 쿠키와 관련된 플랫 파일에 $ _session 컨텐츠를 투명하게 저장합니다. 이 문제에 대해 자신의 솔루션을 굴릴 필요는 없습니다.

사용자가 처음 페이지에 도달하면 세션을 시작한 다음 사용자가 하위 페이지를 다시로드/방문 할 때마다 값을 증가시킬 수 있습니다. 이를 수행하는 또 다른 방법은 모든 페이지에 숨겨진 필드를 갖고 그 값을 검색하고, 증분하고 새 페이지에 게시하는 것입니다.

<input type="hidden" value="2" id="blabla" />

짧은 대답은 예입니다. PHP (기본적으로)에 메모리 지속 정책이 제로가 있기 때문에 외부로 저장해야합니다. 이것은 기본적으로 PHP 스크립트가 실행되면 메모리에 남은 것이 없음을 의미합니다.

트래픽이 적은 사이트의 경우 읽고, 증분 및 쓰는 간단한 TXT 파일에 대해 생각할 수 있습니다. 더 높은 트래픽 사이트의 경우 매우 간단한 MySQL 테이블이 작동 할 수 있습니다.

사용자가 사이트를 떠나 다른 날에 돌아 오더라도 사용자가 누구인지 (사용자 이름과 비밀번호와 같은)를 결정할 수있는 방법이 있습니까? 아니면 방문자가 보는 페이지 수를 추적하고 Xth 페이지에서 특별한 일을하는 데 관심이 있습니까?

두 번째라면 이미 카운터를 저장할 수있는 세션 변수가 있습니다.

$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...

if 문을 사용하여 이미 설정되어 있는지 확인합니다.

if( isset($count) )
{
   $count = $count + 1;
}
else
{
   $count = 1;
}

get 메소드를 사용하여 카운트를 URL에 넣을 수 있으므로 카운트를 파일 또는 데이터베이스에 쓸 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top