Получается, вытягиваем строку, про которую mb_detect_encoding говорит, что она в ASCII, то есть практически в utf-8. Просто так без обработки она имеет кракозябровый вид. Теперь, после попадания строки к нам в скрипт с кодировкой ANSI, она получает кодировку windows-1251. Далее нужно с помощью mb_convert_encoding перекодировать ее из windows-1251 обратно в ее оригинальную кодировку. И все.
Было бы интересно узнать почему именно этот вариант заработал, очень буду рад если кто-то объяснит.
Продолжаем исследоавния:
Сниппет с установкой всех переменных на деле не особо влияет на результат. Главное, что влияет, - mb_convert_encoding. Если применить
Работаю с базой в Transbase (текдок), откуда надо вытянуть таблицу с русскими строками. Но все кириллические строки вытягиваются пустыми. Ладно бы кракозябры, а так вообще ничего.
"Driver={Transbase ODBC TECDOC CD 3_2013};Database=TECDOC_CD_3_2013@localhost; CharacterSet = UTF-8"
CharacterSet = UTF-8 добавил уже во время поиска причины этой проблемы.
Также нагуглил варианты: SET NAMES 'UTF8' и SET client_encoding='UTF-8' (указаны в odbcConnect()), которые ничего не дали.
Кодировка строк в базе - ASCII
Случалась раньше подобная проблема с mysql, где также нужно было спарсить базу в ASCII, но тогда указание кодировки в строке подключения помогло: 'mysql:dbname=wh;host=localhost;charset=utf8';
Буду очень рад всякой помощи!
UPD: сразу появилась мысль - может строка теряется не при вытяжке из базы, а при вставке ее во вторую базу? Потому что консоль выдает все таки не пустые строки, а кракозябры перед вставкой.
Зависит от приложения. Если это банк и работа с деньгами, сертификат нужен, либо если утечка может стоить денег, которые в несколько раз больше. чем необходимые для сертификатов.
Не банк, так что, я понял, такая ситуация нормальна. Спасибо.
И что?
Это совершенно логично, что клиент может получить доступ к своему паролю до его инкапсуляции в HTTPS.
Вы хотите сказать, что так, как у меня сейчас, можно оставлять?
IllusionMH
Цитата:
Единственный способ - получение/установка SSL сертификата и настройка сервера.
Полистал ссылки по этому поводу - везде длинные сложные инструкции. Мне не лень, но хочу уточнить: необходимо ли это применять в данном случае? И чего можно опасаться, если не сделать?
Нужно сделать авторизацию в попапе. Хочу понять как это сделать наиболее правильным путем. Основной момент - как передать строку пароля на сервер.
Допустим, два поля: логин, пароль. Создаем массив, пихаем их туда и аяксом шлем на сервер, где сверяем с базой, после чего редиректим или отдаем строку с ошибкой. Но получается некрасиво - открыв консольку можно свободно прочитать строку пароля в описании ПОСТ-запроса.
Кроме того, Файрбаг толсто намекает: Форма с незащищённым (http://) действием содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учетные данные для входа пользователя.
Незащищённая (http://) страница содержит поля для ввода пароля. Это представляет собой угрозу безопасности, которая позволяет украсть учетные данные для входа пользователя.
Подскажите, как наиболее канонично решаются такие задачи? Вряд ли хватит сделать мд5 на пароль. Как-то наверно надо из http сделать https?
Задача в следующем: нужно наладить импорт данных из .xlsx в базу.
В файле .xlsx около 130 000 строк. Скрипт написан и импорт на локалке через командную строку успешно происходит. В цикле вытягивается поочередно каждая строка из екселя и апдейтится строка в базе. Но когда запускаю тот же скрипт на хостинге через ssh, импорт валит сервер где-то на 30 000 строке.
Добавлено:
Возможно проблема в запросе. Может оптимизировать как-нибудь множественный UPDATE?
Подскажите чем можно в этой ситуации помочь. Также привожу скрипт на всякий случай:
Заметил, что картинки, которые выводятся не через фон, тегом img не отображаются. Т.е. по прописанным путям они не находятся. Значит и Аякс скорее всего не срабатывает, потому что не находит файл-обработчик.
Почему это происходит по прежнему не пойму.
Заменил на абсолютные пути и, конечно, работает, но что происходит хз))
т.е. по /goods_page-c9 получаем нужную страницу с работающими фильтрами.
Теперь надо к этому приделать поиск, т.е. передавать на страницу через гет еще несколько параметров чтобы они, попав в фильтр, вывели нужные товары сразу при переходе на страницу.
Т.е. добавил всего один параметр. И почему-то фильтра умирают... Ошибка вроде php, но что значит File does not exist: /root_dir/goods_page-c9? Почему он ищет в корневой папке файл с именем запрашиваемой страницы, которой, естественно, нет?