G

geminisf

+11
Репутация
24
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Переменные в запрос к базе 26 июня 2019 в 16:49
Ris, спасибо, но не помогло. Присвоил переменным имена таблиц и колонок, и пробую использовать в строке запроса именно эти переменные. И если их заключать в скобки и если по старому. Ничего не понимаю. Всю голову сломал. Пробовал в $table_column["table_name"] и $table_column["column_name"] двойные кавычки менять на одинарные. Не помогает.
#1 [ЕСТЬ РЕШЕНИЕ] Переменные в запрос к базе 26 июня 2019 в 12:58
Доброго всем дня, уважаемые! Прошу помощи у знающих. Есть файл, лежит в корне сайта. В нём следующий код:
  1. <?php
  2.  
  3. $db = mysqli_connect("здесь то что нужно", "здесь то что нужно", "здесь то что нужно","здесь то что нужно");
  4.  
  5. printf("Не удалось подключиться: %s\n", mysqli_connect_error());
  6. exit();
  7. }
  8.  
  9. $result = mysqli_query($db,"SELECT table_name, column_name, data_type
  10. FROM information_schema.columns
  11. WHERE table_schema = 'здесь имя базы'
  12. AND data_type IN ('char', 'varchar', 'binary', 'varbinary','tinytext', 'text', 'mediumtext', 'longtext', 'tinyblob', 'blob', 'mediumblob', 'longblob')'");
  13.  
  14. while ($table_column = $result->fetch_assoc()) {
  15. $sql_news = mysqli_query($db,"SELECT * FROM ".$table_column["table_name"]." WHERE ".$table_column["column_name"]." LIKE '%000/u41/0/0/a9830fd1.jpg%'");
  16. if ($sql_news) {
  17. $count = mysqli_num_rows($sql_news);
  18. }
  19. if ($count > 0){
  20. echo 'Нашли совпадения '.$count.'';
  21. echo $table_column["table_name"].' '.$table_column["column_name"].' ';
  22. }
  23. }
  24. ?>
Код прекрасно отрабатывает и находит то, что нужно.
И есть функция

  1. public function search2($file){
  2.  
  3. $config = cmsConfig::getInstance();
  4. $db_host = $config->db_host;
  5. $db_base = $config->db_base;
  6. $db_user = $config->db_user;
  7. $db_pass = $config->db_pass;
  8.  
  9. $db = mysqli_connect($db_host, $db_user, $db_pass, $db_base);//подключаемся к базе
  10. if (mysqli_connect_errno()) { //проверяем соединение
  11. fwrite($fp, "Не удалось подключиться: ".mysqli_connect_error()." \r\n");
  12. exit();
  13. }
  14.  
  15. $result = mysqli_query($db,"SELECT table_name, column_name, data_type
  16. FROM information_schema.columns
  17. WHERE table_schema = '".$db_base."'
  18. AND data_type IN (
  19. 'char', 'varchar', 'binary', 'varbinary',
  20. 'tinytext', 'text', 'mediumtext', 'longtext',
  21. 'tinyblob', 'blob', 'mediumblob', 'longblob')");
  22.  
  23. while ($table_column = $result->fetch_assoc()) {
  24.  
  25. $sql_news = mysqli_query($db,"SELECT * FROM ".$table_column["table_name"]." WHERE ".$table_column["column_name"]." LIKE '%000/u41/0/0/a9830fd1.jpg%'");
  26. if ($sql_news) {
  27. $count = mysqli_num_rows($sql_news);
  28. }
  29. if ($count > 0){
  30. fwrite($fp, "Найден: "." \r\n");
  31. }else{
  32. fwrite($fp, "Не найден: "." \r\n");
  33. }
  34. }
  35. }
Функция не находит ничего в этой же базе. Проверил значения переменных. Вроде все передаются правильно. А вот если вместо запроса с переменными прописать вот так "SELECT * FROM cms_con_posts WHERE picture LIKE '%000/u41/0/0//a9830fd1.jpg%'", то находим то, что ищем. Пробовал вывести строку запроса, которая формируется с переменными — выдаёт точную копию строки "SELECT * FROM cms_con_posts WHERE picture LIKE '%000/u41/0/0//a9830fd1.jpg%'"
#2 Zauth: авторизация с помощью соц. сетей 16 июня 2019 в 11:27

На демо работает вход через mail.ru bergorod.ru/auth/login
В понедельник будет обновление инструкций и, скорее всего, обновление.

Если есть желающие, прошу протестировать.

Zau4man

Работает.
#3 Zauth: авторизация с помощью соц. сетей 6 июня 2019 в 19:59

В следующем обновлении будет майл.ру

Zau4man
Это радует. Спасибо. Буду брать.
#4 Zauth: авторизация с помощью соц. сетей 6 июня 2019 в 09:27
Уважаемый Zau4man, не могу понять вашего упорного не желания добавить в компонент авторизацию через mail.ru. На мой взгляд это самая простая реализация. Здесь добавляется сайт. На открывшейся странице, в первую очередь, соглашаемся с правилами размещения сайтов. Далее заполняем форму:

Название будет "Mail.ru Auth". Адрес главной страницы — это тот url адрес страницы, где будет внедрён основной функционал: localhost/mailru-auth. Таким образом, на локальном сервере поместим наши файлы в каталог "mailru-auth".

Далее нажимаем на кнопку "Продолжить" и переходим к следующему шагу. На третьем шаге необходимо скачать файл receiver.html, поместить его в каталог вашего проекта и дать Mail.ru возможность проверить существование данного файла. Поскольку наш пример предназначен для работы на локальном сервере, то мы этого делать не будем. Просто нажимаем кнопку "Продолжить", и на следующей странице "Пропустить". Если же вы создаёте пример для приложения работающего на каком-то реальном сервере, то сначала пройдите процедуру проверки наличия файла receiver.html, иначе функциональность вашего примера может быть ограничена.

Итак, после успешного добавления сайта в сервис Mail.ru, нам должно выдастся следующее сообщение со специальными параметрами:


А ниже пример получения данных о пользователе (код нужно вставить в файл php)
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
  6. <title>Аутентификация через Mail.ru</title>
  7. </head>
  8. <body>
  9.  
  10. <?php
  11.  
  12. $client_id = '702253'; // ID
  13. $client_secret = '81fefec83a3ff8903af3fc4ae7bcc18e'; // Секретный ключ
  14. $redirect_uri = 'http://localhost/mailru-auth'; // Ссылка на приложение
  15.  
  16. $url = 'https://connect.mail.ru/oauth/authorize';
  17.  
  18. $params = array(
  19. 'client_id' => $client_id,
  20. 'response_type' => 'code',
  21. 'redirect_uri' => $redirect_uri
  22. );
  23.  
  24. echo $link = '<p><a href="' . $url . '?' . urldecode(http_build_query($params)) . '">Аутентификация через Mail.ru</a></p>';
  25.  
  26. if (isset($_GET['code'])) {
  27. $result = false;
  28.  
  29. $params = array(
  30. 'client_id' => $client_id,
  31. 'client_secret' => $client_secret,
  32. 'grant_type' => 'authorization_code',
  33. 'code' => $_GET['code'],
  34. 'redirect_uri' => $redirect_uri
  35. );
  36.  
  37. $url = 'https://connect.mail.ru/oauth/token';
  38.  
  39. $curl = curl_init();
  40. curl_setopt($curl, CURLOPT_URL, $url);
  41. curl_setopt($curl, CURLOPT_POST, 1);
  42. curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
  43. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  44. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  45. $result = curl_exec($curl);
  46. curl_close($curl);
  47.  
  48. $tokenInfo = json_decode($result, true);
  49.  
  50. if (isset($tokenInfo['access_token'])) {
  51. $sign = md5("app_id={$client_id}method=users.getInfosecure=1session_key={$tokenInfo['access_token']}{$client_secret}");
  52.  
  53. $params = array(
  54. 'method' => 'users.getInfo',
  55. 'secure' => '1',
  56. 'app_id' => $client_id,
  57. 'session_key' => $tokenInfo['access_token'],
  58. 'sig' => $sign
  59. );
  60.  
  61. $userInfo = json_decode(file_get_contents('http://www.appsmail.ru/platform/api' . '?' . urldecode(http_build_query($params))), true);
  62. if (isset($userInfo[0]['uid'])) {
  63. $userInfo = array_shift($userInfo);
  64. $result = true;
  65. }
  66. }
  67.  
  68. if ($result) {
  69. echo "Социальный ID пользователя: " . $userInfo['uid'] . '<br />';
  70. echo "Имя пользователя: " . $userInfo['nick'] . '<br />';
  71. echo "Email: " . $userInfo['email'] . '<br />';
  72. echo "Ссылка на профиль пользователя: " . $userInfo['link'] . '<br />';
  73. echo "Пол пользователя: " . $userInfo['sex'] . '<br />';
  74. echo "День Рождения: " . $userInfo['birthday'] . '<br />';
  75. echo '<img src="' . $userInfo['pic_small'] . '" />'; echo "<br />";
  76. }
  77. }
  78.  
  79.  
  80.  
  81.  
  82.  
  83. ?>
  84.  
  85. </body>
  86. </html>
С удовольствием купил бы компонент, но на сайте уже есть пользователи, зарегистрированные через mail.ru с помощью ulogin.
#5 По редакторам в 2.12.2 23 мая 2019 в 15:40

Пресет не пробовал, но redactor нормально подключается:
/novosti/release2122.html#comment_110874

Ris

Всё ж таки лучше, если бы можно было в личных сообщениях подключать пресеты стандартным способом.
#6 Общая лента для типов контента 22 мая 2019 в 15:22
Zau4man,

который по cron дергает записи из типов контента и собирает в одной таблице

Zau4man
Может для этого hook использовать.
#7 [ЕСТЬ РЕШЕНИЕ] Redactor после обновления до 2.12.2 21 мая 2019 в 14:27
vikont, Понял, спасибо
#1 [ЕСТЬ РЕШЕНИЕ] Redactor после обновления до 2.12.2 21 мая 2019 в 14:15
Доброго всем дня, уважаемые. До обновления движка до версии 2.12.2 при прокрутке страницы, фиксировалась панель инструментов редактора Redactor. Теперь этого нет. Может надо пресет создавать в новом компоненте Wysiwyg редакторы?
#8 [ЕСТЬ РЕШЕНИЕ] Адрес админки 19 мая 2019 в 20:13

Где в базе посмотреть адрес?

@v01ant
#9 Выбор редактора для Комментариев 10 апреля 2019 в 12:21
alkokrolik, Поддерживаю каждое слово. Нужен один редактор со всеми перечисленными возможностями.
#10 Обновление до 2.12 29 марта 2019 в 18:45

Уважаемые! Доброго всем дня! Обращаюсь к вам с необычной просьбой — добавьте, пожалуйста, хотя бы один + в карму, а то не могу ни черта, только в существующих темах на форуме писать.

@geminisf
Спасибо, люди добрые!
#11 Обновление до 2.12 29 марта 2019 в 17:59
Уважаемые! Доброго всем дня! Обращаюсь к вам с необычной просьбой — добавьте, пожалуйста, хотя бы один + в карму, а то не могу ни черта, только в существующих темах на форуме писать.
#12 Zauth: авторизация с помощью соц. сетей 28 марта 2019 в 20:22
Zau4man, У меня на сайте есть пользователи зарегистрированные через mail.ru с помощью uLogin. Будет ли в будущем представлена возможность входа через mail.ru?
#13 Конструктор тем для InstantCMS 2 28 марта 2019 в 20:06

Дорогие друзья! Хорошая новость. В ближайшие дни будет патч Конструктора тем!

Алексей Тимофеев

Спасибо за хорошую новость dance
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.