PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (9): [1] 2 3 4 5 6 7 8 9 »

> Найдено сообщений: 127
Vladimir Kheifets Отправлено: 23 Сентября, 2017 - 11:01:00 • Тема: Подскажите как сделать примитивный шаблонизатор • Форум: Вопросы новичков

Ответов: 6
Просмотров: 156
Строитель пишет:
Vladimir Kheifets доброго времени ) Ошибки в html-шаблоне есть, но это здесь не существенно, т.к. шаблон используется только для демонстрации переменных.

Доброе утро!
Ошибка в html-шаблоне не принципиальная.
Принципиальный вопрос о использование атрибута style в HTML- тэгах .
Это "не ошибка" встречается часто в примерах на форуме.
Не обращал на это внимание, до тех пока не потребовалась переработать PC-версию сайта на версию для мобильных устройств.
Причём задача состояла в том, чтобы один и тот же код работал во всех версиях,
а внешний вид сайт полностью описывался в CSS с медиа-запросами.
Пришлось долго "выковыривать" из тэгов атрибы style, определять классы и переносить их в CSS.

Пример попроще - клиент смотрит сайт и просит где-то изменить цвет или размер шрифта.
Причём бывает, лет через пять после окончания разработки.
Искать style-"заплатки" в кодах очень утомительно...
Хороших выходных!
Vladimir Kheifets Отправлено: 22 Сентября, 2017 - 17:07:37 • Тема: Подскажите как сделать примитивный шаблонизатор • Форум: Вопросы новичков

Ответов: 6
Просмотров: 156
Строитель пишет:
imedia, ещё один пример:
Спойлер (Отобразить)
Но лучше наверное использовать уже готовые шаблонизаторы.

Добрый день!
1. В этом примере, строки:
CODE (html):
скопировать код в буфер обмена
  1. <div class='message' style='color:#6b0392;'>
  2.            {sts}
  3.        </div>
  4.        <div class='footer' style='color:#6b0392;'>
  5.            {dvd}
  6.  </div>

должны быть после: <body> , а не между <head></head>

2. Лучше не использовать атрибут style в тэгах, а использовать только атрибут class
В данном случае я бы определил класс, например, xxx
CODE (html):
скопировать код в буфер обмена
  1. .xxx{color:#6b0392 !important}

и так изменил код:
CODE (html):
скопировать код в буфер обмена
  1. <div class='message xxx' >
  2.            {sts}
  3.        </div>
  4.        <div class='footer xxx' >
  5.            {dvd}
  6. </div>
Vladimir Kheifets Отправлено: 19 Сентября, 2017 - 17:05:50 • Тема: Запрет отправки пустой формы • Форум: Вопросы новичков

Ответов: 7
Просмотров: 166
Строитель пишет:
Vladimir Kheifets пишет:
контроль нужно делать в JS
JS выполняется на стороне клиента, а всё что на клиенте - не надёжно. Поэтому все проверки надо выполнять на сервере.

Извините, Вы убрали часть передложения. Я написал
Цитата:
Если Вы действительно хотите чтобы форма не отправлялась, то контроль нужно делать в JS

Вы знаете как сделать иначе без JS, чтобы форма не отправлялась?
Думаю, что вопрос был сформулирован не верно.
На самом деле нужно запрещать отправку письма см. п2
Vladimir Kheifets Отправлено: 19 Сентября, 2017 - 10:03:32 • Тема: Запрет отправки пустой формы • Форум: Вопросы новичков

Ответов: 7
Просмотров: 166
Доброе утро!
1. Если Вы действительно хотите чтобы форма не отправлялась, то контроль нужно делать в JS(см. пример)
Спойлер (Отобразить)

2. Как сделано у Вас сейчас, форма отправляется, но если не заполнены обязательные поля, то не должно отправляться письмо.
Верно?
Для этого необходимо сделать в PHP контроль значений: $_POST["name1"], $_POST["name2"] и.т.д
Лучше проверять не на пустоту, а на заполнение полей с помощью preg_match
Конечно желательно добавить capcha
Vladimir Kheifets Отправлено: 18 Сентября, 2017 - 09:29:41 • Тема: Неверная кодировка текста - PHP • Форум: Вопросы новичков

Ответов: 10
Просмотров: 205
LIME пишет:
Vladimir Kheifets пишет:
2. Тексты, которые выбираются из базы данных, если они не правильно выводятся, перекодировать в туже кодировку.
ни в коем случае
перечитать выше что я говорил о бд
(Добавление)
Vladimir Kheifets пишет:
mb_check_encoding
бывает ошибается
ниже в коментах в мануале бып пример безошибочного определения
но это нужно разве только при парсинге чужих ресурсов
короче сомнительные советы в очередной раз
имхо


Уважаемый коллега!
Вы написали:
Цитата:
ни в коем случае перечитать выше что я говорил о бд

Перечитал:
Цитата:
в бд кодировка может быть любой главное после подключения указать правильно кодировку клиента
как это делать гугли или спрашивай
например http://php.net/manual/ru/functio...-set-charset.php


Этот совет уже был и Павел ответил, что не помогло.

2. Замечал, mb_check_encoding, бывает ошибается.
Не плохо, что Вы вспомнили про парсинг чужих ресурсов.
При работе с GDS часто возникают проблемы с кодировкой данных.
Бывает, что проекты и БД достаются по "наследству"...
и иногда, помогает, mb_convert_encoding
Простите, мы больше не будем...
Vladimir Kheifets Отправлено: 17 Сентября, 2017 - 09:50:07 • Тема: Выполнение функций по каждому эл. массива • Форум: Вопросы новичков

Ответов: 3
Просмотров: 136
Нуб-2 пишет:
Доброго времени суток.
Есть массив, который я получаю из функции вида с несколькими значениями (1,2,3,4,5).

Как мне применить к каждому значению несколько функций? Что-то не получается так:
(скрин дичи ниже)

Спойлер (Отобразить)


Доброе утро!
Советую Вам для начала посмотреть содержимое массивов, которые выдают функции.
Обратите внимание на предупреждение на http://php.net/manual/ru/function.list.php
Цитата:
Внимание
В PHP 5 list() присваивает значения начиная с самого правого. В PHP 7 list() - с самого левого.
Если вы используете обычные переменные, можете не думать об этом, но, если вы используете массивы с индексами, вы ожидаете, что порядок элементов в массиве будет ровно таким, как вы его определили в list(), слева направо, но в PHP 5 вы получите обратный порядок.
Вообще говоря, желательно не полагаться на конкретный порядок операций, так как будущем это поведение может быть изменено.
Vladimir Kheifets Отправлено: 16 Сентября, 2017 - 07:59:56 • Тема: Неверная кодировка текста - PHP • Форум: Вопросы новичков

Ответов: 10
Просмотров: 205
LIME пишет:
Pavel8897....
короче - кодировка файлов и кодировка в браузере должны совпадать....

Доброе утро! Совершенно верно "кодировка файлов и кодировка в браузере должны совпадать", а она у Павла не совпадает...
Что необходимо сделать:
1. PHP-файлы сохранить в редакторе, в той кодировке, которая стоит на стронице.
2. Тексты, которые выбираются из базы данных, если они не правильно выводятся, перекодировать в туже кодировку.
Узнать в какой кодировке тексты можно с помощью функции mb_check_encoding
или переключая кодировку в браузере.
Всем хороших выходных!
Vladimir Kheifets Отправлено: 15 Сентября, 2017 - 14:00:28 • Тема: Неверная кодировка текста - PHP • Форум: Вопросы новичков

Ответов: 10
Просмотров: 205
Pavel8897 пишет:

В ней все и находится.
А нужно в таком случае прописывать так: UTF-8-BOM в .htaccess или там просто можно UTF-8?


До этого Вы написали: "Да, все верно, текст в 1251, а на странице стоит UTF-8 без BOM."
Теперь пишите: "В ней все и находится." т.е. тексты тоже в UTF-8 или?
Проверить, в какой кодировке тексты, которые не правильно выводятся можно
поменяв кодировку страницы в браузере.
Vladimir Kheifets Отправлено: 15 Сентября, 2017 - 10:14:14 • Тема: Неверная кодировка текста - PHP • Форум: Вопросы новичков

Ответов: 10
Просмотров: 205
Pavel8897 пишет:
Доброго дня! Сделал вывод русского текста из таблицы phpmyadmin, но на выходе получились знаки вопроса. Подскажите, в чем может быть дело, или может как правильно подставить функция iconv?
PHP:
скопировать код в буфер обмена
  1. $_SESSION['id'] = $result['id'];


Добрый день, Павел! Судя по тому что, Вы открыли новую тему о том же, Вам не удалось найти решение.
Знаки вопроса вместо русского текста выдаются из-за того, что кодировка страницы UTF-8, а текст вероятно в windows-1251.
Вы можете либо поменять кодировку страницы (как см. тему "Проверка сессии и вывод имени") либо перекодировать текст в UTF-8
Для перкодировки попробуйте использовать функцию:
PHP:
скопировать код в буфер обмена
  1. function DicCodeToUTF($sp, $str){
  2.    $code=($sp=="ru")?"windows-1251":"iso-8859-1";
  3.    return mb_convert_encoding($str, "utf-8", $code);
  4. }

Возможно, что у Вас входная кодировка не "windows-1251".
Если не получится поменяйте на свою.
Удачи!
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 20:41:05 • Тема: Нахождение значений переменной • Форум: Вопросы новичков

Ответов: 12
Просмотров: 226
onelawyer пишет:
Vladimir Kheifets пишет:
onelawyer пишет:
Vladimir Kheifets пишет:
onelawyer пишет:

Не уверен, что есть такая функция sortFields()
Мне просто нужно понять где эти значения, может нужно какой то запрос написать? Или если эти значения в БД, то почему я не могу их там найти


Если у Вас на строку $fields = sortFields(); не выдаётся сообщение об ошибке и присвиваются значения массива $fields, то это функция у Вас навеняка есть.
Сделайте поиск на локальной машине на "sortFields()"


Windows к сожалению не умеет искать в php-файлах, только если через редактор, но я уже в ручном режиме просмотрел и что-то не могу найти такой функции


Поробуйте искать в файлах через PHP Expert Editor или Notepad++


Да именно редакторами ищу, но пока не нашёл sortFields()


У Вас есть Notepad++? https://notepad-plus-plus[dot]org/do[dot][dot][dot]load/v7[dot]5[dot]1[dot]html
Не забудьте отметить - искать в поддиректориях
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 20:29:00 • Тема: Нахождение значений переменной • Форум: Вопросы новичков

Ответов: 12
Просмотров: 226
onelawyer пишет:
Vladimir Kheifets пишет:
onelawyer пишет:

Не уверен, что есть такая функция sortFields()
Мне просто нужно понять где эти значения, может нужно какой то запрос написать? Или если эти значения в БД, то почему я не могу их там найти


Если у Вас на строку $fields = sortFields(); не выдаётся сообщение об ошибке и присвиваются значения массива $fields, то это функция у Вас навеняка есть.
Сделайте поиск на локальной машине на "sortFields()"


Windows к сожалению не умеет искать в php-файлах, только если через редактор, но я уже в ручном режиме просмотрел и что-то не могу найти такой функции


Попробуйте искать в файлах через PHP Expert Editor или Notepad++
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 20:21:38 • Тема: Проверка сессии и вывод имени - PHP • Форум: Вопросы новичков

Ответов: 7
Просмотров: 238
Pavel8897 пишет:
Vladimir Kheifets пишет:
По-опыту. Если в PHP-файле перед первым "<?" есть хотя бы один пробел, то
ini_set("default_charset", "windows-1251") работать не будет.

Проверьте, пожалуйста, есть ли у Вас в PHP:
header("Content-Type: text/html; charset=windows-1251'', true);
и в HTML:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Здесь это работает на PHP7:
https://www[dot]alto-booking[dot]com

Если не поможет, то попробуйте поставить mysqli_set_charset
перед mysqli_query
Удачи!


Спасибо огромное! Имя теперь отображается нормально, но вот все остальное превращается в каракули. Попробовал все функции, что Вы подсказали.


Добрый вечер! Имя выбирается из базы данных.Верно? Откуда берётся остальное, которое превращается в каракули? Покажите, пожалуйста, скриншоты.
Если тексты заданы в php-коде, проверьте установки в редакторе.
Например, PHP Expert Editor есть установки Encoding: ANSI или UTF-8
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 16:43:40 • Тема: Нахождение значений переменной • Форум: Вопросы новичков

Ответов: 12
Просмотров: 226
onelawyer пишет:

Не уверен, что есть такая функция sortFields()
Мне просто нужно понять где эти значения, может нужно какой то запрос написать? Или если эти значения в БД, то почему я не могу их там найти


Если у Вас на строку $fields = sortFields(); не выдаётся сообщение об ошибке и присвиваются значения массива $fields, то это функция у Вас навеняка есть.
Сделайте поиск на локальной машине на "sortFields()"
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 16:14:04 • Тема: Нахождение значений переменной • Форум: Вопросы новичков

Ответов: 12
Просмотров: 226
onelawyer пишет:
Спойлер (Отобразить)

Тогда как найти этот массив $fields с его значениями $v, т.к. мне нужно изменить эти значения

Вам нужно найти функцию sortFields() т.к. $fields = sortFields();
Параметров у неё нет. Возможно она выбирает значения из $_REQUEST['order_by'] или из БД.
Vladimir Kheifets Отправлено: 14 Сентября, 2017 - 15:36:45 • Тема: Нахождение значений переменной • Форум: Вопросы новичков

Ответов: 12
Просмотров: 226
onelawyer пишет:
Добрый день, подскажите пожалуйста, где хранятся значения переменной $v функции sortBlock

CODE (htmlphp):
скопировать код в буфер обмена
  1.     public function sortBlock()
  2.     {
  3.         $orderBy = isset($_REQUEST['order_by']) ? urldecode($_REQUEST['order_by']) : '';
  4.  
  5.         $fields = sortFields();
  6.  
  7.         $html = '<select name="order_by" id="orderby">';
  8.  
  9.         foreach ($fields as $k => $v) {
  10.             $html .= "<option value=\"$k\"".($orderBy == $k ? ' selected' : '').">$v</option>";
  11.             $i++;
  12.         }
  13.  
  14.         $html .= '</select>';
  15.  
  16.         return $html;
  17.     }


Результат работы:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="sort-box filter-param">Сортировка: <select name="order_by" id="orderby"><option value="sku:asc">По артикулу</option><option value="price:asc">По возрастанию цены</option><option value="price:desc" selected="">По убыванию цены</option><option value="popular:desc">По популярности</option></select></div>


Добрый день! Значения переменной $v хранятся в массиве $fields, который выдаёт функция sortFields().
В цикле foreach ($fields as $k => $v) из массива $fields выбирается пары ключ => значение.

Страниц (9): [1] 2 3 4 5 6 7 8 9 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB