Показать сообщение отдельно
  #69 (permalink)  
Старый 23.08.2015, 17:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Ваша проблема видна невооруженным глазом - htmlspacialchars не к месту. Но это только проблема, а чем она вызвана без "много букв" не понять.

Второе - window.open в контексте какого либо учебника, это верх неуважения к читателям, а чтобы понять почему, достаточно знать, что это окно без обязательств быть всегда сверху.

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

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

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

Пятое - самую простую html-страницу можно породить обычной формой, например, по договоренности, что каждое двойное нажатие клавиши Enter при выводе на страницу (если данные в базе) или при сохранении (если данные в файлах) будет превращено в параграфы. Это простая до бессовестного операция:

<?='<p>' . implode('</p><p>', array_diff(array_map('trim', explode("\r\n", $text)), [''])) . '</p>'?>


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

Шестое - храня данные в фалах, необходимость массива обуславливается только тем, что нужно хранить структуру (оглавление) учебника, а для вывода его страниц никакого JS вообще не нужно. JS нужно применять там, где он полезен, в данном случае для динамического добавления полей в форму выполняющей роль "html-редактора".

Последний раз редактировалось laimas, 23.08.2015 в 18:27.
Ответить с цитированием