PHP.SU

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

Страниц (27): « 1 [2] 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 394
NeuroZ Отправлено: 02 Декабря, 2016 - 09:35:21 • Тема: Вопросик • Форум: Вопросы новичков

Ответов: 2
Просмотров: 123
про explode плюсую.
+ Можно также посмотреть функцию eval
NeuroZ Отправлено: 01 Декабря, 2016 - 09:06:07 • Тема: Вставка данных из поля в файл • Форум: Вопросы новичков

Ответов: 1
Просмотров: 93
Это вам в JavaScript
CODE (html):
скопировать код в буфер обмена
  1. <img id="cust-img" src="path1" />
  2. <input id="imgpath" type="text" value="" name="" />
  3. <button>заменить картинку</button>

Опишу на примере библиотеки jQuery
CODE (javascript):
скопировать код в буфер обмена
  1. jQuery('button').click(function(){
  2. var newpath = jQuery('#imgpath').val();
  3. jQuery('#cust-img').attr('src', newpath);
  4. })

(Добавление)
Важно! Если картинка лежит на другом сервере, то ссылка должна быть абсолютной.
NeuroZ Отправлено: 01 Декабря, 2016 - 09:00:18 • Тема: классы и функции • Форум: Вопросы новичков

Ответов: 4
Просмотров: 230
Рачей пишет:
А не правильнее ли будет использовать
myclass1::Action()
myclass2::Action()
myclass3::Action()

Рачей пишет:
Потому что бывает что несколько раз а одном файле приходится использовать один класс с разными действиями.

Сами себе противоречите.
NeuroZ Отправлено: 30 Ноября, 2016 - 13:36:18 • Тема: Подскажите пожалуйста по БЭК-энду • Форум: Вопросы новичков

Ответов: 2
Просмотров: 141
http://www.php.su/lessons/?lesson_0
(Добавление)
Цитата:
причин может быть множество, а последствия могут быть разными (с)
NeuroZ Отправлено: 30 Ноября, 2016 - 12:03:08 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
Sail пишет:
для чего "заставлять" браузер? Файл ведь выгружается в соответствии с каким-то протоколом для определенной цели и должен правильно обрабатываться "на другой стороне". И вряд-ли этой "другой стороной" является браузер...

Ну я об этом тоже думал... Я хотел бы предотвратить возможные ошибки. Например если клиент предпочитает не скачивать файл и работать с ним у себя на машине, а, например, парсить напрямую из браузера (аля работать с файлом на сервере) - то у него ничего не получится..
(Добавление)
Мелкий пишет:
http://nginx[dot]org/ru/docs/http/ng[dot][dot][dot]rset_module[dot]html

В обычных страницах есть соответствующий заголовок:
Content-Type:text/html; charset=utf-8
xml стоит просто Content-Type:text/xml;

В общем удалил из конфига nginx для данного сайта принудительную кодировку

и все заработало

Всем спасибо, за советы!
NeuroZ Отправлено: 30 Ноября, 2016 - 11:39:32 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
В общем сервер по дефолту открывает все страницы в UTF-8. Если в ручную через настройки браузера поставить Кириллицу Windows-1251, То ошибок нет и файл корректно открывается.
Соответственно как сделать так, чтобы файл по умолчанию открывался в нужной кодировке?
(Добавление)
Я просто не совсем пойму как мне задать конкретные заголовки при прямом обращении к XML файлу
(Добавление)
Мелкий пишет:
Может там идёт content-type с utf8, и браузер верит заголовку, а не самому xml

Так скорей всего и есть (я вообще не вижу заголовка с кодировкой) - значит используется дефолтный (utf-8). Так как заставить читать windows-1251 (в конкретном случае) ?
NeuroZ Отправлено: 30 Ноября, 2016 - 11:34:12 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
Вот что в source сервера:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?xml version="1.0" encoding="windows-1251"?>
  2. <&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;="2.03" &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;="2016-11-30"/>

Нажимаю ctrl+s. Сохраняю на локалке. Открываю. Вот source локалки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?xml version="1.0" encoding="windows-1251"?>
  2. <КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="2016-11-30"/>
  3.  

(Добавление)
вместо ;&#65533 - черные ромбы (плохая кодировка).
Вопрос - как заставить файл на сервере открываться в нужной мне кодировке?
NeuroZ Отправлено: 30 Ноября, 2016 - 10:51:51 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
Обнаружил новые грабли...
Цитата:
This page contains the following errors:
error on line 2 at column 1: Encoding error
Below is a rendering of the page up to the first error.

Эту ошибку выдает браузер при попытке открыть файл на сервере (файл во вложении), там всего 2 строчки.

Из наблюдений:
1. Если этот файл открыть на локальном сервере - то никаких ошибок нет.
2. Если на сервере вместо русских букв написать латиницу - то файл открывается без ошибок.

Для построения использую DOM:
PHP:
скопировать код в буфер обмена
  1. $dom = new DOMDocument('1.0', 'windows-1251');
  2. $date = date("Y-m-d", time());
  3. $root = $dom->createElement('КоммерческаяИнформация');
  4. $root->setAttribute('ВерсияСхемы', '2.03');
  5. $root->setAttribute('ДатаФормирования', $date);
  6. $dom->appendChild($root);
  7. $dom->save(JPATH_BASE . '/media/orders/order.xml');

(Добавление)
Также хочу заметить (возможно это поможет) - сам файл открыт в кодировке utf-8. Но если делать преобразование
PHP:
скопировать код в буфер обмена
  1. $text = mb_convert_encoding('КоммерческаяИнформация', 'windows-1251');
  2. $root = $dom->createElement($text);

То появляется ошибка "Invalid Character Error"
(Добавление)
И все равно больше всего смущает разное поведение на сервере и на локалке... Может надо что-то где-то настроить в самом конфиге сервера?
NeuroZ Отправлено: 29 Ноября, 2016 - 13:02:33 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
Sail пишет:
Есть тег, есть атрибуты...

Блин! Точно... запарка)) спасибо))
NeuroZ Отправлено: 29 Ноября, 2016 - 12:02:00 • Тема: помощь по ЧПУ • Форум: Вопросы новичков

Ответов: 17
Просмотров: 866
nooblamer пишет:
А если страниц будет много, например, 10 к и более, запрос же будет долго выполняться...

Ну а в JoomlaSEF разве не по такой же логике работает?

Я, конечно, не знаю, что у вас за велосипед и какие задачи он(а) должна решать... Но я бы для удобства использования таблиц - использовал отдельное поле для хранения GET в виде json, отдельно ЧПУ линк, отдельно линк без ЧПУ. + может какие-то служебные данные типа кастомных мета-данных или еще что-либо... И конечно кэшировал бы всё, что существенно влияло бы на скорость обработки таких url.
NeuroZ Отправлено: 29 Ноября, 2016 - 11:36:42 • Тема: помощь по ЧПУ • Форум: Вопросы новичков

Ответов: 17
Просмотров: 866
Палка о 2 концах: либо используйте БД (но тогда будут просадки при большом кол-ве страниц), и JoomlaSEF не застрахована от этого как и любое приложение работающее с ЧПУ через БД. (а сама реализация - уже дело вашей фантазии)
Либо использовать правила роутинга для вашей CMS (будет выигрывать в скорости перед БД)
(Добавление)
А у вас получается задача:
Хочу чтобы сайт грузился за 1 сек, при этом там 5 слайдров с неограниченным числом картинок с разрешением в 4к, и все это работало на бесплатном хостинге при посещении 100к уников
Ну в общем аллегорию вы поняли...
NeuroZ Отправлено: 29 Ноября, 2016 - 10:43:24 • Тема: Создание XML с кириллицей через DOM • Форум: Вопросы новичков

Ответов: 10
Просмотров: 732
Всем привет! Проблема с формированием файла выгрузки для 1С.
PHP:
скопировать код в буфер обмена
  1. $dom = new DOMDocument('1.0', 'windows-1251');
  2. $date = date("Y-m-d", time());
  3. $root = $dom->createElement(iconv('cp1251', 'utf-8', '<КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="' . $date . '">'));
  4. $dom->appendChild($root);

Это начало файла. PHP ругается: Fatal error: Uncaught DOMException: Invalid Character
Как быть?
NeuroZ Отправлено: 29 Ноября, 2016 - 10:36:39 • Тема: помощь по ЧПУ • Форум: Вопросы новичков

Ответов: 17
Просмотров: 866
1. POST доступен только если он был передан на конкретную страницу
2. GET доступен аналогично (но тогда рушится сам ЧПУ). Т.е. будет site.ru/catalog/page?id=3&param=somedata&...
3. Чтобы избежать проблем в пункте 2 нужно создать с вой роутинг с правилами. Я могу расписать пример работу роутинга J! может это наведет вас на какие-то идеи, касательно вашей CMS.

Итак,
-При выключенном ЧПУ в url содержится весь GET запрос страницы и ее параметров.
-При включенном ЧПУ подключается файл router.php который переопределяется для каждого компонента.
А. Если такого файла нет, то действует стандартный J! роутинг.
В. Если нет пунктам меню (ItemID в GET), то первой частью url будет /component/
С. Далее (точно не помню) подставляется значения option из GET /option/
Д. Затем значение view из GET
Е. Все остальные GET переменные либо обрабатываются согласно правилам router.php либо идут как обычные GET параметры (как я описал выше в п.2)

Если надо отправить POST- то ничего общего с роутингом он не имеет. Есть опредленные правила парсинга переменных. Если в POST есть option и task разделенный точкой, то это значит, что запрос пойдет на контроллер с именем (первая часть task (до точки)) компонента option и вызовет там метод task (после точки).
Для наглядности
CODE (html):
скопировать код в буфер обмена
  1. <form action="#" method="post">
  2. <input type="hidden" name="option" value="com_test" />
  3. <input type="hidden" name="task" value="user.create" />
  4. </form>

в action можно также подставить строку index.php?option=com_test&task=user.create - а в метод добавить переменную отвечающую за способ отправки get/post. И таким образом, если будет выбран get, то функционировать код не перестанет.
Но возвращаясь к описанию:
будет вызван метод create контроллера user.php из компонента com_test. Вот и все)
NeuroZ Отправлено: 29 Ноября, 2016 - 08:43:59 • Тема: помощь по ЧПУ • Форум: Вопросы новичков

Ответов: 17
Просмотров: 866
nooblamer пишет:
В Joomla 1.0 есть такой замечательный компонент JoomSEF, который позволяет делать именно подобное, в нём можно настроить переадресацию, в поле "Внутренняя сылка" занести любой внутренний URL с GET параметрами, а в поле "Новая SEF-ссылка" занести произвольный ЧПУ URL, и при обращении по этому произвольному ЧПУ URL в компоненте будут доступны те самые GET параметры.

1. В современной J! есть компонент SH404SEF но и он не панацея.
2. Как один из простых вариантов - можно еще попробовать использовать REQUEST вместо GET (но это не самый лучший выход при работе с ЧПУ)
nooblamer пишет:
в своей самописной CMS

А при чем тут тогда J! и его расширения? Или может имеется в виду самописный компонент?
nooblamer пишет:
Не понятно, как JoomSEF с этим справляется, пока не хватает уровня знаний, чтобы разобрать его осознанно)

Зато хватает, чтобы написать свою CMS ))) по-моему не с того вы начали))

А теперь самое главное: зачем все эти БД и прилюдии? Придумайте правило роутинга. У J! помимо сторонних компонентов есть своя система роутинга, которая прекрасно работает вообще без БД
NeuroZ Отправлено: 28 Ноября, 2016 - 15:24:14 • Тема: Дынные из txt файла в БД и затем в таблицу на HTML страницу • Форум: Вопросы новичков

Ответов: 15
Просмотров: 732
Цитата:
('1',название,цена,количество,цвет)

1. Нужно экранировать все значения.
2. Числа можно не экранировать, если есть уверенность, что должен прийти интеджер в определенное поле - я бы вместо экранирования использовал жесткое приведение типа (int)
(Добавление)
И кстати для проверки коррректности SQL запроса - можно просто скопировать строчку и вставить в SQL-запрос через phpMyAdmin - если ошибок нет, значит ошибка не в SQL.
А пока что я вижу явные ошибки в SQL, а PHP кода не вижу вообще.

Страниц (27): « 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