Как сделать ограничение на страницу?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Как сделать ограничение на страницу? - 2009-05-31 00:14:54.736666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Подскажите пожалуйста как поставить ограничения на страницу, чтобы на неё можно было заходить (к примеру) 3 раза в день с одного Ip адреса?
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 01:49:59.963333
|
|
|
dOver
Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
|
Элементарно. Создаешь куки с ип, и счетчиками, и при каждом новом заходе увеличиваешь счетчик. Правда, куки можно стереть, поэтому лучше в базе хранить адреса и счетчики.
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 11:23:54.410000
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Для вас наверна это элементарно, а для меня нет. Можно пожалуйста расписать как именно всё это сделат?) Буду благодарен)
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 20:33:03.520000
|
|
|
dOver
Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
|
Создешь таблицу, допустим, "check_ip" с колонками ip и counter. В начале страницы пишишь примерно так: $ip=$_SERVER['REMOTE_ADDRESS']; $req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip "); $data=mysql_fetch_assoc($req); // если нет еще записи - добавляем if ($data==null){ mysql_query("INSERT INTO check_ip VALUES($ip,1)"); }else if ($data['counter']<3){ // если есть запись - увеличиваем счетчик mysql_query("UPDATE check_ip SET counter=counter+1 WHERE ip=$ip"); }else{ exit("Вы не можете смотреть эту страницу") }
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 22:12:57.133333
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Что то у меня не получается, начну попорядку. Зашел на хостинг в пхпмайадмин, создал новую таблицу Создал страницу с кодом: <?php
$ip=$_SERVER['REMOTE_ADDRESS'];
$req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip ");
$data=mysql_fetch_assoc($req);
// если нет еще записи - добавляем
if ($data==null){
mysql_query("INSERT INTO check_ip VALUES($ip,1)");
}else if ($data['counter']<3){
// если есть запись - увеличиваем счетчик
mysql_query("UPDATE check_ip SET counter=counter+1 WHERE ip=$ip");
}else{
exit("Вы не можете смотреть эту страницу")
}
?>
И выдает мне ошибку quote:
Parse error: syntax error, unexpected '}'
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 22:44:19.896666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Нужно подправить фигурные скобки: <?php
$ip=$_SERVER['REMOTE_ADDRESS'];
$req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip ");
$data=mysql_fetch_assoc($req);
// если нет еще записи - добавляем
if ($data==null){
mysql_query("INSERT INTO check_ip VALUES($ip,1)");
}else {if ($data['counter']<3){
// если есть запись - увеличиваем счетчик
mysql_query("updаtе check_ip SET counter=counter+1 WHERE ip=$ip");
}else{
exit("Вы не можете смотреть эту страницу")
}}
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 22:48:21.136666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Всё равно выдал ошибку "Parse error: syntax error, unexpected '}' и путь к файлу" Вот что теперь <?php $ip=$_SERVER['REMOTE_ADDRESS']; $req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip "); $data=mysql_fetch_assoc($req); // если нет еще записи - добавляем if ($data==null){ mysql_query("INSERT INTO check_ip VALUES($ip,1)"); }else {if ($data['counter']<3){ // если есть запись - увеличиваем счетчик mysql_query("updаtе check_ip SET counter=counter+1 WHERE ip=$ip"); }else{ exit("Вы не можете смотреть эту страницу") }} ?>
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 22:54:39.100000
|
|
|
Ltonid
Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
|
exit("Вы не можете смотреть эту страницу"); - точку с запятой в конце, вроде тут баг
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 23:03:45.690000
|
|
|
dOver
Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
|
Ты забыл поставить точку с запятой, где "exit". Тебе еще надо по дате проверять. Ты ж хотел один раз в день? Я думал, сам сможешь добавить. Добавь еще одну столбец "data" типа DATETIME и строчку: $date=date('%d-%m-%Y'); в начало файла и код будет таким: $req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip and date_format(data,'%d-%m-%Y')='$date'"); $data=mysql_fetch_assoc($req); // если нет еще записи - добавляем if ($data==null){ mysql_query("INSERT INTO check_ip VALUES('$ip',1,NOW())"); }else if ($data['counter']<3){ // если есть запись - увеличиваем счетчик mysql_query("UPDATE check_ip SET counter=counter+1,data=NOW() WHERE ip='$ip'"); }else{ exit("Вы не можете смотреть эту страницу"); } Обрати внимание, переменная $ip в одинарных кавычках должна быть.
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 23:21:43.093333
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Добавил ещё в таблицу строчку "data" Вот исходник страницы <?php
$req=mysql_query("SELECT counter FROM check_ip WHERE ip=$ip and date_format(data,'%d-%m-%Y')='$date'");
$data=mysql_fetch_assoc($req);
// если нет еще записи - добавляем
if ($data==null){
mysql_query("INSERT INTO check_ip VALUES('$ip',1,NOW())");
}else if ($data['counter']<3){
// если есть запись - увеличиваем счетчик
mysql_query("UPDATE check_ip SET counter=counter+1,data=NOW() WHERE ip='$ip'");
}else{
exit("Вы не можете смотреть эту страницу");
}
?> И мне он выдал след ошибку
Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in /xxx.ru/0.php on line 3
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /xxx.ru/0.php on line 3
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /xxx.ru/0.php on line 4
Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in /xxx.ru/0.php on line 7
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /xxx.ru/0.php on line 7
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 23:50:48.420000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Что это за ограничение по IP??? Прокси уже отменили?
|
|
|
RE: Как сделать ограничение на страницу? - 2009-05-31 23:57:28.856666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Пусть сидят мне не жалко, мне главное сделать чтобы лиди зашли один раз на мой сайт увидели продукт и захотели его купить.
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 01:34:27.093333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
quote:
ORIGINAL: amBX Подскажите пожалуйста как поставить ограничения на страницу, чтобы на неё можно было заходить (к примеру) 3 раза в день с одного Ip адреса? Да? И где логика тогда? В чем смысл сабжа? ЗЫЖ Ограничение != грамотное СЕО + маркетинг + врожденный успех + мозги
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 10:25:36.196666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
Не спорю!) Но мне щас это не главное!) Ребят лучше подскжите в чем у меня ошибка? в 10 посте написал что не так у меня.
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 10:41:34.703333
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
«Доступ закрыт для юзера … » Проверь адрес БД, логин и пароль при подключении к базе. Или ты совсем не подключался? $sql_host = 'localhost';
$sql_user = 'root';
$sql_password = '';
$sql_db = 'databasename';
$sql_connect = mysql_connect ($sql_host, $sql_user, $sql_password) or die ('<b>Ошибка подключения: </b>' . mysql_error());
$sql_selectbase = mysql_select_db($sql_db) or die ('База данных <b>«'.$sql_db.'»</b> не существует');
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 13:36:21.460000
|
|
|
dOver
Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
|
Тебе надо поставить свои логин, пароль и базу в переменные, что zhuk написал. Названия базы можно узнать в левой части phpmyadmin. Я ж написал, колонка data дожна быть типа "DATETIME". Колонка "ip" должна быть типа VARCHAR. И поставь переменную $ip в первом запросе в одинарные кавычки. Я забыл поставить. Вообще, если ничего не знаешь, поручил бы кому-то более опытному.
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 13:41:14.973333
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
…и начинай с более простого. http://php.su/mysql/
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 22:33:47.016666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Ты никак не определяешь айпишник, а нужно. Добавь в начале $ip = $_SERVER['REMOTE_ADDR'];
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 22:35:32.866666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
И что делать? исправить же можно?
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 22:53:12.986666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
См. пред. пост
|
|
|
RE: Как сделать ограничение на страницу? - 2009-06-01 23:02:08.546666
|
|
|
amBX
Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
|
ip записывает, время записывает, counter записывает (всегда значения "1" записывает), но страницу не блокирует( Раз 10 захожу на страницу и он заходит.((
|
|
|
|
|