Potrzebuję utworzyć licznik dla sekcji członków (policzyć ile razy użytkownik był zalogowany).Licznik nie zwiększa się w PHP/MySQL
Mam następujący scenariusz (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;
Teraz, co zrobić w moim pliku .htaccess jest:
RewriteEngine On
RewriteRule ^img/logo([0-9]+).jpg$ /counter.php?mid=$1 [L]
ale z jakiegoś powodu mój licznik nie liczy się poprawnie. czego mi brakuje?
Pamiętaj, aby dowiedzieć się wszystkiego o wstrzykiwaniu SQL i filtrowaniu danych wejściowych. – grossvogel
Rzeczywiście. Nie próbuj umieszczać id 'mid = 1; delete% 20from% 20members; -' w adresie URL. :) – GolezTrol
Myślałem, że '([0-9] +)' zapobiegnie temu, to nie? – Tech4Wilco