2012-10-22 3 views
0

사용자가 내 웹 사이트의 특정 페이지를 볼 때 사용자 테이블을 섹션으로 업데이트 할 때 PHP 트리거를 만들려고합니다. 페이지 뷰의 테이블 값을 업데이트 하시겠습니까?

나는 어떤 생각이 어떻게 페이지를 보는 사용자에게 간단한 포인트를주는이 같은 간단한 뭔가를 설정해야하는 과정이

on page view > update user > where user id is (**get username from session**) > add 5 to points row 

누구나 같은 것을 일하는 것이 이해?

내 사이트는 데이터베이스에 PHP와 mySQL을 사용하고 있습니다.

<?php 
$pointsForThisSite = 5; 
include "points_adder.php"; 
?> 

Points_adder은 $ pointsForThisSite이 정의되어 있는지 여부를 보이지만와> 0, 데이터베이스에 포인트를 추가

답변

2

사용 쿠키 나 세션 변수를 점수를 원하는 페이지에서 함수를 호출합니다. 따라서 페이지 뷰 트리거를 만드는 것은 모든 페이지 상단에 뷰에 대한 데이터베이스 테이블을 업데이트하는 mysql 쿼리를 추가하는 것만 큼 쉽습니다. 포럼과 동일한 방식입니다.

예컨대

<?php 

session_start(); 

$db_connection = mysqli_connect('host','username','password','db'); 
$user_id = $_SESSION['userid']; //That is asssuming that you had gotten the user id on login 

mysqli_query($db_connection, 'UPDATE page_views SET views_column=views_column+1 WHERE userid=$user_id'); 

?> 
+0

이것은 좋아 보이지만 얼마나 안전합니까? 호스트, 사용자 이름 및 암호가 소스 파일에 표시되지 않습니까? 친구 고맙습니다. :) –

+0

친구가 없습니다. 이것은 단순한 페이지 뷰 트리거를 달성하기 위해 수행하는 작업의 단순화 된 절차입니다. 보안 코드를 표시하려면 준비된 명령문 등을 추가해야합니다. 위의 목적은 사용자가 사용해야하는 접근 방식을 보여주기위한 것입니다. –

+0

어쨌든 데이터베이스 연결 변수가 어떻게 최종 코드에 넣을지라도 호스트, 사용자 이름 및 암호는 여전히 클라이언트가 볼 수 없습니다. PHP는 서버 측 언어를 기억합니다. –

1

예, 같은 (당신은 사용자가 방문하는 페이지를 소유하고있는 경우)를 할 수 네가 설명한대로

찾고 계신가요?

+0

이것은 매우 효과적입니다! 나는 설치가 마음에 든다. 고마워요. :) –

1

PHP 함수를 만들고 사용자가 페이지를 시작할 때마다 호출하십시오. 작업이 웹 페이지에 있기 때문에 mysql 트리거가 필요하지 않습니다.

function add_points($user, $page){ 
//If users visits too many maybe you don't want to gave him some points. 
//add points 
} 

하고 사용자 이름이나 ID와 같은 사용자 정보를 추적 할 수

+0

이 방법을 사용해 주셔서 감사합니다. –

1

페이지가로드 된 후이는 AJAX 호출을 함께 할 수있는 가장 눈에 거슬리지 방법. 호출은 데이터베이스 갱신 조작을 수행하고 방문자의 브라우저가 응답 내용을 기다리지 않도록 204 응답을 리턴하는 포함 파일에 대한 호출이어야합니다.

Apache 서버의 경우;

헤더 ('HTTP/1.0 204 No Content');

header ('Content-Length : 0', true);

header ('Content-Type : text/html', true);

flush();

// 여기서 테이블 업데이트를 수행하십시오.

관련 문제