PDA

View Full Version : Cách đếm số lần click



hoanghbc
20-12-2010, 16:58
Chào mọi người mình có các baner quảng cáo trên website..! trong DATABASE có thông tin baner là đường dẫn và hình ảnh..
Khi click vào baner thì liên kết tới các trang web khác theo đường link..!

Mong mong người giúp mình đếm được số lần Click vào baner đấy trên website..!

Em mới học mong mọi người chỉ giúp dễ hiểu vào nhé..!

salala-bacala
20-12-2010, 17:03
Mình có nhiều module viết sẳn quản lý vụ này bạn download về sài cho chắc ăn khỏi viết lại.

thq
20-12-2010, 17:59
thay vì bạn đặt link trực tiếp đến trang www.google.com vào banner thì bạn đặt lại thành go.php?url=www.google.com
trong trang go.php bạn làm 2 việc
1. ++ số lần click
2. header("location:$_GET['url']);

hoanghbc
21-12-2010, 09:37
Anh thq có thể chỉ rõ hơn hộ em được không em không làm trên Google mà em làm trên website của mình để biết được lượng click vào baner quảng cáo ví dụ như để tính phí...! anh demo cho em ít lệnh nhé em mới học PHP..
Thanhk nhiều..!

thuyduongcd
21-12-2010, 10:04
Ví dụ trong table banner có
ID: id hình ảnh
image: hình ảnh banner hiển thị
url: link đích
counter: số lần click
Truy vấn lấy ra image ($img) và id ($id)

Ở trang hiển thị banner đặt code


<a href="http://domain.name/ads.php?id=<?php echo $id; ?>"><img src="<?php echo $image; ?>" /></a>


Thêm 1 trang đặt ads.php, trang này khi được gọi (do user click ở trang chủ) đầu tiên dùng $_GET['id'] để xác định xem banner nào được click.
Sau đó truy vấn DB lấy giá trị counter của record tương ứng, cộng thêm 1 và update trở lại.
Và cuối cùng là redirect tới url của banner tương ứng với id đó.

xuandinh3081991
22-12-2010, 21:19
Đã làm tương tự như hướng dẫn nhưng không hiểu sao nó chỉ tăng có 1 lần, sau click lại không thấy giá trị count tăng.
code ads.php

<?php
include('config.php');
if(isset($_GET['id'])){
$sql = @mysql_fetch_array(mysql_query("SELECT count, link FROM ads WHERE id='$_GET[id]'"));
$count = $_GET['count'];
$count++;
$link = $sql['link'];
@mysql_query("UPDATE ads SET count='$count' where id='$_GET[id]'");
header("Location: $link");
}

?>

thuyduongcd
23-12-2010, 09:38
Có khả năng là do cache.
Lần đầu click thì nó ra link ads.php?id=***.
Lần thứ hai click cũng link giống như vậy nên trình duyệt lấy từ trong cache show ra. Thử thêm chuối random vào trong link xem.

xuandinh3081991
23-12-2010, 12:20
Có khả năng là do cache.
Lần đầu click thì nó ra link ads.php?id=***.
Lần thứ hai click cũng link giống như vậy nên trình duyệt lấy từ trong cache show ra. Thử thêm chuối random vào trong link xem.

Lấy random id thì đâu có ra ads mình mong muốn

thuyduongcd
23-12-2010, 13:13
http://domain.name/ads.php?id=2&rnd=xyz

vzic
23-12-2010, 13:23
Khi tạo link bạn thay href="domain.com" thì bằng href="click.php?id= khóa chính của table.
- Trong Table bạn lưu như cấu trúc sau chả hạn: table: click
Fields: id,link,click
- Mỗi lần nhận từ click.php?id= bạn lấy $_GET['id']
- Select fields "link" từ table click ra. Đồng thời "update click set click=(click+1) where id=".$_GET["id"] luôn.
Xong dùng header location redirect qua link lấy được đó là oke.
Trên chỉ là miêu tả sơ lược thôi. Khi code còn tùy bạn gán biến id, link, kiểm tra id có phải là số 0 nữa cho hoàn thiện :D.