Необоснованный profile user php. Создание профиля зарегистрированного пользователя. Скрываем «Горячие клавиши»
В эпоху деоффшоризации банки не могут позволить себе работать со всеми клиентами. Особенно остро эту тенденцию почувствовали клиенты-нерезиденты, которых пристальнейшим образом изучают отделы compliance всех международных банков. Одна из целей таких проверок – выяснить, не является ли юрлицо так называемой shell компанией .
Что такое shell компания?
Shell компания, говоря упрощенно, это юридическое лицо, которое не ведет реальной хозяйственной деятельности по месту регистрации, не имеет сотрудников и существует, де-юре, в виде папки с документами . Банки, проводя проверку юрлиц – потенциальных и действующих клиентов, выделяют три признака, при соответствии хотя бы одному из них фирму, скорее всего, признают shell компанией и процесс открытия на нее нового или обслуживание существующего счета усложнится (а вероятнее всего банк откажется от сотрудничества с такой компанией вообще).
Три признака shell компании: признак первый – юрисдикция регистрации
Если юридическое лицо зарегистрировано в стране, законодательство которой не предусматривает предоставления компаниями годовой отчетности – это может стать причиной признания фирмы shell компанией. Такими юрисдикциями сейчас являются все классические оффшоры, включая БВО, Белиз, Сейшельские острова. Также могут возникнуть дополнительные вопросы к компаниям формы LP (ограниченные партнерства).
Но есть еще одно условие: «родная» юрисдикция юрлица должна быть включена в утвержденный банком список «рисковых» юрисдикций. Каждый банк самостоятельно составляет перечень таких юрисдикций.
Признак второй: отсутствие substance
Фирма без офиса, персонала и партнеров не может вести реальной экономической деятельности. Учтите, что наличие почтового ящика или контактного номера не заменит офис и не обезопасит фирму от статуса shell компании. Банк обязательно попросит компанию предоставить договор аренды офиса. Важно также наличие реальных сотрудников, а в цифровую эпоху – и интернет сайта.
Иными словами, компании нужен substance , узнать больше об этом понятии вы можете по .
Признак третий: нет реальной хозяйственной деятельности
Юрлицо, не предоставившее в банк документальных доказательств реальной экономической деятельности будет признано shell компанией. Банк хочет понять, чем конкретно занимается компания, как она ведет дела, где совершается ее деятельность. Так как в наше время на слово банки не верят, все нужно доказывать документально. Такими подтверждениями могут быть, к примеру, договора с контрагентами или иные оформленные документально сделки, документы, подтверждающие платежи по договору и прочее.
Необходимо учитывать, что банки будут проверять все, что им предоставят и если в учреждении сочтут, что экономическая деятельность юрлица не значительна и не предоставляет ценности – ее признают shell компанией.
Пока что все вышеизложенное актуально, в первую очередь, для Латвии, где ФКТК (Комиссия рынка финансов и капитала) выпустила разъяснения и рекомендации по поводу работы с shell компаниями. Но нет сомнений, что такой подход станет глобальным: согласно предписаниям OECD, с 2019 года банки не смогут обслуживать структуры без substance. Так что самое время привести свои компании в порядок.
Общие вопросы
Q: Профайлер показывает активность сервера, но не показывает всех запросов и сессий.
A: Не забудьте нажать кнопку Старт для начала захвата сессий.
Q: Удалось подключится к MySQL, но Сессии не показываются.
A: Neor Profile SQL работает как прокси сервер. Это значит что могут быть показаны только сессии проходящие через профайлер. Ваше приложение (или сайт) должен быть соединяться с профайлером как с обычным MySQL сервером. Профайлер использует только TCP входящие соединения. И тогда вы увидите результат в закладке Сессии.
Q: Почему в некоторых сессиях запросы с нулевым временем?
A: Запросы с нулевым временем выполняются крайне быстро без задержки. Такие запросы могли быть закешированы СУБД или выполняются очень быстро, например если у вас мощный сервер и хорошо оптимизированные таблицы.
Q: Что обозначает % во времени и длительности в сессии?
A: "Время %" - это доля от общего времени выполнения сессии. "Длительность %" - это доля от самого длительного запроса в сессии (соотношение к самому долгому запросу).
Q: Я использую JetProfiler и он в настройке проще.
A: JetProfiler получает информацию от MySQL сервера через команду "show status" и не может получить всю информацию на сервере, так как работает дискретно. Neor Profile SQL показывает абсолютно все запросы к базе данных. И это требует настройки вашего приложения для направления потока запросов через профайлер.
Q: Кнопка Профилировать в закладке SQL не показывает результат
A: Функция профилирования в SQL редакторе работает через команду SHOW PROFILES, которая была добавлена в MySQL Community Server начиная с версии 5.0.37. Проверьте свою версию сервера MySQL.
Q: Можно ли сделать профайлер консольным?
A: Для консоли используйте связку логов СУБД и tail, или специальные консольные инструменты, которых довольно много. Neor Profile SQL - это приложение для оконной ОС, которое предназначено для размещения на системе у разработчика.
Q: Профайлер работает, но почему то не отображает главный график статистики?
A: Главный график использует команду SHOW STATUS для основного сервера. Возможно у вас нет прав для запуска данной команды на сервере. Убедитесь в доступности прав на эту команду.
Q: Как запустить установщик в тихом режиме?
A: sqlprofiler-4.1.1.exe /S /D:C:Program Files (x86)Neor Profile SQL
Windows
Q: Как проверить соединение Профайлера?
A:
Используйте консольный клиент MySQL для соединения с профайлером. Если вы увидите свою сессию в закладке Сессии, это значит что все настроено верно.
Например:
Потом выполните простую SQL команду:
show tables;
И посмотрите что получилось в закладке Сессии в профайлере.
Linux
Q: Не могу соединиться через localhost.
A:
Linux пытается ассоциировать localhost с сокетным соединением, но Neor Profile SQL работает только с TCP соединениями.
Установите в профайлере серверный адрес 127.0.0.1 вместо localhost. Тоже самое сделаете в настройках своего приложения.
Например:
mysql --host=127.0.0.1 --user=LOGIN --password=PASSWORD --port=4040
Q: Не могу соединиться с 127.0.0.1.
A: Проверьте тип соединения в вашем приложении. Можно также воспользоваться типом соединения local socket, в котором не требуется вводить значение порта.
Q: Как установить Neor Profile SQL под OpenSUSE?
A: На сегодняшний момент мы поддерживаем только пакет DEB, который работает под Ubuntu, Debian и совместимых Linux дистрибутивах. Вы можете сделать RPM файл своими силами и помочь тем самым.
Q: Почему я не могу перехватить запросы Sysbench?
A:
Профайлер использует только TCP входящие соединения. Запускайте Sysbench с параметрами хоста и порта:
sysbench --test=oltp --mysql-host=127.0.0.1 --mysql-port=4040
--mysql-user=root --mysql-password=password prepare
Mac OS X
Q: Профайлер не может соединиться к серверу MAMP MySQL.
A: Проблема сетевого соединения в конфигурации MySQL:
- МАМР
Бесплатная версия – скопируйте стандартный MySQL конфиг в папку
/Applications/MAMP/conf/my.cnf
Pro версия – откройте меню FILE – EDIT – MySQL template - в конфигурации my.cnf удалите строку skip-networking
- в Настройках профайлера измените адрес хоста БД с localhost на 127.0.0.1
Изменение порта MySQL в вашем скрипте
В Neor Profile SQL порт по умолчанию 4040. Для сбора SQL запросов вы должны изменить в вашем скрипте стандартные значения подключения к MySQL хоста и порта 3306. Ниже приведены примеры как это сделать.
string connStr = "server=127.0.0.1;port=4040;
database=YOUR_DATABASE;user=YOUR_USER;password=YOUR_PASSWORD;";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html
Изменение порта в популярных CMS
Wordpress
File: wp-config.php
Code: define("DB_HOST", "localhost:4040
");
PrestaShop
File: config/settings.inc.php
Code: define("_DB_SERVER_", "localhost:4040
");
OpenCart
File: config.php
Code: define("DB_HOSTNAME", "localhost:4040
");
Этот урок хотелось бы посвятить созданию личного профиля для зарегистрированных пользователей (дополнение к уроку Создание регистрации пользователей на сайте). Теперь пользователи смогут добавить свой аватар, изменить имя и фамилию, добавить место проживания и день рождения. Для этого в таблицу users добавим несколько полей:
Теперь создадим страницу профиля profile.php
и добавим на странице index.php
ссылку на нее
Echo "
Мой профиль";
Теперь код самой страницы profile.php
Профиль
"; echo "".$array["name_user"]." ".$array["lastname"]."
"; switch ($array["birthdate_month"]){//Превращаем номер месяца в название case "1" : $month = "Января"; break; case "2" : $month = "Февраля"; break; case "3" : $month = "Марта"; break; case "4" : $month = "Апреля"; break; case "5" : $month = "Мая"; break; case "6" : $month = "Июня"; break; case "7" : $month = "Июля"; break; case "8" : $month = "Августа"; break; case "9" : $month = "Сентября"; break; case "10" : $month = "Октября"; break; case "11" : $month = "Ноября"; break; case "12" : $month = "Декабря"; break; } echo "Дата регистрации: ".$array["reg_date"]."
"; echo "Пол: ".$array["sex"]."
"; echo "День рождения: ".$array["birthdate_day"]." ".$month." ".$array["birthdate_year"]."
"; echo "Страна: ".$array["country"]."
"; echo "Город: ".$array["city"]."
"; if($_GET["id"] == $id_user){//Редактировать профиль может только хозяин echo "Редактировать профиль"; } }else{ print <<
РегистрацияВосстановление пароля HERE; } ?>
Естественно перейдя на эту страницу, мы увидим стандартную аватарку noAvatar.jpg и возможно имя и фамилию, если пользователь при регистрации указал их, остальные пункты будут пусты. В самом конце этой страницы есть ссылка на страницу редактирование профиля edit.php . Код этой страницы очень легок и состоит из форм для ввода данных. Из-за довольно большого объема приводить здесь полностью я его не буду, а приведу лишь часть, полностью взять его можно будет в исходных файлах.
Все остальные формы аналогичны и будут ссылаться на один обработчик save_edit.php , который и будет вносить изменения в базу данных. Он также имеет достаточно большой код, и здесь я его тоже приводить не буду, а лишь немного расскажу, что в нем происходит (полностью код вы также с можете в исходных файлах). Первым делом мы создаем аватарку, если пользователь ее загрузил конечно, в противном случае оставляем стандартную. Если это так, то первым делом мы загружаем в папку avatars (кстати, создайте эту папку и поставьте ей права на запись 755) предварительно проверив с разрешенными расширениями. Затем создается новое изображение форматом зависящее от выбранного режима: $rezim = 1 создается квадратная картинка, $rezim = 2 картинка пропорциональная исходной. Также надо задать ширину создаваемого изображения $w и качество $quality . Созданное изображение мы сохраняем в формате jpg с помощью функции imagejpeg и генерируем для него случайное имя. Теперь нужно удалить старое изображение и обновить в базе данных на новое. На этом с изображениями все.
Все остальные пункты данного файла предназначены для обновления личных данных о пользователя и представляют собой простые запросы к базе данных для обновления полей. Предварительно перед обновлением проверяется существование входящих переменных и их безопасность с помощью stripslashes
и htmlspecialchars
. Если обновление происходит успешно, то мы сразу перенаправляем пользователя на страницу профиля.
Теперь сделаем так чтобы вошедший пользователь смог видеть всех остальных зарегистрированных пользователей. Для этого создадим страницу user.php
, которая в цикле будет выводить всех пользователей.