• Как реализовать отправку данных в БД с форм выведенных циклом?

    @MrColdCoffee
    web
    Как мне передавать данные из форм, которые выведены циклом ?

    Они будут передаваться на эту же страницу методом POST при нажатии на кнопку "сохранить".

    В цикле -> в форме -> перед кнопкой "сохранить" можно создать
    <input type="hidden" name="sub_id"  value="ТУТ ID подразделения" />

    И при получении на сервере, в $_POST['sub_id'] будет айдишник подразделения.
    <input required type="text"> где прописывается количество единиц техники, нужно тоже как-то клеймить
    например можно добавить id , чтобы на сервере понимать для какой техники прописано количество
    Ответ написан
  • Недостатки видеоуроков?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Нужен огромный и продолжительный труд, чтобы написать приличную книжку.
    Чтобы в ней было не 10 страниц, а много хорошего материала, с примерами, с задачами, с изложением. Оформить, вычитать, отредактировать, договориться с издателем, выпустить, получить какую-то отдачу.
    Хорошую книгу ты читаешь долго. Месяц, два, год. Перечитываешь.

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

    В любой момент можно в тексте что-то найти, что-то подсмотреть в быстром темпе, и даже в бумажном варианте для этого достаточно просто содержания. А в электронном виде оттуда легко копируется текст, команды, код, конфиги.
    Перемотка в видео так не работает. Закладки на видео в виде справочника не работают. Сам себе заметки в виде видео ты не пишешь, не выписываешь, и переписать из книги проще, чем из видео.

    Также видео делать сложнее, чем писать текст. Гораздо дольше. Гораздо дороже.
    Редактирование видео вещь в разы более муторная, поэтому чаще просто переснимают короткие блоки, а это опять таки непросто.
    То есть сделать видео с таким же качеством материала и с такой же плотностью материала - в десятки раз дороже по всем ресурсам - деньги, время, оборудование.
    И при этом никто не будет смотреть месяц видео (160 часов, например). Никто не будет делать поиск внутри видео, закладки на нужные отрывки и использовать видео как справочник.

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

    Видео - это разок посмотреть на чей-то практический материал, разок посмотреть как это делает кто-то другой.

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

    Да, конечно есть отдельные моменты, и их много, когда через изображение можно передать мысль или идею быстрее. Но частично это восполняется картинками, а частично - никто не запрещает смотреть видео в дополнение к тексту.
    Да, конечно есть множество видео и видеокурсов, где можно раскрыть какую-то тему быстро, чтобы ухватить основную мысль или суть. Но в программировании нюансы решают все, а нюансы - они в тексте - в документации, в статьях, в книгах и в практике.

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

    P.S. Все вышесказанное касается разработки и администрирования. В "визуальных" профессиях, возможно видео может давать гораздо больше. Например хореография, фехтование, музыка, возможно дизайн. Но там тоже множество книг, которые дают фундаментальную информацию лучше, чем видео.

    P.S. Одним из самых важных минусов видео я считаю то, что ты не можешь получать информацию в комфортном для себя темпе, с возможностью быстро перечитать слово/фразу и обдумать ее. Сам читаю множество лекций, и эта проблема, когда скажешь 2-3 предложения быстрее, чем обычно и половина учеников отваливается с бессмысленным взгядом. Так на живом курсе ты можешь обратить на это внимание и перефразировать, а записанное видео уже не изменишь.
    Ответ написан
    1 комментарий
  • Недостатки видеоуроков?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Видеоуроки - как книжки "для чайников". Как правило - это много частных примеров, мало теории. Плюс к тому, обычно читать тот же текст получится быстрее, чем смотреть видео, т.к. читать можно по диагонали.
    Видеоуроки подойдут, если:
    • У вас индукционное мышление - 100 примеров лучше чем страница теории.
    • Вы воспринимаете "на слух" лучше, чем читая текст.

    Но рано или поздно наступит момент, когда документация станет родным домом, а видеоуроки будут восприниматься как потеря времени, потому что время==деньги, и час расслабона, смотря видео, станет стоить слишком дорого.
    Но не стоит вообще отказываться от таких форматов. Мой преподаватель по электронике, умнейший человек, говорил: "Не стоит гнушаться книжек 'Для чайников' - в них информация изложена кратко и максимально доступно. И этого минимума может хватить чтобы начать уже что-то делать"
    Ответ написан
    Комментировать
  • Передача нескольких GET параметров через форму?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак не делать, эти переменные никому не мешают
    Ответ написан
    1 комментарий
  • Как передать данные с html в php и обратно?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://developer.mozilla.org/ru/docs/Web/API/Fetc...
    На кнопку результата навешиваете обработчик, в нем получив результат
    document.getElementsByName("answer")[0].value = data;
    Ответ написан
    3 комментария
  • Почему date('Y-m-d') возвращает не текущее время?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    Настройте время. Скорее всего установлен не верный часовой пояс (UTC)
    Ответ написан
    2 комментария
  • Есть ли Express Card для хранения данных?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    Если я правильно понял, то гуглить по словам expresscard 34 ssd. Помнится что узкие карточки можно воткнуть в разъём который для карт буквой L
    Разве что купить их щас можно на барахолке разве что и объём будет соответствующий, гигов на 8. На ибее вон есть за полторы тыщи https://www.ebay.com/itm/233684787224
    Но можно взять переходник expresscard на USB и воткнуть в переходник обычную мелкую USB флешку =)
    Ответ написан
    Комментировать
  • Как подключить вторую базу данных к сайту?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вторую базу подключить несложно.
    Собственно, точно так же, как и первую.

    Но в данном случае это будет бессмысленная блажь, одна из тех завиральных идей, которые приходят в голову новичкам от неграмотности.
    Вместо того чтобы забивать себе голову такими глупостями, надо сначала научиться выполнять запросы, чтобы в них не было SQL инъекций. Потому что иначе ни авторизация не поможет, ни десять баз данных.

    А после этого узнать про такую штуку как сессии, и научиться использовать их вместо кук для хранения секретной для пользователя информации.
    Ответ написан
    Комментировать
  • Какая программа под WINDOWS Умеет создавать архив по SFTP на Сервере и выгружать?

    vabka
    @vabka
    Токсичный шарпист
    По SFTP ты не сможешь ничего заархивировать, тк протокол просто не позволяет такого.
    Используй ssh и bash скрипты, чтобы заархивировать, а потом что угодно, чтобы скачать получившийся архив.
    Ответ написан
    Комментировать
  • Как решить проблему с местом на сервере?

    Я, я знаю! Когда на разделе диска заканчивается место, а хочется что-то ещё туда записать, то нужно удалить что-то лишнее, чтобы место появилось. Альтернативное решение - переехать на раздел побольше. Альтернативное альтернативное решение - с криком убежать в лес, больше никогда из него не выходить.
    Ответ написан
  • Экранирование символов при отправке формы POST php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это какая-то чушь. Сам РНР ничего не экранирует.
    И никаких "универсальных" способов экранирования нет. Про 7.3 и минус тоже какая-то глупость.

    Давать пользователю самому вводить регулярку - это стрелять себе в ногу, ошибки буду сыпаться валом.
    Ответ написан
    Комментировать
  • Как добавить данные в БД через HTML-форму?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сначала учимся правильно соединяться.
    В случае mysqli это
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect($host, $user, $pass, $db_name);
    $link->set_charset("utf8mb4");

    И никаких ужасов с "Соединение не установлено" тут быть не должно.

    После этого выполняем запрос INSERT. Причем запросы мы всегда пишем так, чтобы данные в БД попадали отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $title, $discription, $date, $path);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    И тогда никаких ошибок запроса уже никогда не будет. Не говоря уже о том что при любых других вариантах твой сайт поломает любой пятиклассник.

    Весь код, который добавляет запись в БД, должен быть расположен ДО любого вывода.
    После обработки запроса методом POST необходимо перенаправить клиента куда-нибудь методом GET и завершить работу скрипта. Делается это функцией header с заголовком location: . после которой написать exit;
    Соответственно, никаких ужасов с "Запись добавлена".

    Кстати, немного удобнее с БД работать не через mysqli, а чрез PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute

    Подключение
    $host = '127.0.0.1';
    $db   = 'test';
    $user = 'root';
    $pass = '';
    $port = "3306";
    $charset = 'utf8mb4';
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset;port=$port";
    $pdo = new \PDO($dsn, $user, $pass, $options);


    Выполнение запроса
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$title, $discription, $date, $path]);
    Ответ написан
    1 комментарий
  • Как добавить значение из одной коллекции в другую если выполняется условие?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В цикле. В данном случае - вложенном.
    А если бы основная коллекция индексировалась через id, а не цыферками, то можно было бы обойтись одним.
    Ответ написан
    Комментировать
  • Как подписать и проверить строку с помощью приватного ключа в PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Подписать - вычисляете некий хэш от строки, шифруете его приватным ключом через openssl_private_encrypt и прикладываете к строке.
    Проверить - снова вычисляете тот же хэш от строки и сверяете его с расшифрованным через openssl_public_decrypt исходным хэшем.
    Ответ написан
    Комментировать
  • Возможно ли как-то оптимизировать json_decode?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нет, "оптимизировать json_decode" нельзя.

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

    Распарсить, положить в базу, при изменении данных менять их в базе, искать по-человечески, через SQL.
    А редис тут вообще никаким боком не упёрся.
    Ответ написан
    8 комментариев
  • Практические книги по компьютерным сетям?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    теория закрепляется на практике, а не на книгах
    Ответ написан
    4 комментария
  • Как выучить javaScript для бекенда?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Яваскрипт нужен только для яваскрипт бэкенда.
    На вакансию РНР разработчика нужно знание РНР.

    Путь дальше очень простй - перестать создавать под этим и другими аккаунтами однообразные топики на тему "Страдания юного Вертера" и продолжать грызть РНР, раз уж начали.
    Ответ написан
    2 комментария
  • Как при входе на сайт (загрузка страницы) записать единичку в файл?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Учите функцию file_put_contents()

    file_put_contents("я_лентяй.txt", "1", FILE_APPEND);
    Ответ написан
    Комментировать
  • Iframe как альтернатива ajax и отправка POST запросов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer

    С точки зрения практичности и безопасности данный способ оправдывает себя?
    С точки зрения практичности - нет, так как это полная шляпа, мы такое писали в 2005, когда аякс как явление еще не существовал, а уже в 2012 появился нормальный XMLHttpRequest здорового человека, на который все быстренько переползли.

    С точки зрения безопасности вообще абсолютно монопенисуально каким способом вы отправляете пост запрос, внутренний механизм будет абсолютно одинаков.

    Задавшись вопросом безопасности отправки запросов через ajax
    Если возникают вопросы безопасности при отправке данных через пост - значит вы что-то не то передаете...
    Ответ написан
    Комментировать