Comments 31
Вернулся в 2007й после прочтения статьи. А как же composer, PSR-ы и прочие крутые штуки? T_T
Стаью нужно было назвать «Как не стоит делать в 2016м»
Стаью нужно было назвать «Как не стоит делать в 2016м»
По теме написано ровно две строчки ($SxGeo = new SxGeo и далее), да и те находятся по первой же ссылке в Гугле.
MAX(`id`) и общее количество посещений — совершенно разные понятия, никак не связанные.
Делать полную выборку (SELECT *) только ради подсчета строк — не самое умное решение, мягко говоря.
Про подключение к mysql из php все написано в документации по самому php, и даже больше, чем здесь.
К чему целая статья на Хабре?
MAX(`id`) и общее количество посещений — совершенно разные понятия, никак не связанные.
Делать полную выборку (SELECT *) только ради подсчета строк — не самое умное решение, мягко говоря.
Про подключение к mysql из php все написано в документации по самому php, и даже больше, чем здесь.
К чему целая статья на Хабре?
Просто когда я пытался найти данные по этой теме, все было как то кусками или отличалось от поставленных мною задач, вот и решил написать что бы было все сразу может кому-то пригодится. Конструктивная критика и предложения по улучшению и оптимизации данного кода приветствуются.
Конструктивная критика и предложения по улучшению и оптимизации данного кода приветствуются.
Предлагаю все выкинуть и поставить код google analytics на страницу.
Так может быть, надо было искать не решение конкретной задачи со всеми ее особенностями, а решение класса подобных задач, да изучать основы?
Банальный запрос «подсчет числа строк mysql» в Гугле первой же ссылкой дает описание COUNT(). Так что непонятно, как вы искали.
Что касается улучшений и оптимизации, то улучшать здесь ничего не надо. Надо переписать все полностью.
Банальный запрос «подсчет числа строк mysql» в Гугле первой же ссылкой дает описание COUNT(). Так что непонятно, как вы искали.
Что касается улучшений и оптимизации, то улучшать здесь ничего не надо. Надо переписать все полностью.
echo '<td class="zz">'.$row['visitor'].'</td>';
Зря выводите так — в UA можно передать всё что угодно, JS код, например, который выполнится.
про PDO вы наверное не в курсе))) mysql_connect это сильно)
У меня PHP 7 подходит только mysqli_connect и иже с ними
все же здесь mysqli, но за PDO обидно, да
чем вам ООП не угодило?
Если говорить в контексте статьи, здесь нет даже намека на ООП. К тому же, я не заявлял, что меня не устраивает ООП, вам показалось
Ну нравиться мне так больше писать
что ж теперь поделаешь.
Лучше бы подсказали может это можно как то улучшить, оптимизировать и т.д…
new mysqli, $misqli -> query()
что ж теперь поделаешь.
Лучше бы подсказали может это можно как то улучшить, оптимизировать и т.д…
Так о чем и речь. Я подсказываю, как можно улучшить: использовать PDO с его prepared statements и возможностью работать не только с MySQL. Конкатенация запросов ни к чему хорошему не приводит.
К тому же, если вы такой ярый сторонник ООП, PDO вам должен только понравиться. Скажу по секрету, там тоже создаются инстансы классов, с которым потом вы работаете. Почитайте, в этом нет ничего плохого :)
К тому же, если вы такой ярый сторонник ООП, PDO вам должен только понравиться. Скажу по секрету, там тоже создаются инстансы классов, с которым потом вы работаете. Почитайте, в этом нет ничего плохого :)
Извините, но мы не станем. Откройте сами книжки по mysql, php и c и прочтите их. Вы только сделали первый шаг. Но это не значит что вы можете уже учить кого-то что-то делать.
Не понимаю — почему НЛО пропускает такое?
Не понимаю — почему НЛО пропускает такое?
//Выявляем поисковых ботов
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {
$visitor='YandexBot';
} elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {
$visitor='Googlebot';
} else {
$visitor=$_SERVER['HTTP_USER_AGENT'];
}"Капитан Очевидность выявляет ботов" :)
$ip = $mysqli->real_escape_string($ip);
$date = $mysqli->real_escape_string($date);
$host = $mysqli->real_escape_string($host);
$region = $mysqli->real_escape_string($region);
$country = $mysqli->real_escape_string($country);
$city = $mysqli->real_escape_string($city);
$visitor = $mysqli->real_escape_string($visitor);
if ($query = $mysqli -> query("INSERT INTO `pre_visitors` (date, visitor, ip, country, region, city, host) VALUES ('".$date."', '".$visitor."', '".$ip."', '".$country."', '".$region."', '".$city."', '".$host."')")){
//printf("%d строк вставлено.\n", $mysqli->affected_rows);
}Неблагодарная работа у программистов! И это вам повезло ещё! А представляете, если бы ещё и адрес выводился, вроде address_line1, address_line2, ..., address_line4, postal_code, district?
<td class="zz">"zz" слишком длинное название для класса, попробуйте "z".
PADDING-LEFTЕсли писать капслоком, то CSS выглядит брутальней.
Пишите ещё, но лучше по пятницам!
Это уже не настолько смешно, насколько грустно. На самом хабре есть триллион статей как не нужно работать с базами, как не стоит верстать таблицы, и особенно как не нужно выводить верстку используя echo. Но нет блин, человеки пишут и учат как надо. Сидишь потом и думаешь что покуем базы geoIp, зря делаем безопасный код, зря собираем базы действующих ботов, и так далее.
Доколе чорд побери.
Доколе чорд побери.
люди всю жизнь считают, что пхп — плохой язык, из-за такого кода =(
Статья смахивает на тролинг
чем метрика то не угодила?
вы о чем?
Ну как минимум можно было использовать вот эти сильнейшие разработки:
https://metrika.yandex.ru
http://www.liveinternet.ru/add
https://www.google.com/analytics/
Ведь там целые отделы работают над качеством измерения параметров. Люди собирают конференции, работают с огромными данными. Предоставляются совершенно невообразимые отчеты.
Мне кажется можно было сперва просто посмотреть на эти сервисы.
PS по теме статьи. Я прекрасно понимаю что вы учитесь, и делаете первые шаги, сталкиваясь с первыми трудностями, и испытываете первые радости решения этих трудностей. Вам хочется поделиться радотью с такими же начинающими программистами как вы. Это похвально, и так держать!
Но есть и грустная составляющаяя этой статьи. Многие читающие хабр люди в разы продвинутее вас, они потратили многие тысячи человекочасов на решение подобных проблем. И ваша статья выглядит откровенным плевком в лицо таким людям.
Мне кажется нужно в самом начале статьи предупреждать о том, что дальшейшее исключительно для новичков.А еще лучше не выкладывать подобные статьи, ведь их начнут копипастить все кому не лень, и потом подобные решения начнут расползаться по небольшим проектикам.
https://metrika.yandex.ru
http://www.liveinternet.ru/add
https://www.google.com/analytics/
Ведь там целые отделы работают над качеством измерения параметров. Люди собирают конференции, работают с огромными данными. Предоставляются совершенно невообразимые отчеты.
Мне кажется можно было сперва просто посмотреть на эти сервисы.
PS по теме статьи. Я прекрасно понимаю что вы учитесь, и делаете первые шаги, сталкиваясь с первыми трудностями, и испытываете первые радости решения этих трудностей. Вам хочется поделиться радотью с такими же начинающими программистами как вы. Это похвально, и так держать!
Но есть и грустная составляющаяя этой статьи. Многие читающие хабр люди в разы продвинутее вас, они потратили многие тысячи человекочасов на решение подобных проблем. И ваша статья выглядит откровенным плевком в лицо таким людям.
Мне кажется нужно в самом начале статьи предупреждать о том, что дальшейшее исключительно для новичков.А еще лучше не выкладывать подобные статьи, ведь их начнут копипастить все кому не лень, и потом подобные решения начнут расползаться по небольшим проектикам.
Sign up to leave a comment.
Определение местоположения пользователя по IP и создание счетчика посещений