С нами с 28.02.09
Сообщения: 22
Рейтинг: 25
|
Добавлено: 03/04/09 в 10:35 |
мне нужно проверять был ли данный человек уже на сайте или нет, есть 2 варианта сделать это, первый использовать мускул и проверять
Код: | select count(*) from some_table where ip=HTTP_REFERRER |
ну и если нет то добавлять его
или 2-й вариант который мне нравится больше создавать файл с хешем IP b проверять его наличие. Код: | <?php (file_exist(md5(HTTP_REFERRER))) ?> |
вопрос не решенный, что будет со временем тормозить больше, с увеличением данных для поиска, поиск по файловой системе или поиск в базе данных? Отпишитесь кто эксперементировал с такими вещами
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 03/04/09 в 10:45 |
принято ставить куку обычно.
и сравнивать ее, бо под одной айпишкой целая толпа сидеть может.
по поводу тормозов, я пишу в базу, в файл по некоторым причинам мне не понравилось.
статистика работает почти месяц, полет нормальный, посещаемость от 10к в сутки
update: не понравилось писать в файл не из-за размеров или одновременных обращений, а в основном из-за того что в базе намного проще делать выборки по разным условиям. Т е мне нужны сводные таблицы по реферерам, по дневным посещениям, по посещениям страниц одного вида и т д.
Последний раз редактировалось: Sterx (03/04/09 в 10:50), всего редактировалось 1 раз
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 03/04/09 в 10:45 |
непонятно...
HTTP_REFERRER - это не данный человек, а откуда он пришел на сайт
и почему нельзя использовать просто куки?
|
|
|
|
С нами с 28.02.09
Сообщения: 22
Рейтинг: 25
|
Добавлено: 03/04/09 в 12:09 |
Цитата: | и почему нельзя использовать просто куки? |
технические нюансы
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 03/04/09 в 12:11 |
тогда лучше использовать мускул, ибо при кол-ве файлов в одном месте >2k система начинает тормозить
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 03/04/09 в 14:56 |
1. Не HTTP_REFERRER, а REMOTE_ADDR
2. База быстрее.
3. Для большей лучшести сделать IP первичным ключом формата INT, первым делом преобразовывать REMOTE_ADDR в вид integer (поскольку реально это 4 шестнадцатиричных значения, дело 1 split + арифметики) и потом уже select'ить и insert'ить.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 03/04/09 в 15:18 |
щас придет Stek и скажет , что база фигня, а файлы рулят.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 03/04/09 в 15:20 |
Sterx писал: | щас придет Stek и скажет , что база фигня, а файлы рулят. |
не согласен, смотря для каких задач и целей
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 03/04/09 в 15:39 |
Sterx писал: | щас придет Stek и скажет , что база фигня, а файлы рулят. |
- Не люблю я собак.. шерсть эта, запах...
- Да вы их просто готовить не умеете.
|
|
|
|
С нами с 27.01.03
Сообщения: 156
Рейтинг: 187
|
Добавлено: 04/04/09 в 05:04 |
Dr.Syshalt писал: | 3. Для большей лучшести сделать IP первичным ключом формата INT, первым делом преобразовывать REMOTE_ADDR в вид integer (поскольку реально это 4 шестнадцатиричных значения, дело 1 split + арифметики) и потом уже select'ить и insert'ить. |
+1 за такое решение
p.s. ну и чтобы без сплита и арифметики - ip2long(), бо топикстартер уже на пхп ориентирован.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 07:54 |
Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан. по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны)
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 04/04/09 в 08:08 |
Cynic писал: | +1 за такое решение
p.s. ну и чтобы без сплита и арифметики - ip2long(), бо топикстартер уже на пхп ориентирован. |
Код: | insert ...... ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."' |
|
|
|
|
С нами с 03.02.09
Сообщения: 139
Рейтинг: 235
|
Добавлено: 04/04/09 в 09:21 |
_s_[sov] писал: | Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан. по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны) |
Пожалуйста, аргументируй хоть как-нибудь почему файлы будут работать быстрее реляционной базы данных с первичным индексом по IP и типом данных для него INT(10) UNSIGNED?
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 14:22 |
_s_[sov] писал: | Dr.Syshalt: каким образом ты собрался по ip проверить? щас везде NAT понатыкан. |
Где "везде"? Организации - да. Еще GPRS с мобильников - да. А так большинство провайдеров, сколько я видел, честный IP выдают.
И больше как-то без вариантов - либо кука, либо IP. Даже хэш из IP + User Agent не подходит, скорее всего - например, если там flash player имеется, его обращение будет засчитано как новый юзер. Хотя тоже вариант.
_s_[sov] писал: | по сабжу с файлами будет работать быстрее и защищеннее (с одной стороны) |
Бабушки во дворе так говорят?
Наверное, разработчики баз данных последние десятки лет просто трахали мозги человечеству - и тут пришел Он и всем объяснил, что держать тысячи записей в файлах куда эффективнее.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 14:36 |
iRoot, Dr.Syshalt mysql требует отдельные сервер,порт под свои задачи. если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему) во вторых скорость обращения будет выше чем к mysql. не зря же файловая система гугла построена на файлах(если интернет не пиздит). конешно я всегда был за использование БД, но в некоторых случаях оно реально ни к чему.
Dr.Syshalt да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 15:00 |
_s_[sov] писал: | iRoot, Dr.Syshalt mysql требует отдельные сервер,порт под свои задачи.
|
Отдельный сервер? Передайте траву, плиз. Тоже хочу.
И что плохого в "отдельном порте"? Это что, он "тормозит" типа?
_s_[sov] писал: |
если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)
|
Я думаю, стОит. И поподробнее, плиз
_s_[sov] писал: |
Dr.Syshaltво вторых скорость обращения будет выше чем к mysql. |
Я думаю, для многих это будет сюрпризом. Есть какие-то соображения о том, почему? Или представления о том, как эта самая файловая система организована, что она "быстрее"?
_s_[sov] писал: |
не зря же файловая система гугла построена на файлах(если интернет не пиздит). конешно я всегда был за использование БД, но в некоторых случаях оно реально ни к чему. |
Угу. На файлах. Как именно - можно ознакомиться, поставив себе Google Desktop, который создает на вашем диске два-три огромных файла, которые, на самом деле, кастомная, оптимизированная под их запросы, база данных.
_s_[sov] писал: |
Dr.Syshalt да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный. |
Домашняя сеть, 5 домов в квартале обслуживает, поди?
Хоть один крупный провайдер размера stream, wplus или ЮТК использует NAT?
Говновайдеров можно и считать за 1 IP, поскольку вероятность того, что зайдут двое с такого, стремится к нулю.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 15:23 |
Dr.Syshalt SMOKE
по сабжу, велкам айсикью, растолкую все в деталях
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 16:55 |
_s_[sov] писал: | Dr.Syshalt SMOKE
по сабжу, велкам айсикью, растолкую все в деталях |
Нет уж, начал - так публично и скажи. Нах мне надо, в ICQ "за деталями" к откровенно безграмотному.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 17:22 |
Dr.Syshalt ну так и быть уж.
mysql требует отдельные сервер,порт под свои задачи.
причем здесь тормозит или нет, лишний порт - лишняя дыра в безопасности
если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)
вапще та если делать на файлах то защита будет на уровне файловой системы а не БД
во вторых скорость обращения будет выше чем к mysql.
смотря как обращаться к БД. если по ID то согласен что файлы проигрывают а если поиск то уж извольте.
не зря же файловая система гугла построена на файлах(если интернет не пиздит). конешно я всегда был за использование БД, но в некоторых случаях оно реально ни к чему.
ну хуй его знает, сказал относительно сведений интернета. тут не буду в дискусию впадать
да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.
да бля, ВолгаТелеком на 5 компов прям ращитана, ага..
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 04/04/09 в 17:36 |
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 17:57 |
_s_[sov] писал: | Dr.Syshalt ну так и быть уж.
mysql требует отдельные сервер,порт под свои задачи.
причем здесь тормозит или нет, лишний порт - лишняя дыра в безопасности
|
Во-первых, порт можно открывать только на 127.0.0.1. Можно вообще его не открывать, а пользоваться только unix sockets. Сюрприз? Все дело - вопрос пары строк в my.cnf (или my.ini на винде). И вообще, любой грамотный админ фаерволит сервер, оставляя только те порты, которые можно показать наружу. Чтобы хотя бы защититься от закинутого на сервер php shell какого-нибудь, даже если пробьют.
Я же говорил - готовить не умеете...
_s_[sov] писал: |
если хранить инфу в файлах то во первых безопаснее (думаю не стоит объяснять почему)
вапще та если делать на файлах то защита будет на уровне файловой системы а не БД
|
И что это значит? Не то ли, что любой апачевский процесс может читать и писать туда же, раз один сподобился?
Ахуеть, безопасность... Строки в error_log типа вот такой
...не проходилось видеть? Это только по зелености, значит. Вот она, "безопасность файловой системы". По хорошему, веб сервер должен вообще не иметь права писать никуда, вот тогда это - безопасность. В крайнем случае - ломанут базу, но код свой не запустят. Поскольку, если код запустили, то тут же и база ушла.
_s_[sov] писал: |
во вторых скорость обращения будет выше чем к mysql.
смотря как обращаться к БД. если по ID то согласен что файлы проигрывают а если поиск то уж извольте.
|
В смысле? grep рулит перед SELECT, что ли?
_s_[sov] писал: |
да епт даже наш провайдер и то нат юзает. провайдер конешно хуйня но вроде крупный.
да бля, ВолгаТелеком на 5 компов прям ращитана, ага.. |
На 10, значит. Не видел и не слышал, вот поверь.
Если речь тут идет о какой серьезной защите - то разумеется, просто IP ничего не решит. Или если речь идет о данных, которые валидны более суток. Но на сессию, был/не был, для статистики - хватит за глаза.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 18:41 |
Цитата: | Во-первых, порт можно открывать только на 127.0.0.1. Можно вообще его не открывать, а пользоваться только unix sockets. Сюрприз? Все дело - вопрос пары строк в my.cnf (или my.ini на винде). И вообще, любой грамотный админ фаерволит сервер, оставляя только те порты, которые можно показать наружу. Чтобы хотя бы защититься от закинутого на сервер php shell какого-нибудь, даже если пробьют.
Я же говорил - готовить не умеете... |
ой не смеши, а?
Цитата: | И что это значит? Не то ли, что любой апачевский процесс может читать и писать туда же, раз один сподобился?
Ахуеть, безопасность... Строки в error_log типа вот такой Код: |
если используется что то дополнительно ето оно всегда имеет ошибку и нехуй тут пиздеть.
Цитата: | В смысле? grep рулит перед SELECT, что ли? |
поиск у тебя селектом?
Цитата: | На 10, значит. Не видел и не слышал, вот поверь.
Если речь тут идет о какой серьезной защите - то разумеется, просто IP ничего не решит. Или если речь идет о данных, которые валидны более суток. Но на сессию, был/не был, для статистики - хватит за глаза. |
http://www.vt.ru/
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 18:51 |
_s_[sov] писал: | ой не смеши, а? |
А что, найди порт MySQL на hardtoon.com
Найдешь - получишь конфетку. Он там есть.
_s_[sov] писал: |
если используется что то дополнительно ето оно всегда имеет ошибку и нехуй тут пиздеть.
|
Ты поэтому мозги не используешь, чтобы не взломали? Отключил для безопасности?
_s_[sov] писал: |
поиск у тебя селектом?
|
Смотря какой. Можно SELECT, можно Full Text Search встроенным средствами MySQL (не знал, что там такой есть?) или Apache Lucene. В зависимости от запросов.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/04/09 в 18:57 |
Цитата: | А что, найди порт MySQL на hardtoon.com
Найдешь - получишь конфетку. Он там есть. |
nmap найдет если постараться поискать - нах?
Цитата: | Ты поэтому мозги не используешь, чтобы не взломали? Отключил для безопасности? |
придумал неломаемое приложение? ты гений бро!
Цитата: | Смотря какой. Можно SELECT, можно Full Text Search встроенным средствами MySQL (не знал, что там такой есть?) или Apache Lucene. В зависимости от запросов. |
я думал
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 04/04/09 в 19:12 |
_s_[sov] писал: | nmap найдет если постараться поискать - нах? |
Вот и поискал бы.
Там вообще два порта - 80 и 443. Я думаю, даже ты должен знать, для чего они. Больше нету. Вообще. Даже ssh не увидишь. И уж тем более, MYSQL, который слушает только на 127.0.0.1, а еще прикрыт фаерволом. Но сервер настроен так, что сломать его не очень реально, даже если фаервол вдруг упадет.
Если ты, запустив mysql со значениями по умолчанию, оставляешь его слушать на открытом всему миру порте, если не тьюнишь таблицы и сам mysqld, который, вообще говоря, очень хорошо тьюнится.. чем это моя ошибка?
_s_[sov] писал: |
придумал неломаемое приложение? ты гений бро!
|
"Ломучесть" приложения или сайта зависит от одного - от квалификации того, кто писал, секьюрил и пр. А если все, что ты знаешь - это страшное слово nmap и "открытый порт" - ну увы.
Ну ты уж извини, но такие вот, как ты, так и пишут. LIKE или RLIKE. А вообще-то уже давно немало средств, которые поиск по базе могут вести очень быстро, любые строки ищут куда быстрее, на порядки.
|
|
|
|