Tôi cần tạo bộ đếm cho phần thành viên (đếm số lần người dùng đăng nhập).Số lượt truy cập không tăng trong PHP/MySQL
tôi đã kịch bản sau đây (counter.php):
<?php
$conn = mysql_connect("localhost", "myuser", "mypass");
mysql_select_db("test");
$sql = "SELECT views FROM members WHERE mid = " . $_GET['mid'];
$result = mysql_query($sql);
if (!$result)
{
mail(ADMIN, 'Cannot Get: ' . mysql_error(), mysql_error());
}
while ($row = mysql_fetch_assoc($result))
{
$count = $row['views']++;
}
$query = "UPDATE members SET views = '$count' WHERE mid = " . $_GET['mid'];
mysql_query($query);
mysql_close($conn);
// show the logo using header() and readfile(); // that part work
?>
DB:
CREATE TABLE `members` (
`mid` int(11) NOT NULL AUTO_INCREMENT,
`views` int(11) DEFAULT '0',
/* etc...*/
PRIMARY KEY (`mid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Bây giờ, những gì tôi làm trong tập tin .htaccess của tôi là:
RewriteEngine On
RewriteRule ^img/logo([0-9]+).jpg$ /counter.php?mid=$1 [L]
nhưng vì lý do nào đó, bộ đếm của tôi không được đếm chính xác. Tôi đang thiếu gì?
Đảm bảo tìm hiểu tất cả về tính năng lọc SQL và lọc đầu vào. – grossvogel
Thật vậy. Đừng cố gắng đặt id 'mid = 1; xóa% 20from% 20members; -' trong url. :) – GolezTrol
Tôi nghĩ rằng '([0-9] +)' sẽ ngăn chặn điều đó, nó không? – Tech4Wilco