Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как сделать ограничение на страницу?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Как сделать ограничение на страницу?
Имя
Сообщение << Старые топики   Новые топики >>
Как сделать ограничение на страницу? - 2009-05-31 00:14:54.736666   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Подскажите пожалуйста как поставить ограничения на страницу, чтобы на неё можно было заходить (к примеру) 3 раза в день с одного Ip адреса?
Post #: 1
RE: Как сделать ограничение на страницу? - 2009-05-31 01:49:59.963333   
dOver

Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
Элементарно. Создаешь куки с ип, и счетчиками, и при каждом новом заходе увеличиваешь счетчик. Правда, куки можно стереть, поэтому лучше в базе хранить адреса и счетчики.
Post #: 2
RE: Как сделать ограничение на страницу? - 2009-05-31 11:23:54.410000   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Для вас наверна это элементарно, а для меня нет. Можно пожалуйста расписать как именно всё это сделат?) Буду благодарен)
Post #: 3
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("Вы не можете смотреть эту страницу")
}
Post #: 4
RE: Как сделать ограничение на страницу? - 2009-05-31 22:12:57.133333   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Что то у меня не получается, начну попорядку. Зашел на хостинг в пхпмайадмин, создал новую таблицу

Создал страницу с кодом:
&lt;?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']&lt;3){ // если есть запись - увеличиваем счетчик mysql_query("UPDATE check_ip SET counter=counter+1 WHERE ip=$ip"); }else{ exit("Вы не можете смотреть эту страницу") } ?&gt; И выдает мне ошибку
quote:

Parse error: syntax error, unexpected '}'
Post #: 5
RE: Как сделать ограничение на страницу? - 2009-05-31 22:44:19.896666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Нужно подправить фигурные скобки:

&lt;?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']&lt;3){ // если есть запись - увеличиваем счетчик mysql_query("updаtе check_ip SET counter=counter+1 WHERE ip=$ip"); }else{ exit("Вы не можете смотреть эту страницу") }}
Post #: 6
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("Вы не можете смотреть эту страницу")
}}

?>
Post #: 7
RE: Как сделать ограничение на страницу? - 2009-05-31 22:54:39.100000   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
exit("Вы не можете смотреть эту страницу"); - точку с запятой в конце, вроде тут баг
Post #: 8
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 в одинарных кавычках должна быть.
Post #: 9
RE: Как сделать ограничение на страницу? - 2009-05-31 23:21:43.093333   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Добавил ещё в таблицу строчку "data"

Вот исходник страницы
&lt;?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']&lt;3){ // если есть запись - увеличиваем счетчик mysql_query("UPDATE check_ip SET counter=counter+1,data=NOW() WHERE ip='$ip'"); }else{ exit("Вы не можете смотреть эту страницу"); } ?&gt;
И мне он выдал след ошибку
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
Post #: 10
RE: Как сделать ограничение на страницу? - 2009-05-31 23:50:48.420000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Что это за ограничение по IP??? Прокси уже отменили?
Post #: 11
RE: Как сделать ограничение на страницу? - 2009-05-31 23:57:28.856666   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Пусть сидят мне не жалко, мне главное сделать чтобы лиди зашли один раз на мой сайт увидели продукт и захотели его купить.
Post #: 12
RE: Как сделать ограничение на страницу? - 2009-06-01 01:34:27.093333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
quote:

ORIGINAL: amBX

Подскажите пожалуйста как поставить ограничения на страницу, чтобы на неё можно было заходить (к примеру) 3 раза в день с одного Ip адреса?



Да? И где логика тогда? В чем смысл сабжа?

ЗЫЖ Ограничение != грамотное СЕО + маркетинг + врожденный успех + мозги
Post #: 13
RE: Как сделать ограничение на страницу? - 2009-06-01 10:25:36.196666   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Не спорю!) Но мне щас это не главное!) Ребят лучше подскжите в чем у меня ошибка? в 10 посте написал что не так у меня.
Post #: 14
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 ('&lt;b&gt;Ошибка подключения: &lt;/b&gt;' . mysql_error()); $sql_selectbase = mysql_select_db($sql_db) or die ('База данных &lt;b&gt;«'.$sql_db.'»&lt;/b&gt; не существует');
Post #: 15
RE: Как сделать ограничение на страницу? - 2009-06-01 10:55:32.230000   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Что означает эта строчка ?
$sql_db = 'databasename';
Вот что у меня щас написано:
&lt;?php $sql_host = 'ambx_ambx'; $sql_user = 'ambx_ambx'; $sql_password = 'ambx_ambx'; $sql_db = 'databasename'; $sql_connect = mysql_connect ($sql_host, $sql_user, $sql_password) or die ('&lt;b&gt;Ошибка подключения: &lt;/b&gt;' . mysql_error()); $sql_selectbase = mysql_select_db($sql_db) or die ('База данных &lt;b&gt;«'.$sql_db.'»&lt;/b&gt; не существует'); $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']&lt;3){ // если есть запись - увеличиваем счетчик mysql_query("updаtе check_ip SET counter=counter+1,data=NOW() WHERE ip='$ip'"); }else{ exit("Вы не можете смотреть эту страницу"); } ?&gt;
И выдал ошибку:
quote:


Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'ambx_ambx'(1) in xxx.ru/xxx.php on line 8
Ошибка подключения: Unknown MySQL server host 'ambx_ambx'(1)


Может проблема с БД, ну вот скрин если что
Post #: 16
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 в первом запросе в одинарные кавычки. Я забыл поставить. Вообще, если ничего не знаешь, поручил бы кому-то более опытному.
Post #: 17
RE: Как сделать ограничение на страницу? - 2009-06-01 13:41:14.973333   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
…и начинай с более простого. http://php.su/mysql/
Post #: 18
RE: Как сделать ограничение на страницу? - 2009-06-01 21:13:44.530000   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
Всё работает, страница загружается без ошибок, но блокировка не работает ip не записывает((



Что делатЬ?
Post #: 19
RE: Как сделать ограничение на страницу? - 2009-06-01 22:33:47.016666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Ты никак не определяешь айпишник, а нужно.

Добавь в начале $ip = $_SERVER['REMOTE_ADDR'];
Post #: 20
RE: Как сделать ограничение на страницу? - 2009-06-01 22:35:32.866666   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
И что делать? исправить же можно?
Post #: 21
RE: Как сделать ограничение на страницу? - 2009-06-01 22:53:12.986666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
См. пред. пост
Post #: 22
RE: Как сделать ограничение на страницу? - 2009-06-01 23:02:08.546666   
amBX

Сообщений: 52
Оценки: 0
Присоединился: 2008-11-19 12:47:44.706666
ip записывает, время записывает, counter записывает (всегда значения "1" записывает), но страницу не блокирует(
Раз 10 захожу на страницу и он заходит.((
Post #: 23
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Как сделать ограничение на страницу?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.