• Debian boot device?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В настройках BIOS-а нужно указать, какое устройство является загрузочным по умолчанию.
    Ответ написан
    Комментировать
  • Почему не сбрасывается таймер в js?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У вас clearInterval(times) не приведёт к обнулению таймера, потому что в качестве аргумента нужно указывать не массив чисел times, а результат tm, возвращённый функцией tm = setInterval(...);.
    Ответ написан
  • Откуда в выводе dig доменное имя?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Потому что dig login.payoneer.com даёт:
    ;; QUESTION SECTION:
    ;login.payoneer.com.            IN      A
    
    ;; ANSWER SECTION:
    login.payoneer.com.     57      IN      CNAME   login-payoneer-com.payoneerx.prod2.reblaze.com.
    login-payoneer-com.payoneerx.prod2.reblaze.com. 597 IN CNAME cs1415.adn.rhocdn.net.
    cs1415.adn.rhocdn.net.  3599    IN      A       192.229.182.98

    Как видите у login.payoneer.com нет записи A (то есть прямого IP-адреса), зато есть ссылка CNAME, которая указывает на login-payoneer-com.payoneerx.prod2.reblaze.com, у которого тоже нет A, но есть ссылка CNAME уже на cs1415.adn.rhocdn.net, у которого наконец-то есть запись A с адресом 192.229.182.98. IMHO поэтому вся логическая цепочка и показывается...
    Ответ написан
    1 комментарий
  • Как выполнить shell_exec, чтобы PHP не дожидался окончания системной команды?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А попробуйте так:
    <?php
    $output = shell_exec('C:\Windows\system32\cmd.exe /c start Watch.bat '  . htmlspecialchars($_GET["name"]));
    ?>
    Ответ написан
  • Почему при запросе SQL через тело функции PHP получаю ошибку соединения?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Про область видимости переменных уже подсказали, внимательно изучайте.
    А что-бы было на чём осознать написанное в документации, вот ваш код (с простейшей защитой от SQL-иньекций, тоже стоит изучить):
    function sql_query($user_id) {
        global $connection;
        $query = "SELECT * FROM users WHERE id='".mysqli_real_escape_string($connection, $user_id)."'";
        if(!$query_result = mysqli_query($connection, $query)) {
                die('Query failed: '.mysqli_error($connection));
        } else {
                echo ('Complete');
        }
        return $query_result;
    }
    Ответ написан
    Комментировать
  • Как в PHP отсортировать такие элементы?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    <?php
    function my_sorting($in, $sort)
    {
        $tmp = array();
        foreach ($sort as $k => $v) $tmp[$k] = "";
        foreach ($in as $v) ($t = array_search($v, $sort)) !== false ? $tmp[$t] .= $v."\n" : $tmp[] = $v."\n";
        return implode("", $tmp);
    }
    
    $arr = array("Асфальт", "Карапуз", "Конфеты", "Пряники");
    var_dump(my_sorting($arr, array("Пряники", "Асфальт", "Конфеты")));
    Ответ написан
    Комментировать
  • Как последовательно получать данные с разных url и спользуя curl?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Должно быть так (смотрите на аргументы curl_exec() и curl_close()):
    $url_p = curl_init($url);
    curl_setopt_array($url_p, array(
          CURLOPT_HTTPHEADER => $arHeaderList,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_RETURNTRANSFER => true,
          ));
    $result1 = curl_exec($url_p);
    curl_close($url_p);
    Ответ написан
  • Bash. Как прочитать лог файл в переменную после перенаправления "динамического вывода" &> file.log?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вывод _И_ ошибки нужно записывать так:
    megacmd sync /tmp/site/ mega:/backup/latest/ >log.txt 2>&1


    Код "[2K" в начале каждой строки "Copying ..." заставляет консоль переместить текстовый курсор в начало строки. Поэтому каждая следующая строка отображается поверх предыдущей строки, и именно поэтому проценты в этой строке меняются, а экран не заполняется строками.

    А вот как из всего набора строк оставить только последнюю, с максимальным процентом... Хмммм... Один из вариантов:
    head -n1 log.txt >log2.txt ; grep 'Copying ' log.txt | tail -n1 >>log2.txt ; tail -n1 log.txt >>log2.txt
    Ответ написан
    3 комментария
  • Не получается сделать защиту от SQL атак. Почему?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    И никакой проверки на валидность строки в $_SESSION['id']? И нет защиты от иньекции при выполнении SQL-запроса с INSERT-ом?
    Ответ написан
  • Как лучше указывать локаль?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Первый вариант удобен тем, что выбранную локаль можно убрать в куку/в сессию/ещё куда-то, и потом прозрачно использовать. А если использовать эту ссылку только для переключения между языками - так вообще удобно, плюс можно можно использовать уже настроенные приоритеты по языкам в браузере.

    Второй вариант удобен для веб-пауков поисковых машин и прокси серверов. Но пользователям по этим ссылкам ходить недобно, они будут попадать на конкретный фиксированный язык, не зависящий от приоритета языков в браузерных настройках.
    Ответ написан
    4 комментария
  • Можно ли исправить эту очень полезную функцию PHP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Исходный вариант кода, но исправленный:
    $CONF = array('category' => array('name' => "Hello", 'data' => array()));
    
    function aGetByKey(&$array, $index, $value = null) {
        if (strpos($index, "."))
            list($index, $key) = explode('.', $index, 2);
        if (!isset($index) OR !isset($array[$index]))
            throw new Exception("No such key: " . $index);
    
        if(!empty($key))
            return aGetByKey($array[$index], $key, $value);
    
        $old = $array[$index];
        if ($value !== null)
            $array[$index] = $value;
    
        return $old;
    }
    
    function conf($key, $value = null) {
        global $CONF;
        return aGetByKey($CONF, $key, $value);
    }
    
    //Хотелось-бы чтобы она работала так:
    echo conf('category.name'); //Hello
    echo conf('category.name', 'World'); //Hello, потому что возвращается предыдущее значение $old
    echo conf('category.name'); // World
    
    conf('category.data', ['amount' => 158, 'kind' => 36]); // echo() нельзя, потому что вернётся массив
    echo conf('category.data')['amount']; //158
    Ответ написан
  • Как добавить в реестр через .reg сразу несколько комманд?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну вот смотрите, обе комманды вполне работают:
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\exefile\shell\test\command]
    @="cmd.exe /c \"echo %1 >xxx.lst && echo %1 >yyy.lst\""
    Ответ написан
  • Не могу правильно прописать путь к файлу?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так проверьте существование этого файла открытием в браузере адреса http://your_site_address_here/src/php/send.php, разумеется заменив your_site_address_here на адрес своего сайта.
    И видимо вам так же покажет ошибку 404 - "Файл не найден".
    Ответ написан
  • Cвои DNS сервера для 3G или 4G мобильного интернета на Android 9?

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

    И да, просто смена параметра через setprog не помогает. То ли соответствующие сервисы туда не смотрят, то ли просто вписывают новые параметры "ну что-бы все могли узнать", но сами не читают... Вот что-то не работает. Или работает, но надо знать соответствующую команду.
    Ответ написан
  • Как прочитать файл через `require` более одного раза?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Умеет. Это не require();, но для простого файла конфигурации - вполне достаточно.
    <?php
    file_put_contents("x2.php", "\$x=1;");
    eval(file_get_contents("x2.php"));
    var_dump($x);
    file_put_contents("x2.php", "\$x=2;");
    eval(file_get_contents("x2.php"));
    var_dump($x);
    ?>

    даст:
    int(1)
    int(2)

    Правда на входе eval() код должен быть без тегов <?php и ?> - но это уж сами решите, верно?
    Ответ написан
  • Как пропустить итерацию если команда вызывает ошибку 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;
    }
    Ответ написан
    Комментировать