Комментарии 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 по теме статьи. Я прекрасно понимаю что вы учитесь, и делаете первые шаги, сталкиваясь с первыми трудностями, и испытываете первые радости решения этих трудностей. Вам хочется поделиться радотью с такими же начинающими программистами как вы. Это похвально, и так держать!
Но есть и грустная составляющаяя этой статьи. Многие читающие хабр люди в разы продвинутее вас, они потратили многие тысячи человекочасов на решение подобных проблем. И ваша статья выглядит откровенным плевком в лицо таким людям.
Мне кажется нужно в самом начале статьи предупреждать о том, что дальшейшее исключительно для новичков.А еще лучше не выкладывать подобные статьи, ведь их начнут копипастить все кому не лень, и потом подобные решения начнут расползаться по небольшим проектикам.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Определение местоположения пользователя по IP и создание счетчика посещений