По динамическим формам есть вот такой курс: https://courses.decodedfrontend.io/courses/advance...
Но, он платный (есть слитый), он на английском и там действительно всё непросто. Да, там тоже про динамически создаваемый компоненты.
$html = str_replace('</head>',$styles, $html);
на первой итерации у вас </head> заменяется, поэтому на следующих заменять уже нечего и ваш сгенерированный код не вставляется
Ещё вариант, что в скрипте где-то ошибка в JS до того момента, когда он оправляет ширину экрана. Скрипт отсанавливается и код отправки не выполняется.
Или вш скрипт блокируется блокировщиком рекламы, например.
Добро пожаловать в увлекательный мир отладки. Есть два стула пути:
1. Поставить и настроить отладчик и пошагово пройти скрипт, увидев в какой строке проблема.
2. Применить способ debug-print. В разных частях кода добавить вывод на экран какой-либо строки (типа echo "point 1"; и/или переменной (var_dump($name)). По выводу уже и определить, где ошибка.
Как-то так.
В DevTools в хроме есть возможность указать координаты. В меню через три точки в правом верхнем углу, дальге More tools -> Sensors
Откроется вкладка - там будет раздел Location. Есть возможность указать свои координаты. Лично не проверял.
Скорее всего, чтобы работало, надо будет держать открытыми DevTools постоянно.
Покажите как вы пробовали решать и что у вас не получилось.
В целом:
1. При клике сохраняйте индекс кликнутого элемента (опционально, удаляйте индекс кликнутого элемента по повторному клику)
2. При выводе проверяйте, есть ли индекс текущего элемента в массиве кликнутых. Если есть - устанавливайте класс active.
Как выше уже написали - нужно указать прямой путь к интерпретатору и будет работать:
1. Распаковываете архивы с php разные папки, настраиваете каждый через php.ini как надо, xdebug ставите и всё, что вам ещё может понадобиться. В path при этом ничего не прописываете.
2. В Шторме в настройках PHP кликаете на три точки справа от CLI Interpreters и там добавляете каждый интерпретатор путём указания путь до php.exe нужной версии
3. Выбираете нужный интерпертатор при запуске/отладке скрипта в шторме.
Можно перебрать массив $_POST через foreach и добавить поля, если имя поля начинается с name (ну или какие у вас там ещё условия, чтобы понять, надо поле добавлять в письмо или нет)
1. Например, может быть отключён вывод ошибок - вот никаких ошибок и не выдаёт.
2. Пишите логи, смотрите на какой компании крашится. Может там с данными что-то не в порядке.
Как минимум, вместо $message = echo ($quotes[$random_number]);
надо
$message = $quotes[$random_number];
Ну и, собственно, $quotes надо или в этом же файле определять или инклюдить первый файл
По поводу 500 ошибки - логи смотрите, что там у вас не так выходит.