Задать вопрос
  • Как вывести элементы массива с заглавной буквы?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const str = arr
      .map(n => `${n[0].toUpperCase()}${n.slice(1)}`)
      .join(', ');
    
    // или
    
    const str = arr.reduce((acc, n) => acc + (acc && ', ') + n.replace(/./, m => m.toUpperCase()), '');
    
    // или
    
    const str = arr
      .map(n => ''.concat(...Array.from(n, (m, i) => i ? m : m.toUpperCase())))
      .join`, `;
    Ответ написан
    Комментировать
  • Как сформировать внешний URL?

    ivan_zhuck
    @ivan_zhuck
    Возможно, после проверки значения поля через регуляное выражение (дабы удостовериться, что там содержится нечто похожее на доменное имя), стоит пингануть варианты адресов до первого полученного ответа 200 и считать его правильным.

    Т.е. вы получаете значение поля в виде: мой.сайт, далее отправляете запрос на http://мой.сайт через какой-нибудь curl, смотрите на ответ, если ответ отличен от 200, то проверяете далее адреса по списку https://мой.сайт, http://www.мой.сайт, https://www.мой.сайт.
    Ответ написан
    21 комментарий
  • Как написать скрипт который будет заполнять поля?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    хочу написать программку которая будет парсить данные с разных форумов
    cURL

    и постить их в группе.
    VK API
    Ответ написан
    Комментировать
  • Лучший способ авторизации через php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    "Не читайте до обеда советских газет".

    86% статей в интернете написаны чудовищными дителантами, которые сами едва десяток операторов освоили.
    Иногда к прочим данным также добавляют IP или UserAgent которые также проверяются и обновляются при взаимодействии со скриптом авторизации. Иногда таблица в БД разносится на несколько.

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

    Без контекста сложно понять, что имеется в виду.

    Общее правило - не доверять голословным утверждениям. Если автор понимает, о чем пишет, то сможет и объяснить ту или иную рекомендацию или оценку.

    Из перечисленного выше я бы только добавил защиту от подбора пароля.
    Ответ написан
    1 комментарий
  • Почему не работает код?

    @Hanneman
    Потому что надо экранировать
    while($row = mysqli_fetch_assoc($query)) echo "<h1><div class=\"film-card\">".$row['name']."</h1></div><p>".$row['year']."</p><br>";
    Ответ написан
    1 комментарий
  • Конвертирование Unix времеми в понятную дату почему не работает?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учим азы житейской логики.

    Чтобы заявлять что "Конвертирование Unix "времеми" в понятную дату не работает", нельзя конвертировать "то что приходит из базы". Потому что ты не знаешь, что приходит из базы.

    Чтобы делать такие заявления, надо брать метку времени юникс, и конвертироввть именно её.

    А если конвертирование не работает при получении данных из базы, то взять полученные данные двумя пальчиками и внимательно посмотреть на свет: а что ж у тебя такое диковинное лежит в базе данных под видом метки времени Юникс. оператор var_dump() тебе знаком?

    В общем, главное правило программиста - не только совершить какое-то действие, но и проверить, что на вход были поданы корректные данные, а на выходе лежит то что ожидалось.
    Ответ написан
    2 комментария
  • Как переместить значения utm параметров URL'а внутрь атрибута href в дополнение к ссылке?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Ну так как деталей маловато, то вот универсальное решение:
    $httpQuery = http_build_query([
      'keyword' => $_GET['utm_term'],
      'position' => $_GET['utm_campaign'],
      'creative' => $_GET['utm_creative']
    ]);
    
    echo '<a href="http://site.com/?camp=' . $httpQuery . '">Тык</a>';
    Ответ написан
    Комментировать
  • Где ошибка в коде?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вы цвета различаете? Даже здесь в тексте вопроса ошибка хорошо выделяется - во второй строке не закрыты кавычка и скобка.
    Ответ написан
    5 комментариев
  • Почему не работает форма поиска?

    @nozzy
    Symfony, Laravel, SQL, Python, Telegram
    while ($itog = mysqli_fetch_assoc($q)) {
     printf("%s (%s)\n", $itog["name"], $itog["year"]);
     }
    Ответ написан
  • Как сделать проверку на запрос в index.php PHP?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    echo $_SERVER['REQUEST_METHOD']; //'GET', 'HEAD', 'POST', 'PUT'.


    upd: Сорян, не сразу догнал что именно спрашивается.
    В той де документации написано:
    Кроме пользователей, может потребоваться сделать api и для других сущностей, поэтому все классы различных API должны иметь один общий костяк, который будет определять метод запроса, действие для выполнения и тд. Создаем файл Api.php c абстрактным классом Api:


    То есть для /api/cars вам нужно унаследовать класс CarsApi от класса Apiи написать его реализацию.
    Ответ написан
    4 комментария
  • Как сделать проверку на запрос в index.php PHP?

    xEpozZ
    @xEpozZ
    Веб-разработчик
    Наследуетесь от abstract Api и в свойство public $apiName; вписываете cars
    Далее нужно будет разрулить роутинг. у вас все запросы идут на index.php
    В index.php должен быть роутер, который в зависимости от переданных параметров будет вызывать нужный код
    для простоты это будет
    Загляните в суперглобальный массив $_GET и посмотрите, куда приходит users
    По этому свойству делаете if или switch и вызываете нужные вам классы с апи
    Ответ написан
    2 комментария
  • Как правильно сгенерировать таблицу из динамического массива?

    mad_maximus
    @mad_maximus
    Количество строк может измениться, а количество столбцов - нет, вот и проходитесь форичем по массиву и выводите данные. Даже если появится столбец, вы его тоже выведете динамически, так как имя столбца - это ключ в вашем массиве, а значения массива - это строки таблицы.
    Ответ написан
  • Почему не работает функция php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ни каких ошибок не появляется.
    Это не говорит о том что их нет. Для отладки на дев окружении должны быть включены выводы всех нотисов и варнингов, либо через конфиг php.ini, либо в коде при старте указать
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    Ответ написан
  • Как вывести переменную из if?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я понимаю что эта переменная видна только в if. Как ее вывести?

    Дело не в том что она "видна" в иф, дело в том что если иф не выполняется, то эта переменная вообще не будет существовать, соответственно вывод ее ниже выдаст варнинг - нет переменной. Вариантов 2:
    1) более правильно все используемые переменные определять перед исполнением скриптов(как советует Михаил Братеньков). Нормальные редакторы(пхпсторм например) такие куски кода определяет сразу.
    2) Более кривое решение - в месте использования переменной для вывода проверять ее существование(более менее правильный вариант), или "засобачить" переменную(<?php echo @$dif; ?> - совсем кривой подход), такой подход оправдан только в ограниченном ряде случаев, например если много переменных могут быть не определены и код нужно рефакторить, но некогда.
    Ответ написан
    2 комментария
  • Как сделать цикл?

    mad_maximus
    @mad_maximus
    Делайте пагинацию. Для этого вам нужно достать количество всех фильмов, поделить его на количество фильмов на одной странице (допустим, 20) и округлить результат в большую сторону с помощью ceil. Дальше через цикл вывести количество страниц и сделать ссылки вида ?page=$i. Теперь при каждом запросе следующей страницы вы делаете запрос в базу, используя LIMIT, где сначала указываете количество фильмов на страницу (20), а потом оффсет, с которого брать фильмы (номер страницы * количество фильмов).
    Ответ написан
    Комментировать
  • Как сделать цикл?

    @balamyt92
    ; select * from users; --
    Это называется пагинация - вот пример как это делать
    Ответ написан
    Комментировать
  • Как сделать одновременное печатание текста?

    @LamerFromSpace
    Студент-быдлокодер
    Без JavaScript никак.
    Добавьте данный JS код в ваш html файл:
    var amount = document.querySelector("#history-amount");
    var comission = document.querySelector("#history-comission");
    
    amount.oninput = function(){
      comission.value = amount.value*1.015;
    }
    Ответ написан
    1 комментарий
  • Почему приходят порой пустые заявки?

    ivan_zhuck
    @ivan_zhuck
    Валидация должна быть не только на фронте, но и на беке. Поскольку POST запрос можно отправить не только через форму, но и напрямую, обратившить по адресу обработчика формы. Отправлять такой запрос могут спам-роботы, ушлые пользователи, которые ищут уязвимости и т.д. В самом примитивном случае можно сделать так:

    $name = !empty($_POST['name'])?$_POST['name']:false;
    $phone = !empty($_POST['phone'])?$_POST['phone']:false;
    
    if($name and $phone){
          //тут отправляем форму
    }else{
         //тут сообщаем об ошибке
    }


    В не примитивном случае, должна быть более строгая валидация и в клиентской части приложения и в серверной. Например: в имени могу быть только буквы,пробелы и дефисы, а строка номера телефона после очистки от прочих символов должна содержать 10 числел. Сама форма должна быть защищена от CSRF, XSS и прочих типовых уязвимостей. Если форма публичная (например форма контактов, как в вашем случае) должен присутствовать механизм от защиты отправки формы ботами, например reCAPTCHA.
    Ответ написан
    Комментировать
  • Лайки на карточке товара?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    во первых - гадание по фантомному телу функции уже не модно(код приведите),
    во вторых - так как в тегах есть пхп - предполагаю что нужно написать еще:
    а) Аякс запрос на сервер с идентификатором товара в качестве параметра;
    б) Обработчик на пхп который привяжет через запись в базе товар с пользователем.
    в)
    Но когда продублировал так 8 карточек, для примера заметил, что на остальных, то функция не работает (логично)
    значит на этих элементах не повешены обработчики(логично)
    Ответ написан
    Комментировать