Как стать автором
Обновить

Комментарии 31

Вернулся в 2007й после прочтения статьи. А как же composer, PSR-ы и прочие крутые штуки? T_T

Стаью нужно было назвать «Как не стоит делать в 2016м»
По теме написано ровно две строчки ($SxGeo = new SxGeo и далее), да и те находятся по первой же ссылке в Гугле.

MAX(`id`) и общее количество посещений — совершенно разные понятия, никак не связанные.
Делать полную выборку (SELECT *) только ради подсчета строк — не самое умное решение, мягко говоря.
Про подключение к mysql из php все написано в документации по самому php, и даже больше, чем здесь.

К чему целая статья на Хабре?
Просто когда я пытался найти данные по этой теме, все было как то кусками или отличалось от поставленных мною задач, вот и решил написать что бы было все сразу может кому-то пригодится. Конструктивная критика и предложения по улучшению и оптимизации данного кода приветствуются.
Конструктивная критика и предложения по улучшению и оптимизации данного кода приветствуются.

Предлагаю все выкинуть и поставить код google analytics на страницу.
Так может быть, надо было искать не решение конкретной задачи со всеми ее особенностями, а решение класса подобных задач, да изучать основы?
Банальный запрос «подсчет числа строк mysql» в Гугле первой же ссылкой дает описание COUNT(). Так что непонятно, как вы искали.
Что касается улучшений и оптимизации, то улучшать здесь ничего не надо. Надо переписать все полностью.
 echo '<td class="zz">'.$row['visitor'].'</td>';


Зря выводите так — в UA можно передать всё что угодно, JS код, например, который выполнится.
Конструктивная критика и предложения по улучшению и оптимизации данного кода приветствуются.
про PDO вы наверное не в курсе))) mysql_connect это сильно)
У меня PHP 7 подходит только mysqli_connect и иже с ними
простите, но http://php.net/manual/ru/pdo.installation.php
PDO и драйвер PDO_SQLITE включены по умолчанию в PHP, начиная с версии 5.1.0.
все же здесь mysqli, но за PDO обидно, да
чем вам ООП не угодило?
Если говорить в контексте статьи, здесь нет даже намека на ООП. К тому же, я не заявлял, что меня не устраивает ООП, вам показалось
Ну нравиться мне так больше писать
new mysqli, $misqli -> query()

что ж теперь поделаешь.
Лучше бы подсказали может это можно как то улучшить, оптимизировать и т.д…
Так о чем и речь. Я подсказываю, как можно улучшить: использовать PDO с его prepared statements и возможностью работать не только с MySQL. Конкатенация запросов ни к чему хорошему не приводит.

К тому же, если вы такой ярый сторонник ООП, PDO вам должен только понравиться. Скажу по секрету, там тоже создаются инстансы классов, с которым потом вы работаете. Почитайте, в этом нет ничего плохого :)
Извините, но мы не станем. Откройте сами книжки по mysql, php и c и прочтите их. Вы только сделали первый шаг. Но это не значит что вы можете уже учить кого-то что-то делать.
Не понимаю — почему НЛО пропускает такое?
Самое обидное, что такое чаще всего и пишут в книжках по mysql и php. Тут скорее можно порекомендовать изучать исходники проектов на github.
чтобы повысить самоеценку кармодрочеров
//Выявляем поисковых ботов
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 выглядит брутальней.


Пишите ещё, но лучше по пятницам!

накинулсь… composer, PSR, PDO, ОПП… профессионалы млять собрались… вроде бы и правильно говорят, но когда в таком тоне, нах** всех охота послать.
Воспринимать критику тоже нужно уметь
по количество дизлайков легко можно вычислить количество профессиАналов.
Это уже не настолько смешно, насколько грустно. На самом хабре есть триллион статей как не нужно работать с базами, как не стоит верстать таблицы, и особенно как не нужно выводить верстку используя echo. Но нет блин, человеки пишут и учат как надо. Сидишь потом и думаешь что покуем базы geoIp, зря делаем безопасный код, зря собираем базы действующих ботов, и так далее.

Доколе чорд побери.

люди всю жизнь считают, что пхп — плохой язык, из-за такого кода =(

Статья смахивает на тролинг
НЛО прилетело и опубликовало эту надпись здесь
Вы правы я только месяц изучаю PHP.
чем метрика то не угодила?
вы о чем?
Ну как минимум можно было использовать вот эти сильнейшие разработки:
https://metrika.yandex.ru
http://www.liveinternet.ru/add
https://www.google.com/analytics/

Ведь там целые отделы работают над качеством измерения параметров. Люди собирают конференции, работают с огромными данными. Предоставляются совершенно невообразимые отчеты.
Мне кажется можно было сперва просто посмотреть на эти сервисы.

PS по теме статьи. Я прекрасно понимаю что вы учитесь, и делаете первые шаги, сталкиваясь с первыми трудностями, и испытываете первые радости решения этих трудностей. Вам хочется поделиться радотью с такими же начинающими программистами как вы. Это похвально, и так держать!
Но есть и грустная составляющаяя этой статьи. Многие читающие хабр люди в разы продвинутее вас, они потратили многие тысячи человекочасов на решение подобных проблем. И ваша статья выглядит откровенным плевком в лицо таким людям.
Мне кажется нужно в самом начале статьи предупреждать о том, что дальшейшее исключительно для новичков.А еще лучше не выкладывать подобные статьи, ведь их начнут копипастить все кому не лень, и потом подобные решения начнут расползаться по небольшим проектикам.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории