Максимум 50 цъкания.

amarok

Registered
Как мога да направя потребител като влезне в дадена страница 50 пъти и да не може да влиза повече ?
 
Правиш си таблица posetil с полета ip и times
<?php
$ip=$_SERVER['REMOTE_ADDR'];
$sql=mysql_query("SELECT COUNT(*) AS dali FROM tablica WHERE ip='$ip'") or die(mysql_error());
$red=mysql_fetch_array($sql);
$dali=$red['dali'];
if($dali>=50){
die ("Посещавали сте 50 пъти страницата"); }
elseif($dali!=0){
$up=mysql_query("UPDATE table SET times=times+1 WHERE ip='$ip'") or die(mysql_error());
}
elseif($dali==0){
$times=1;
$up=mysql_query("INSERT INTO table VALUES ('$ip','$times')") or die(mysql_error());
}
?>
 
SQL:
Код:
CREATE TABLE IF NOT EXISTS `clicks` (
	`id` int(11) NOT NULL auto_increment,
	`ip` varchar(255) collate utf8_unicode_ci NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=11 ;

И в страницата най-правиш следното:
Код:
<?php
$db_host 	= 'localhost'; 				//MySQL сървърa
$username 	= 'root'; 					//MySQL име
$password 	= 'password'; 				//MySQL парола
$db_name 	= 'database'; 				//MySQL база от данни

$conn = mysql_connect($db_host, $username, $password) or die("MySQL Error!");
mysql_select_db($db_name) or die("MySQL Error!");
mysql_query("SET CHARACTER SET utf8", $conn);

$ip = $_SERVER['REMOTE_ADDR'];
$clicks = mysql_num_rows(mysql_query("SELECT * FROM `clicks` WHERE `ip`='$ip'"));

if($clicks <= "50") {
mysql_query("INSERT into `clicks` (`id`, `ip`) VALUES ('', '$ip')") or die(mysql_error());

echo "Направилите $clicks клика";
//Toва, което искаш да ти показва ако кликовете от това IP са по-малко от 50
}
else {
echo "Вече сте посетили страницата 50 пъти!";
}
?>
 
Колега, няма нужда да превръщаш числата в стрингове.... (демек не са нужни кавички).
 
DeathGuard_ каза:
Колега, няма нужда да превръщаш числата в стрингове.... (демек не са нужни кавички).

Просто така съм свикнал, пък и оранжевото на моя Notepad++ ме дразни леко :lol:
 

Back
Горе