• Как поступать, если ответ после собеседования от компании может задержаться?

    @kandrash
    Кратко о себе
    Конечно идти на собеседование во вторую. Да и понятие этикета у вас странное. По вашему "деловой этикет" сейчас запрещает первой компании собеседовать других людей? Или он только в одну сторону работает?
    Ответ написан
    Комментировать
  • Как можно скачать изображение с примененными стилями CSS?

    Kozack
    @Kozack Куратор тега CSS
    Thinking about a11y
    Ответ написан
    Комментировать
  • Почему false срабатывает как true?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Строка false, разумеется приводится к true.
    В РНР будет ровно то же самое, условие if('false') выполнится.

    А чтобы false воспринималось как булево значение, а не как строка, надо либо сказать твоему яваскрипту, что он ждёт специальным образом кодированные данные, либо РНР - что он отправляет не HTML, а некий другой формат.

    В общем, обилие комментаторов с советами вида "пальцем в небо" наглядно показывает уровень понимания средним пользователем похапе своих действий.

    В целом направление мысли верное - система воспринимает переданное значение как строку, а не как булево значение. Но на этом мысль и останавливается.
    Хотя при некотором усилии можно было бы продолжить и рассудить - что поскольку протокол НТТР чисто текстовый, то никакие булевы значения через него по умолчанию передать нельзя. А так же объекты, массивы, и прочие типы данных.
    И для того чтобы сделать это возможным, был придуман специальный формат кодирования. Который позволяет передавать данные различнызх типовв, и который автор, несомненно, уже применяет (вследствие чего, собственно, из булева значения и получается строка false).

    То есть единственным недостающим звеном в этой головоломке является контекст, в зависимости от которого яваскрипт будет воспринимать строку false либо как строку, либо как булево значение. То есть нужен способ РНР и яваскрипту договориться, в каком формате они обмениваются данными. Стандартным способом является НТТР заголовок Content-type. Который скажет браузеру, что данные не в дефолтом формате HTML, а в другом.

    Либо как вариант, можно прямо при вызове функции ajax явно задать, в каком формате придут данные. Если озаботиться изучением документации по этой функции.
    Ответ написан
    Комментировать
  • Проверка условия PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    потому что надо определиться, что у тебя в массиве ключ, а что значение
    Ответ написан
    5 комментариев
  • Как мне провалидировать массив?

    0xD34F
    @0xD34F Куратор тега JavaScript
    fields.every(n => Object.values(n).every(m => !m.isRequired || m.value))
    Ответ написан
    Комментировать
  • Как сделать такой border?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Вы откуда все? Тут есть решения: Как сверстать данный блок?
    Ответ написан
  • Что можно ответить на такой вопрос, на собеседовании?

    Zoominger
    @Zoominger
    System Integrator
    "Я никогда не использовал event loop, поэтому не могу о нём ничего сказать самостоятельно, но если вы мне дадите время, то я спрошу на Тостере и повторю, а потом, может, погуглю про это, потому что я обучаемый".
    Ответ написан
    Комментировать
  • Почему не передаются параметры?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Садись, будем с тобой учиться программированию.

    То что у тебя здесь написано - это не программирование.
    Написать в столбик несколько операторов можно и обезьяну научить.

    Программирование начинается тогда, когда твой код престаёт работать.
    Процесс выявления участка, который не работает, и что надо исправить, называется отладкой. И это и есть на самом деле программирование.
    Для отладки нужно две вещи:
    1. В принципе понимать, что делает твой код. причём не в целом, а каждый оператор в отдельности. Какие данные он должен получать на вход, что с ними делать, что должно быть на выходе.
    2. Трассировка. Которая заключается тупо в выводе промежуточных результатов.

    поэтому после кода добавляем строчку
    var_dump($_SERVER['QUERY_STRING'], $addGet,$config['http_home_url'],$_SERVER['REDIRECT_SCRIPT_URL']);

    и смотрим, где чего не хватает.

    И только после этого идём на тостер задавать конкретный вопрос, "а почему у меня такая-то переменная пустая"
    Ответ написан
    Комментировать
  • Про нахождение работы за границей. Как это сделать?

    Zoominger
    @Zoominger
    System Integrator
    Знаю на хорошом уровне - HTML, CSS, JS

    Ну это заявка на победу. Тут никто такого не знает.

    давайте поможем друг-другу.

    Вы хотели сказать: "Давайте поможем мне?".

    По теме - сами позовут. Именно так. Сами.
    Ответ написан
    5 комментариев
  • Как вставить в js многострочный html код?

    wapster92
    @wapster92 Куратор тега JavaScript
    `<div>
        text
        <div>
            text2
        </div>
    </div>`
    Ответ написан
    1 комментарий
  • Тестовое задание на Junior Frontend, не кидалово?

    Get-Web
    @Get-Web
    Front-End Developer
    Вам бы просто название в поиск вбить) Ваша работа уже в продакшене, скорее всего ваша студия делала этот сайт и взяла дизайн для тестового задания, я уже сталкивался с такой практикой, так что можете смело верстать и подсматривать на оригинал..

    Задание далеко не для джуна, для того чтобы вас оценить достаточно шапки с меню, но видать из вас хотят выжать максимум

    17. Используйте только один из тегов выделения. (примечание: тег "b" устарел, используем только ).

    Вот это глупость, у тегов strong и b разные задачи. strong тег семантический, а b нужен для того чтобы выделить текст, но не делать не него акцент для роботов..
    Ответ написан
    3 комментария
  • С чего начать обучение PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Битрикс - это не РНР. Это битрикс.
    Чтобы заниматься битриксом, надо учить битрикс. И задания выполнять на битриксе.

    Да, и в любом случае, перед тем как учить любой язык программирования, сначала надо научиться гуглить.
    Чтобы научиться находить тот миллион ответов на твой вопрос, который уже написан в интернете.
    Ответ написан
    7 комментариев
  • Что имеет больше карьерных перспектив на бекенде: PHP или Node.js?

    DevMan
    @DevMan
    перспективы имеют специалисты, язык не решает.

    Как мне показалось ранее, PHP - стагнирующая технология, которую Node.js очень быстро вытесняет. Или это не так?
    уже лет десять как вытесняет. и все никак.

    17 октября 2010 в 06:11
    Скоро, скоро, благодаря серверному JS у серверных приложений тупо ничего не останется кроме последнего выбора — сдаться. Ну просто так сложилось, что ничто не в состоянии составить конкуренция JS. Питон и Руби могут попытаться, но вряд ли )
    https://habr.com/ru/post/106274/#comment_3341256
    Ответ написан
    3 комментария
  • Что указывать в своем первом резюме на позицию разработчика?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Указывать набор теоретических знаний, которые можете подтвердить, и ссылку на пет-проект.
    Ответ написан
    Комментировать
  • Как сделать вывод данных с текущего аккаунта через MySQL и PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Смотри внимательно.
    1. Надо стартовать сессию
    2. Надо правильно соединиться с БД
    3. Надо не хранить пароль в открытом виде
    4. Надо не пихать переменные прямо в запрос, а всегда передавать отдельно

    session_start();
    $login = $_POST['login'];
    $password = $_POST['password'];
    
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysql = new mysqli ('localhost','root','root','register-bg');
    $mysqli->set_charset($charset);
    
    $stmt = $mysql->prepare("SELECT * FROM `users` WHERE `login` = ?");
    $stmt->bind_param("s", $login);
    $stmt->execute();
    $result = $stmt->get_result();
    $user = $result->fetch_assoc();
    
    if($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
    }


    про password_verify прочтешь самостоятельно

    потом на другой странице
    1. стартовать сессию
    2. получить из неё id
    3. по id получить из базы юзера

    session_start();
    
    include 'mysqli.php';
    
    $stmt = $mysql->prepare("SELECT * FROM `users` WHERE `id` = ?");
    $stmt->bind_param("s", $_SESSION['user_id']);
    $stmt->execute();
    $result = $stmt->get_result();
    $user = $result->fetch_assoc();
    
    echo $user['money'];


    чтобы не писать код соединения каждый раз, его надо вынести в отдельный файл и подключать инклюдом

    если будут вылезать ошибки, их надо гуглить
    Ответ написан
    9 комментариев
  • Как вытащить true и false при проверке ссылки на изображение?

    0xD34F
    @0xD34F Куратор тега JavaScript
    return X; // тут НУЖНО ...

    Не тут. Или не нужно. Потому что невозможно. Загрузка картинки выполняется асинхронно, так что возвращайте промис, который будет резолвится в true из обработчика onload и в false из onerror:

    return new Promise(resolve => {
      const img = new Image();
      img.onload = () => resolve(true);
      img.onerror = () => resolve(false);
      img.src = 'тут ссылка на изображение';
    });
    Ответ написан
    7 комментариев
  • Как предложить скачать файл на устройство?

    Stalker_RED
    @Stalker_RED
    $filePath = '/tmp/example.txt';
    
    header('Content-Type: application/octet-stream'); // это главное!
    header('Content-Disposition: attachment; filename='.basename($filePath));
    header('Content-Length: ' . filesize($filePath));
    
    readfile($filePath);
    Ответ написан
    2 комментария
  • Как вытянуть эти значения?

    Fragster
    @Fragster
    помогло? отметь решением!
    Возьмите API и не мучайтесь: https://developerhub.alfabank.by/developerhub/site...
    Ответ написан
    Комментировать
  • Как проверить значения массива на схожесть?

    @dzhebrak
    Еще одно решение - вычислить расстояние Левенштейна между строками https://www.php.net/manual/ru/function.levenshtein.php

    Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).

    echo(levenshtein('abcdefg', 'amcdehg'));
    Если расстояние между строками равно 2, значит нужно вставить, заменить или удалить 2 символа, соответственно строки похожи.

    Функция для работы с русским языком: https://gist.github.com/shankao/b0d92e15c65852fda481

    Пример:
    $lines = [
      'Продам клинок демона +6 / Солнцеликий плащ +2 тьма',
      'Продам клинок демона +6, Солнцеликий плащщ +2тьма',
      'Акция! Продам клинок демона +6, Солнцеликий плащ +2тьма',
      'Продам клинок ангела +3, Луноликая куртка +4свет',
      'Продам клинок ангелла +3, Луноликая куртка +4свет',
      'Акция ! Продам клинок ангела +3, Луноликая куртка +4свет',
      'тест акции',
      'проверка демона',
      'проверка ангела',
    ];
    
    $res = [];
    $allSimilar = [];
    
    foreach ($lines as $line) {
        $similarLines = [];
    
        if(in_array($line, $allSimilar)) {
            continue;
        }
    
        foreach ($lines as $line1) {
            $lev = mb_levenshtein($line, $line1);
            $maxDistance = (int)(0.2 * max(mb_strlen($line), mb_strlen($line1)));
    
            if($lev <= $maxDistance) {
                $similarLines[] = $line1;
                $allSimilar[] = $line1;
            }
        }
    
        $res[$line] = $similarLines;
    }
    
    print_r($res);

    Похожими считаются фразы, которые отличаются менее чем на 20% их длины.
    Ответ написан
    Комментировать