Формы

Изменить значение CSS с помощью PHP

Значения хранятся в базе данных. Меня смущает то, что должно быть лучше всего: использование PHP скрипт или CSS или даже javascript. Я хочу, чтобы он изменился на основе значения CSS из моей базы данных, которое я могу изменить снова, когда мне это нужно (используя PHP скрипт). Возможно, этот вопрос слишком общий, но, пожалуйста, дайте мне несколько сценариев, которые я могу выполнить. Спасибо за любую помощь.

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

если вы хотите получить данные из базы данных, вам нужно использовать php для этого и применить эти данные к css, вы можете использовать jquery или Javascript

Я рекомендую посмотреть это видео от Getify (Кайли Симпсон) — может указать вам интересное направление: vimeo.com/99916682 (tl; dr; CSS templating)

6 ответов

сначала измените расширение своего файла с (например.) style.css на style.php. Затем добавьте это в первую строку вашего css:

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

это нормально, чтобы изменить расширение? это странно для меня браузер распознает его как CSS или PHP?

многие люди еще не знают это. но это нормально. Это необходимо изменить. и добавив эту строку, я сказал, что проблема будет решена, браузер распознает ее как файл css. это определение не имеет разницы с файлом CSS с расширением .css

Для удобства и гибкости я хочу предложить интерфейс, а не бэкэнд-решение (также потому, что до сих пор никто не предлагал это).

Мне особенно нравится подход, сделанный в Grips library, где вы можете скомпилировать шаблон CSS, передавая переменные как входные данные (то есть цвета), и получить CSS для использования. Все это может произойти в браузере. Также вы можете использовать Grips для шаблонов HTML.

Как я уже упоминал в комментарии, это видео — лучшее введение в Grips.

Также обратите внимание, что если вы хотите использовать Grips в бэкэнд, вы можете — но это JS-библиотека, поэтому она не будет идеально вписываться в ваше решение PHP.

Источник

Как редактировать html из файла *.php?

я скачал шаблон РНР, но из html в нем есть только теги — DIV, Если включить интерактивный просмотр в программе adobe CS5 то появляется html код с текстом. как его отредактировать, если при интерактивном режиме можно только просматривать, а при выключении появляется чистый РНР?

все вот в таком духе. .
где здесь текст html кода?

?php
require_once(«inc_menu.php»);
require_once(«inc_tabbar.php»);

Читайте также:  Python encoding command line

$page[‘title’] = getlocal(«settings.title»);
$page[‘menuid’] = «settings»;

html — обычный код разметки — указания браузеру
этот код читает любой баузер главное что бы у файла было название html.

далее в html есть 2а способа разметки
жесткая табличная разметка используя таблицы table (это как пазлы только квадратные — все в одной плоскости)
и гибкая разметка используя слои div (это как наложение пленки с рисунком одну на другую)

если файл хранящейся на сайте имеет расширение html — браузер скачивает его как есть — орегинальным

php — это совершенно другой уровень
1 это язык программирования
бразуер не может прочитать пхп код
для этого на хостинге устанавливается специальная программа
которая из php делает html
НО пхп учитывает условия, и взависимости от изменения условий = выходной html файл может менятся

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

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

а если хочешь сохранить страничку «живой» читай про пхп

так просто визуальным редактором скрипт на php отредактировать не получится

php код это все что спрятанно в скобки

Такие вещи редактируются в простых текстовых редакторах с подсветкой кода.
В php за вывод отвечает оператор echo «Тут html код»;

Adobe Dreamweaver CS5?
Открываешь код, находишь нужный тег, редактируешь как надо. Там в PHP все html коды прописываются вручную, особенно если это шаблон

Источник

Как дописать стили в атрибут style тегов HTML через PHP

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

Пример HTML кода в котором нужно добавить стили.

$html = ' 

Текст 1

Текст 2

';

Массив тегов и стилей которые нужно добавить.

$tags = array( 'span' => 'color: #000;', 'p' => 'padding: 0;', 'img' => 'border: none;' );

Вариант на регулярных выражениях

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

function add_html_style($html, $tags) < foreach ($tags as $tag =>$style) < preg_match_all('//i', $html, $matchs, PREG_SET_ORDER); foreach ($matchs as $match) < $attrs = array(); if (!empty($match[1])) < preg_match_all('/[ ]?(.*?)=[\"|\'](.*?)[\"|\'][ ]?/', $match[1], $chanks); if (!empty($chanks[1]) && !empty($chanks[2])) < $attrs = array_combine($chanks[1], $chanks[2]); >> if (empty($attrs['style'])) < $attrs['style'] = $style; >else < $attrs['style'] = rtrim($attrs['style'], '; ') . '; ' . $style; >$compile = array(); foreach ($attrs as $name => $value) < $compile[] = $name . '="' . $value . '"'; >$html = str_replace($match[0], '', $html); > > return $html; > echo add_html_style($html, $tags);

Результат работы функции

Текст 1

Текст 2

Вариант на phpQuery

  • Приводит HTML код к валидному виду — закрывает незакрытые теги, удаляет лишние пробелы, переводит названия тегов и атрибутов в нижний регистр.
  • Заменяет мнемоники на символы.
require '/phpQuery.php'; $dom = phpQuery::newDocument($html); foreach ($tags as $tag => $style) < $elements = $dom->find($tag); foreach ($elements as $element) < $pq = pq($element); $attrs = $pq->attr('style'); if (empty($attrs)) < $pq->attr('style', $style); > else < $pq->attr('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo (string) $dom;

Результат

Текст 1

Текст 2

Вариант на классе DOMDocument

В данном случаи не подходит т.к. к верстке добавляется теги , , .

$doc = new DOMDocument('1.0', 'UTF-8'); @$doc->loadHTML($html); foreach ($tags as $tag => $style) < $elements = $doc->getElementsByTagName($tag); foreach ($elements as $element) < $attrs = $element->getAttribute('style'); if (empty($attrs)) < $element->setAttribute('style', $style); > else < $element->setAttribute('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo html_entity_decode($doc->saveHTML());

Результат

   

Текст 1

Текст 2

Источник

Читайте также:  Java encode string to long

Как дописать стили в атрибут style тегов HTML через PHP

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

Пример HTML кода в котором нужно добавить стили.

$html = ' 

Текст 1

Текст 2

';

Массив тегов и стилей которые нужно добавить.

$tags = array( 'span' => 'color: #000;', 'p' => 'padding: 0;', 'img' => 'border: none;' );

Вариант на регулярных выражениях

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

function add_html_style($html, $tags) < foreach ($tags as $tag =>$style) < preg_match_all('//i', $html, $matchs, PREG_SET_ORDER); foreach ($matchs as $match) < $attrs = array(); if (!empty($match[1])) < preg_match_all('/[ ]?(.*?)=[\"|\'](.*?)[\"|\'][ ]?/', $match[1], $chanks); if (!empty($chanks[1]) && !empty($chanks[2])) < $attrs = array_combine($chanks[1], $chanks[2]); >> if (empty($attrs['style'])) < $attrs['style'] = $style; >else < $attrs['style'] = rtrim($attrs['style'], '; ') . '; ' . $style; >$compile = array(); foreach ($attrs as $name => $value) < $compile[] = $name . '="' . $value . '"'; >$html = str_replace($match[0], '', $html); > > return $html; > echo add_html_style($html, $tags);

Результат работы функции

Текст 1

Текст 2

Вариант на phpQuery

  • Приводит HTML код к валидному виду — закрывает незакрытые теги, удаляет лишние пробелы, переводит названия тегов и атрибутов в нижний регистр.
  • Заменяет мнемоники на символы.
require '/phpQuery.php'; $dom = phpQuery::newDocument($html); foreach ($tags as $tag => $style) < $elements = $dom->find($tag); foreach ($elements as $element) < $pq = pq($element); $attrs = $pq->attr('style'); if (empty($attrs)) < $pq->attr('style', $style); > else < $pq->attr('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo (string) $dom;

Результат

Текст 1

Текст 2

Вариант на классе DOMDocument

В данном случаи не подходит т.к. к верстке добавляется теги , , .

$doc = new DOMDocument('1.0', 'UTF-8'); @$doc->loadHTML($html); foreach ($tags as $tag => $style) < $elements = $doc->getElementsByTagName($tag); foreach ($elements as $element) < $attrs = $element->getAttribute('style'); if (empty($attrs)) < $element->setAttribute('style', $style); > else < $element->setAttribute('style', rtrim($attrs, '; ') . '; ' . $style); > > > echo html_entity_decode($doc->saveHTML());

Результат

   

Текст 1

Текст 2

Источник

Обработка форм сайта с помощью PHP

Обработка форм сайта с помощью PHP

Формы используют для отправки какой-либо информации на сервер, которую необходимо как-то обработать.

Места использования форм:

  1. Создание регистрации и авторизации
  2. Создание блока комментариев
  3. Создание обращения в техническую поддержку (тикеты)

Создаём форму на HTML

Код формы необходимо помещать в HTML документа.

      Здесь должна быть ваша форма. 

Я пропущу скелет документа дальше, чтобы было более понятно.

 

Введите логин:

Введите пароль:

В атрибут action нужно указать обработчик формы (PHP-скрипт). Если поле пусто, значит, обработку формы выполнил тот скрипт, в котором расположена сама форма. В атрибут method нужно указать метод отправки формы (post или get). У каждого свои плюсы и минусы. Вкратце: post отправляет данные так, что пользователь не может их увидеть, а get — так, что они видны в URL-строке браузера.

Наглядный пример getНаглядный пример post:
Наглядный пример postНемного по PHP:

При отправке формы методом POST данные записываются в суперглобальный массив $_POST.

При отправке формы методом GET данные записываются в суперглобальный массив $_GET.

К суперглобальным массивам $_POST и $_GET нужно обращаться обычным способом (как вы делаете это и с обычными ассоциативными массивами) $массив[‘ключ’].

В форме мы сделали 3 . Первые два — поле ввода логина и пароля. Третий — кнопка отправки формы.
Тег имеет атрибут type=»». Для каждого случая указывают свой тип ввода. Допустим, text устанавливают для текста, submit — для отправки формы по атрибуту (action), а password — для пароля (чтобы он отображался звёздочками *).
Кроме того, тег имеет атрибут name=»» и атрибут value=»». Value — стандартное значение элемента, name — предназначено для того, чтобы обработчик формы мог его идентифицировать.

Создаём обработчика формы

Мы перешли к самому интересному моменту статьи. Если мы обрабатываем форму на другой странице (action=»example.php»), то после нажатия кнопки подтверждения вас перекинет на указанную страницу.
Если action пуст, то страница с формой перезагрузится.
В самом верху скелета документа (перед ) открываем теги PHP и обрабатываем форму:

 // Если кнопка нажата, то выполняет тело условия if (isset($_POST['done'])) < echo 'кнопка обработчика была нажата!
'; // Если логин и пароль не пуст(есть значение), а также пароль не 123 if (!empty($_POST['login']) && $_POST['pass'] != 123 && !empty($_POST['pass'])) < echo "Всё хорошо, все поля пройдены. "; echo "Здесь должна быть ваша обработка формы. "; echo "Занесение в базу данных, отправка сообщения и т.п."; >// Если логин пуст, тогда выводит сообщение if ($_POST['login'] == '') < echo 'Логин пуст!
'; > // Если пароль популярный ||(или) пуст, тогда выводит сообщение if ($_POST['pass'] == '123' || empty($_POST['pass'])) < echo "Нельзя использовать популярные пароли. Придумайте свой!
"; > > ?>

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

В самом верху PHP-тега заводим 2 новые переменные, которые по стандарту пусты:

В проверке на пароль:

$error_pas .= "Нельзя использовать популярные пароли. Придумайте свой!
";

В проверке на логин:

.= означает то, что мы берём прошлую строку (пусто) и прибавляем к этому наше сообщение.

В форме HTML:

Добавляем после тега вставку PHP (в данном случае ), так как мы только выводим переменную. Суть проста: если ошибки в логине нет, тогда $error_login пуст, а следственно, ничего не выводится, иначе выводим там ошибку.

Введите логин:

Введите пароль:

Теперь доработаем форму, чтобы она сохраняла значения полей.

В самом начале добавляем 2 переменные:

В начало проверки на ‘нажата ли кнопка отправки’ добавляем:

$input_login = $_POST['login']; $input_pass = $_POST['pass'];

То есть мы заносим в переменные значения из суперглобального массива $_POST.

И немного изменяем нашу HTML-форму:

 

Введите логин: ">

Введите пароль: ">

Добавляем тег value, чтобы указать стандартное значение поля. Теперь если выдаётся ошибка, то значения полей сохраняются, и пользователю нужно не заново их вводить, а только исправить ошибку.

Заключение

Как видите, создать хорошую форму на PHP не так уж и сложно. Проверки, которые я показал в этой статье, не обязательно должны быть. Вы можете придумывать свои (любые) проверки на поля ввода, используя PHP. Надеюсь, что вам понравилась моя статья, и вы выучили что-то новое.

Итоговый код страницы с формой + обработчика:

Источник

Оцените статью