• Как сгенерировать маршрут в массиве координат?

    Alexandroppolus
    @Alexandroppolus
    кодир
    function run() {
        const arr = Array.from({length: 5}, () => Array(5).fill('0'));
        
        const pos = [0, 0];
        while(pos[0] !== 4 || pos[1] !== 4) {
            if (pos[0] === 4) {
                pos[1]++;
            } else if (pos[1] === 4) {
                pos[0]++;
            } else {
                const r = Math.floor(Math.random() * 3) + 1;
                if (r & 1) {
                    pos[0]++;
                }
                if (r & 2) {
                    pos[1]++;
                }
            }
            arr[pos[0]][pos[1]] = 'X';
        }
        arr[0][0] = 'S';
        arr[4][4] = 'E';
        return arr;
    }
    
    run()


    можешь выполнить в консоли браузера и сразу увидеть результат
    Ответ написан
    4 комментария
  • В какой момент вызывается result.php в обработчике платежа bitrix?

    Adamos
    @Adamos
    result.php - это обычно страница, на которую ПС возвращает клиента, когда он закончил все дела на сайте ПС и жмет "вернуться в магазин".
    И так же обычно это ПС дергает сайт для подтверждения, что оплата прошла, а не наоборот, как у вас описано.
    Ответ написан
    2 комментария
  • Почему неправильно работает сравнение?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос
    Сколько строк вернёт база данных, если в запрос передать несуществующий логин?

    Дополнительный вопрос
    Какой смысл вообще городить авторизацию, если любой придурок авторизуется без всякого пароля, через SQL инъекцию?

    Подробнее про вопрос секьюрности этого куска:
    Если переменная подставляется напрямую в запрос, то это значит что в нее можно дописать SQL, который будет делать совсем не то, что ожидалось.
    Например, если вместо имени пользователя написать что-то вроде имя' AND LEFT(password, 1) = 'a
    то тогда код напишет "Лоигн занят" если первая буква пароля - "а". Пара десятков таких запросов - и первую букву мы уже угадали. Тем же способом же достаём остальные и вот мы получили пароль любого клиента.

    Чтобы этого не было, переменные никогда не пишут в запрос напрямую. а передают отдельно.
    как это делать - я уже писал подробно, правда в ответе на другой вопрос

    Здесь надо делать так

    $input = json_decode(file_get_contents("php://input"), true);
    
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect(*информация БД*);
    $link->set_charset("utf8mb4");
    
    $stmt = $link->prepare( "SELECT login FROM sn_users WHERE login=?");
    $stmt->bind_param("s", $login);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    if ($row) {
        echo "Лоигн занят";
    } else {
        echo "Лоигн свободен";
    }
    Ответ написан
    7 комментариев