Категория: Примеры кода

Оставлю просто заметочку о том, как можно получить ip адрес пользователя, адреса прокси и т.п.  /** * Get user ip address * @param bool $single * @return array|null|string */ public function getUserIPAddresses($single = false) { $ip_addresses = []; if($single) { return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; } $headers = [ 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ]; foreach ($headers as $header) { if(isset($_SERVER[$header])) { foreach (explode(',', $_SERVER[$header]) as $ip){ $ip = trim($ip); if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false){ $ip_addresses[$ip] = $ip; } } } } return $ip_addre...

08.09.2016

И так, чтобы попытаться обнаружить ботов поисковых машин у себя на сайте, можно воспользоваться следующим кодом: function isBot() { $bots = array( 'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele', 'yetibot','picsearch','sape.bot','sape_context','gigabot','snapbot','alexa.com', 'megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot','yanga.co.uk', 'scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com', 'dataparksearch','google-sitemaps','appEngine-google','feedfetcher-google', 'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru', 'googlealert.com','seo-rus.com','yaDirectBot','yandeG','yandex','AltaVista', 'yandexSomething','Copyscape.com','AdsBot-Google','domaintools.com','YandexImages','YandexWebmaster', 'Nigma.ru','bing.com','dotnetdotcom','Alexa search engine','AllTheWe...

18.11.2015

Небольшой пример того, как можно организовать у себя на сайте генерацию алиаса (alias) и ключевых слов (keywords) при написании статей. В большинстве случаев используется в административной части сайта для упрощения написания статей. И так, для генерации алиасов я перевожу написанный заголовок статьи на английский, делаю нижний регистр символов, убираю все знаки кроме букв, цифр и тире. Генерация происходит после того, как написан заголовок. В модели нашей статьи, например backend\models\Article\Article.php описываем правило проверки алиаса (alias): public function rules() { return [ [['title', 'text', 'alias', 'publish', 'catid', 'created'], 'required'], [['text'], 'string'], [['metadatajson', 'image'], 'safe'], [['publish', 'catid'], 'integer'], [['title', 'alias',], 'string', 'max' => 255], [['alias'], 'match', 'pattern' => '/^[a-zA-Z0-9-]+$/', 'message' => 'Только латинские...

18.11.2015