Задать вопрос
  • Как пропустить итерацию если команда вызывает ошибку PHP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Плохо, плохо... Почему у вас в программировании всё так плохо?!

    ПРАВИЛЬНЫЙ вариант вашего кода:
    $sql_array = array();
    foreach($product['oc_product_description'] as $k => $v){
            $sql_array[] = "{$k} = ?";
    }
    $this->db->prepare("INSERT INTO oc_product_description SET ".implode(", ", $sql_array))->execute(array_values($product['oc_product_description']));
    unset($sql_array);


    Но если у вас действительно ЕСТЬ необходимость создавать столько записей (напрягитесь, осознайте далее написанное), сколько всего ПОЛЕЙ (ну типа там id,type,num,cost,category_id,sklad,etc) в таблице - тогда приведённый выше код нужно поменять. Но я сильно сомневаюсь, что вам нужна толпа записей вида:
    id=100
    id=100, type=tovar
    id=100, type=tovar, num=10
    id=100, type=tovar, num=10, cost=26.4
    id=100, type=tovar, num=10, cost=26.4, category_id=4
    id=100, type=tovar, num=10, cost=26.4, category_id=4, sklad=true
    id=100, type=tovar, num=10, cost=26.4, category_id=4, sklad=true, etc=...

    А именно так ваш код заполняет таблицу, дополняя запрос поле за полем, размножая записи как тараканов.

    Вердикт: Вы хоть вдумываетесь, что вы творите?!
    Ответ написан
    4 комментария
  • Как запретить обновление всех пакетов в Ubuntu?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Держите решение одной строкой в терминале (под root-ом, конечно):
    dpkg --get-selections | sed 's/\sinstalled$/\thold/' | dpkg --set-selections


    Хотя на apt upgrade это изменение почему-то не влияет. :-(
    Ответ написан
    Комментировать
  • Почему не могу получить DNS сервера имён в CentOS?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Во-первых, посмотрите настройки ifconfig enp0s3 при включенном BOOTPROTO=dhcp. Так вы узнаете, какие параметры можно прописать в конфиг для ручной конфигурации BOOTPROTO=static.

    Во-вторых, а вообще сеть в виртуальной машине есть? Работает ли ping 192.168.1.1? А ping 8.8.8.8? И смотрите на результат traceroute 8.8.8.8, происходит затык?

    В-третьих, если сеть есть, и пинги ping 8.8.8.8 работают - проверяйте работу собственного NS-сервера на 192.168.1.1, прилетевшего по DHCP. Сделайте dig @192.168.1.1 ya.ru, должен быть корректный результат. Далее dig @8.8.8.8 google.ru для проверки, что и наружние NS тоже доступны.

    Ну и финальное, если все предыдущие проверки (кроме dig @192.168.1.1 ya.ru) прошли положительно - то можно прописывать доступный NS в конфиг системы: sudo echo "nameserver 8.8.8.8" >/etc/resolv.conf.

    У вас всё?
    Ответ написан
  • Почему не получается парсить баланс своего яндекс кошелька?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Хм. PHP-скрипт на некоем сервере парсит главную страницу с сайта yandex.ru? С новостного сайта? Нет, не с сайта денег money.yandex.ru, а именно с новостного?

    При этом PHP-скрипт сначала ДОЛЖЕН сделать полноценный вход/login на сайт с именем/паролем, сохранить cookies авторизации, и потом с этими cookies обращаться на сайт - только тогда ему будет корректно показан его денежный аккаунт. У вас ничего этого в скрипте НЕТ.

    ИТОГО: Изучайте вопрос, переделывайте скрипт.

    P.S. Сделайте вывод всей страницы, полученной с yandex.ru - и увидите, что данных о деньгах там нет, от слова "вообще". Либо я катастрофически не прав.
    Ответ написан
    1 комментарий
  • Как передать параметы из одно CURL в другой на php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Из объяснения ничего непонятно. И непонятно, зачем нужен curl_exec() первого скрипта, если значение $idauto выясняется в первых двух строчках? Зачем вообще куда-то делать запрос?

    А мой код, смотрю, пригодился. :-)
    $url = $_POST['link_for_parse'];
    $idauto = basename($url);
    $createdURL = curl("https://www.site.com/data/data/lotdetails/solr/".urlencode($idauto));
    if (preg_match("#<script src=\"(/_Incapsula_Resource\?[^\"]+)\">#", $createdURL, $regs))
    {
        curl("https://www.copart.com{$regs[1]}");
    }
    if ($createdURL = curl("https://www.site.com/data/data/lotdetails/solr/".urlencode($idauto)))
    {
        header('Content-Type: application/json');
        echo $createdURL;
    }
    unlink("/tmp/cookie.txt");
    
    function curl($url){
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookie.txt");
        curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie.txt");
    
        $response = curl_exec($ch);
        curl_close($ch);
        return $response;
    }
    Ответ написан
    Комментировать
  • Php cUrl ничего не возвращает, а в браузере все ок. Как исправить?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вобщем что-бы сервер начал отдавать контент - надо разок обратиться к этому самому _Incapsula_Resource... Потом он запоминает клиента, и даже куки не нужны, контент всё равно прёт.
    <?php
    
    $createdURL = curl("https://www.copart.com/public/data/lotdetails/solr/59418659");
    if (preg_match("#<script src=\"(/_Incapsula_Resource\?[^\"]+)\">#", $createdURL, $regs))
    {
        curl("https://www.copart.com{$regs[1]}");
        $createdURL = curl("https://www.copart.com/public/data/lotdetails/solr/59418659");
    }
    echo $createdURL;
    unlink("/tmp/cookie.txt");
    
    function curl($url){
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookie.txt");
        curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie.txt");
    
        $response = curl_exec($ch);
        curl_close($ch);
    
        return $response;
    }
    
    ?>
    Ответ написан
    1 комментарий
  • Как передать входящий рефер дальше в редирект ссылку?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В том коде, где {t3} присваивается значение, используйте для присвоения переменную $_SERVER['REFERER']. Так вы передадите входящий реферер.
    Ответ написан
    Комментировать
  • Как выявить взломали сервер или нет?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Трафик? Посмотрите хотя-бы /var/log/auth.log, туда некоторые службы складывают события авторизации, в том числе попытки взлома/подбора пароля. Может вас просто сетевые сканеры долбят, пытаются проломить, вот и трафик...

    Узнать, не взломали-ли? Можно проверить бинарники установленных программ утилитой debsums на случай их модификации. Антивирусники под UNIX-like тоже существуют, можно воспользоваться.
    Ответ написан
    3 комментария
  • Как настроить кнопку оплаты яндекс.деньги?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    После строки
    <input type="hidden" name="paymentType" value="AC">

    вставьте ещё строку
    <input type="hidden" name="successURL" value="http://server.org/path">
    в которой вместо http://server.org/path напишите свой адрес (своего облака с продуктом).
    Ответ написан
  • Как получить нужный массив?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    print_r($aaa[0]['id']); сработает.

    Хотя нет, скорее всего так: print_r($aaa['id']);
    Ответ написан
  • Что это такое и как от него избавиться?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вобщем вам надо установить
    composer require zendframework/zend-httphandlerrunner
    Ответ написан
    Комментировать
  • Как исправить 503-299 ошибку, при загрузки файла?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Решение ошибки заключается в поиске и исправлении ошибки. Код 503 говорит только о том, что что-то не удалось. Что именно не удалось - вам ни кто здесь не скажет. Смотрите сами, хотя бы в логах HTTP-сервера, по логике вещей - там всё должно быть сообщено...
    Ответ написан
    Комментировать
  • Как для сайта прописать SPF чтобы почта отсылалась через smtp.mail.ru?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    IMHO, Если вы отправляете письма от имени пользователя своего MX-сервера - то не получится скрыть IP-источник. SMTP.mail.ru как промежуточный сервер просто обязан указать IP сервера-источника, то есть вашего SMTP.

    Если вы будете отсылать письма от имени user_name@mail.ru, залогинившись в SMTP.mail.ru как пользователь user_name - тогда да, источником письма будет сам SMPT.mail.ru, и он сам будет обеспечивать SPF-запись для письма, источником которого сам и является. И ваш IP не будет фигурировать.
    Ответ написан
    1 комментарий
  • Как сделать цепочку запросов cURL в php, если во второй ссылке должны использоваться данные из первой?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Это называется persistent connection, и curl_multi() только помешает. Просто создаёте подключение $conn = curl_init();, быстренько пользуетесь им $result = curl_exec($conn); сколько влезет, а потом curl_close($conn);, и всё.
    Ответ написан
  • Как полностью очистить всю информацию на ПК о посещении интернета?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Программа CCleaner (есть portable версия, чтобы следов не оставлять) - очистит вообще всё, в том числе логи WindowsUpdate, которые тоже через Internet прилетают. Правда сами обновления останутся. От ipconfig /displaydns спасёт перезагрузка компьютера. Ну вот собственно и всё. А, не, нестандартные программы тоже нужно удалять, наверное. А то откуда они взялись? И директории этих программ в директории %USERPROFILE%\AppData\Local и в директории %USERPROFILE%\AppData\Roaming.
    Ответ написан
    Комментировать
  • Почему не работает OR в условии?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    С двумя этими OR у вас всегда будет выполняться код $query = "404";.
    Потому что сработает или одно неравенство (когда $query==403), или другое неравенство (когда $query==404), или оба неравенства (когда $query==401).

    P.S. Только непонятно, а что именно не работает-то? Код без ошибок, рабочий, в чём проблема-то?
    Ответ написан
  • Нужна ли очистка, если есть валидация?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В принципе - лишний, потому что что он будет, что он не будет, в любом случае FILTER_VALIDATE_EMAIL проверит строку на валидность.
    Если строка валидна (а значит там нет символов, вычищаемых через FILTER_SANITIZE_EMAIL) - работа продолжится. Если строка не валидна - будет ошибка.
    Ответ написан
    1 комментарий
  • Как достать кириллицу из RTF файла через python или linux?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Мне кажется должно быть наверное как-то возможно так:
    try:
         # Python 2.6-2.7 
         from HTMLParser import HTMLParser
    except ImportError:
         # Python 3+
         from html.parser import HTMLParser
    h = HTMLParser()
    return h.unescape(text)


    P.S. Просто я в Python-е ни-в-зуб-ногой.
    Ответ написан
    Комментировать
  • Как создать ф-цию запроса в БД?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Возможно несколько вариантов. Можно сделать несколько запросов, и в зависимости от входных аргументов выбирать один из них. Это наиболее правильный вариант.

    Можно, но способ плох, модифицировать запрос в сторону универсальности. Например:
    ... WHERE (B.Country=:country OR :country='') AND ...
    .

    Или совсем "грязный" вариант, менять операцию в зависимости от аргумента:
    ... WHERE B.Country ".(!empty($country) ? "=" : "<>").":country AND ...
    Ответ написан
    Комментировать
  • .ppn или как присвоить имя сайту без ICANN?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А что за зона .ppn? Среди стандартных общеземных такой зоны просто нет. Самое близкое - это .pn, и всё.

    Или это зона в каком-нибудь подпольном даркнете? Тогда она ни как не может регулироваться из ICAAN, там свои правила игры, подпольные.
    Ответ написан