Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Преобразовать строку в HTML код (обратное htmlspecialchars из php) (https://javascript.ru/forum/misc/57836-preobrazovat-stroku-v-html-kod-obratnoe-htmlspecialchars-iz-php.html)

laimas 23.08.2015 03:23

Цитата:

Сообщение от daslex
Допросом я это назвал, потому что я терпеливо отвечаю на ваши вопросы больше чем на страницу и получаю все новые и новые порции вопросов, среди которых есть советы, часть из которых просто "не рабочие варианты", но больше вопросов "почему", "почему каша", "почему не бд", почему "файлы", "зачем преобразовываете","почему", "почему", "почему", "кто автор описаний".., "зачем массив", "какой у Вас сайт".
___________________
У меня сайт НЕ интерактивный, скорее статический, но с БД. CMS Wordpress.

Так потрудитесь тогда хотя бы с документацией WP ознакомиться, а не поймете, на форуме его фанатиков расскажут. Но только не надо из себя мученика строить. Хотелось бы объяснить или помочь, но нужно быть в курсе, ибо я не ясновидящий. Но я точно знаю, что вы поступаете на все 100% не верно, а Ajax, это не панацея и уж совсем не лекарство. KosBeg, парень умный, но в данном случае он оказывает вам медвежью услугу.

Больше я вас "не допрашиваю", делайте что хотите.

daslex 23.08.2015 11:38

Я благодарен KosBeg за то, что он пытался помочь.

Причем тут документация WP? Эта моя задача к CMS вообще никакого отношения не имеет.

Либо она делается на файлах+php+javascript, либо она делается php+бд+javascript.

Первый случай сильно геморройный, это я понял. Решаемый, но не принятый javascript прогеррами. Просто потому что гемморный.
Второй случай попроще и там скорее надо хорошо бд знать. Потому что я попробовал и у меня уже возникли некоторые проблемы. Добавить таблицу, выполнить запрос и вписать текст по выборке на обычную страницу у меня получилось, но кое что идет не так. Просто это форум javascript, поэтому я сюда не спрашиваю.

laimas 23.08.2015 13:02

Цитата:

Сообщение от daslex
Причем тут документация WP?

Потому, что после "допросов" и глупостей о том, что делать на базе не выгодно, оказывается имеется готовая CMS, но ее нельзя использовать, ибо это испортит базу ее. Ну полная билиберда.

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

daslex 23.08.2015 13:33

Я говорил, что не умею работать с бд.
У меня был опыт "испоганивания" бд форума дополнениями, которые лезут в бд.
Я говорил, что я не против решения на бд.

Что значит нельзя использовать CMS? CMS - это CMS. Я ее по умолчанию использую. А то, что CMS существует в природе, вообще не означает, что у нее на всё решения готовы. Даже если у меня есть CMS, мне, как и любому другому пользователю, использующему CMS, нужны мозги и руки, а иногда советы. CMS - это не панацея от всех возникающих задач.

laimas 23.08.2015 13:48

Цитата:

Сообщение от daslex
Что значит нельзя использовать CMS?

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

Что касается не использования базы, можно но никак не так как у вас. А как, на это исчерпывающий ответ даст внимательное рассмотрения любого оглавления в книге, то же самой, что описывает и некий язык программирования. Это будет ответ на то какая файловая структура должна быть у сайта, их именования, и то, что нужен будет один единственный массив, но никак не содержащий в себе страницы (file_get_contents в данном случае вообще не нужен), а исключительно для навигации и соответствующих запросов.

daslex 23.08.2015 14:05

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

Я умею делать рутинные вещи в CMS, но из-за некоторых багов, я, например, не могу использовать визуальный редактор в вордпрессе., поэтому HTML, руки и вперед. Так и в остальном. Существование CMS не делает мне одолжения в виде готового решения, поэтому я пытаюсь использовать разные варианты решений. Один вот вариант привел сюда с таким вот вопросом.

Я думаю, что про 1 единственный массив, который пользуется для навигации небольшое заблуждение. Полагаю из-за непонимания моей цели. Без запросов к бд не выйдет с массивом на навигацию.

laimas 23.08.2015 14:21

Цитата:

Сообщение от daslex
Я думаю, что про 1 единственный массив, который пользуется для навигации небольшое заблуждение.

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

daslex 23.08.2015 14:33

Не последует. Вы мне дали дельный совет, который скорее всего поможет мне с моей возней с бд. Как раз о навигации.

Заблуждение потому что нельзя вытащить javascript'ом страницу, которая хранится на сервере. А при навигации будет адрес на сервер, обращение к javascript и тупик.

laimas 23.08.2015 15:01

Цитата:

Сообщение от daslex
Заблуждение потому что нельзя вытащить javascript'ом страницу, которая хранится на сервере. А при навигации будет адрес на сервер, обращение к javascript и тупик.

JS не для вытаскивания страниц с сервера, да этого и не нужно. Несете какую-то ерунду.

daslex 23.08.2015 15:15

Вы просто не понимаете то, что мне нужно. Вот и всё.

Я прекрасно знаю зачем нужен javascript и что он не серверный, зачем нужен php, почему я в php делал массив и загонял в него именно текст из файлов, а не адрес страницы для навигации и выхода на неё.

KosBeg 23.08.2015 15:24

Цитата:

Сообщение от daslex
и что он не серверный

NodeJS :D

laimas 23.08.2015 15:24

Не нужно для вашего учебника никакого JS вообще! А window.open, это препаскуднейшая штуковина и для повествования совсем не подходящая.

Думайте.

daslex 23.08.2015 15:42

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

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

Аж 6 страниц флуда. Печально.

KosBeg,Я вам там про консоль отписал, что ошибка у меня выскакивала в опере. Может не заметили. И еще я в самом начале о втором посте про второй параметр функции спрашивал, а ответа так и не увидел.

laimas 23.08.2015 15:47

Цитата:

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

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

Делайте что хотите, не дай бог мне напороться на таких самоуверенных как вы еще раз. )

KosBeg 23.08.2015 15:48

UPD: протестил в хроме, мозиле и опере - все работает
Цитата:

Сообщение от daslex
Может не заметили

заметил, но в чем ошибка не знаю...
Uncaught SyntaxError: Unexpected token <
там в коде вообще нет символа '<'
откуда оно взялось?
----------------
function MyFunc(url){
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status != 200) {
alert('Ошибка: ' + xhr.status + '|' + xhr.statusText);
} else {
alert('All is ok');
var NewWin=window.open('','','...');
NewWin.document.write(xhr.responseText); // xhr.responseText - переменная в которой хранится нужный текст
}
}
}
MyFunc('http://javascript.ru/forum/');
----------------
Цитата:

Сообщение от daslex
И еще я в самом начале о втором посте про второй параметр функции спрашивал, а ответа так и не увидел.

я вам даже сслыку дал, а вам лень прочитать...
http://phpjs.org/functions/htmlspecialchars_decode/

KosBeg 23.08.2015 15:51

Цитата:

Сообщение от laimas
Делайте что хотите, не дай Бог мне напороться на таких самоуверенных как вы еще раз. )

:)
надо с большой буквы, а не то напоретесь =)

laimas 23.08.2015 15:55

KosBeg,

Товарищ изначально все делает через задницу, а Вы помогаете ему засунуть его проблему еще глубже в эту саму задницу. :)

KosBeg 23.08.2015 15:57

Цитата:

Сообщение от laimas
помогаете ему засунуть его проблему еще глубже в эту саму задницу. :)

да, помощник из меня хреновый)))

daslex 23.08.2015 15:59

Цитата:

Сообщение от KosBeg (Сообщение 385282)
я вам даже сслыку дал, а вам лень прочитать...
http://phpjs.org/functions/htmlspecialchars_decode/

Не лень. Просто там об этом не написано. А если написано, то слишком непонятным языком. Я вижу функцию, но не вижу ни способов вызова, ни описания параметров. В принципе, можно не объяснять.
____________________
О втором, откуда там взялся тег я тоже не знаю. Копипаст в консоль+Enter+поправка на адрес файла и на выходе есть то, что есть. Коли уж не знаете, это моя проблема. Не Ваша. Я полагал, что это то из-за чего я экранировал символы и приводил к HTML сущностям, но очень может быть ошибочно.

Что я делаю не так, может и не узнаю.

Пока что я перешел к решению через бд и больше на нем сосредоточен.

daslex 23.08.2015 16:03

Цитата:

Сообщение от KosBeg (Сообщение 385285)
да, помощник из меня хреновый)))

Лучше тот помощник, который что-то показывает, чем тот помощник который только причитает.

KosBeg 23.08.2015 16:06

Цитата:

Сообщение от daslex
Пока что я перешел к решению через бд и больше на нем сосредоточен.

по чуть-чуть ваша ситуация вылазит из задницы)
Цитата:

Сообщение от daslex
Не лень. Просто там об этом не написано. А если написано, то слишком непонятным языком.

ну да, там нету, но если посмотреть на код, то можно увидеть что второй параметр не обязателен
Цитата:

Сообщение от daslex
Лучше тот помощник, который что-то показывает, чем тот помощник который только причитает.

но я ни туда, ни сюда не подхожу :D

laimas 23.08.2015 16:11

Цитата:

Сообщение от daslex
Лучше тот помощник, который что-то показывает, чем тот помощник который только причитает.

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

А то все дураки, вы умный, а вам даже не вдомек, что кем-то ранее посоветованное hamlspecialchars, это уже сверхглупость, которую вы скушали и уцепились. А теперь к этому еще и Ajax, а он то тут причем?

А вам посоветовали очередной костыль, и вы его чуть не проглотили. Так что проблемы ваши сугубо по вашей оп вашей вине, а не по моей.

Rise 23.08.2015 16:19

Цитата:

Сообщение от KosBeg (Сообщение 385289)
по чуть-чуть ваша ситуация вылазит из задницы)

:lol:

daslex 23.08.2015 16:23

Цитата:

Сообщение от laimas (Сообщение 385281)
Вы, извиняюсь, игнорируете вопросы,

Делайте что хотите, не дай бог мне напороться на таких самоуверенных как вы еще раз. )

Я ни одного Вашего вопроса не проигнорировал.
Как бы я не отвечал, я получаю ответы в большинстве своем:
"Вы не знате ФС"
"Вы все делаете через задницу"
"Вам не нужно"
"Это прискверно"
"Думайте"

Хватит притягивать желаемое за уши.

Мне интересно даже в чем моя самоуверенность. В том что я слишком самоуверен в своих незнаниях?

daslex 23.08.2015 16:28

Цитата:

Сообщение от laimas (Сообщение 385290)
Это форум а не кафедра JS, здесь для оказания реальной помощи зачастую требуется обоюдная помощь, вопрошающего в пояснении, отвечающего а в его анализе.

Я уже писал, что проще смотреть на ситуацию моими глазами чем описывать все тонкости.

Посмотрел, увидел главные ошибки. Сказал как лучше сделать. И нет проблем. Нет же, я пытаюсь разжевать, мне некоторые пытаются помочь, при этом используют "мою неверную дорогу", и я слушаю и слушаю какой же я мудак, который делает все максимально неверно, только вот без приведения обвинителями к нужным путям. Угадайка не получится. Не понимая моей цели любому мне помочь тяжеловато.

laimas 23.08.2015 16:41

Цитата:

Сообщение от daslex
Мне интересно даже в чем моя самоуверенность. В том что я слишком самоуверен в своих незнаниях?

В том, что вы правы, а все что вам не советуют, хотя советовать очень трудно не зная ситуации на сервере, ибо - CMS ваша, у вас почему-то ну ни в какую не может хранить ваш контент. Это уже смешно. Ну бог с ним.
Не знаете базы, и оказывается, что база это нечто ужасно неудобное (а не удобствах правки данных в базе, о чем вы тоже рассуждали, я дипломатично промолчу), это от непонимания. Ну бог с ним.
Файлы, можно, а почему бы и нет. Но беда в том, что вы поступаете тут как раз через задницу, и да, это очень плохо. И что, вы послушали меня? Как бы не так, вы даже не остановились, не призадумались, все также продолжаете гнуть свою линию, причем виновен я - не понимаю чего вам надо, допрашиваю вас, ну и т.д...

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

Не хотите думать не надо, собирайте все что вам предложат и гадайте - подойдет, не подойдет, подойдет... Мне как-то по барабану, мне то от этого хуже уж точно не будет. )

daslex 23.08.2015 16:55

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

Просто это нереально длинная формулировка несложной задачи.

daslex 23.08.2015 17:15

Цитата:

Сообщение от laimas (Сообщение 385295)
В том, что вы правы,

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

Я только писал о том, что Вы не до конца понимаете моей цели. Вы это и сами подтверждаете:
советовать очень трудно не зная ситуации

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

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

Вы так и не поняли почему я проглотил HTMLspecialchars, хотя я несколько раз пытался ответить.

Работая на файлах, я получал текст в переменную php. У меня такой случай, что внутри переменной php нужно обрабатывать текст таким образом, чтобы javascript его правильно проглатывал. Это не я придумал. Просто иначе у меня не работало. Поэтому пришлось обрабатывать текст внутри переменной php и отдавать его в javascript. Так все работало. При попытке в php поместить текст в переменную, текст буквально ломается и в переменной оказывается не текст, а неопределенное значение. Вот отсюда ноги растут у htmlspecialchars, но в открываемое окно такого вида текст прописывается в виде страницы, которая вырисовывает HTML код. Вот и всё.

_______________
Это даже не описание задачи и почему я здесь со своим этим вопросов мучаю вас тут. Описание моего пути, тонкостей и ответов на возможные вопросы выглядит значительно длиннее.

В то же время ели тупо посмотреть на ситуацию глазами визуально, то можно быстро понять чего я хочу.

laimas 23.08.2015 17:45

Цитата:

Сообщение от 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-редактора".

daslex 23.08.2015 18:24

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

Я делал подсветку кода в открываемом окне. Подсветка не срабатывала. Текст ломался. В ход пошли приемы экранирования и переработки под HTMLspecialchars. Окно открыть, текст вписать, код подсветить удалось. Только редактировать очень неудобно было.
Попробовал сделать тоже самое чуть-чуть в другом виде, где редактировать HTML было бы проще. Не заработало.

Я имел опыт знакомства с ajax, кое что пытался на нем писать, очень простое. Поэтому общее представление об этой технологии я имею. Со стороны должно казаться, что вместо открываемого окна лучше подгружать текст в страницу. Но я считаю, что у меня та ситуация, когда окно выгоднее.

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

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

htmlspecialchars
Надеюсь меня не забанят. Я очень долго пытался объяснить про этот момент, но не получается.
http://www.cyberforum.ru/php-beginne...ad1517252.html
___________________

Насчет испорченного текста в БД. Вероятно при моей попытке он как раз портится, но я не знаю о бд. Я не знаю, что с этим делать. Кое что у меня там не так получается.
___________________
Насчет структуры.
Я не очень понимаю какую из структур имеете ввиду. У меня будет множество текстов. Может 1000, может 2000. Каждый из этих текстов - это HTML страница. Вот эту HTML страницу я буду показывать пользователю, который захочет увидеть ее содержимое. Так как их много, а нужны тексты из определенного (потому как я открываю окно, то с указанием адресов не прокатит), то я решил, что разумно хранить эти тексты в массиве. (сейчас вот в бд). По идее не должно иметь значения где, разве что с бд работать должно быть удобнее.

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

После четвертого я бы и рад понять, но не могу осилить, простите уж за это.

laimas 23.08.2015 18:42

Цитата:

Сообщение от daslex
Я делал подсветку кода в открываемом окне. Подсветка не срабатывала. Текст ломался. В ход пошли приемы экранирования и переработки под HTMLspecialchars. Окно открыть, текст вписать, код подсветить удалось. Только редактировать очень неудобно было.

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

Цитата:

Сообщение от daslex
Мне не нужна индексация. Мне надо так, чтобы пользователь не мог открыть напрямую страницу с текстом из файла или отыскать эту страницу в поиске. Я в некотором роде прячу ее, чтобы попасть на нее можно было только с сайта.

.htaccess закрывает прямой доступ пользователей к папкам, в то же время доступ скриптов к ним не запрещается, а следовательно нужен include "filename" из закрытой папки, а никак не Ajax.

Цитата:

Сообщение от daslex
Я не очень понимаю какую из структур имеете ввиду. У меня будет множество текстов. Может 1000, может 2000.

Оглавление любого учебника - это и есть самое полное представление о будущей структуре данных: как они будут храниться в случае файлов и их именования, или как они будут храниться в базе и их иерархия.

daslex 23.08.2015 20:41

Цитата:

Сообщение от laimas (Сообщение 385305)
Значит неудачный инструмент для этого был выбран (их готовых не один, не сложно найти в сети),

.htaccess закрывает прямой доступ пользователей к папкам, в то же время доступ скриптов к ним не запрещается, а следовательно нужен include "filename" из закрытой папки, а никак не Ajax.

Оглавление любого учебника - это и есть самое полное представление о будущей структуре данных: как они будут храниться в случае файлов и их именования, или как они будут храниться в базе и их иерархия.

Crayon-Syntax-highlighter не считаю неудачным инструментом. Неудачная потребность. Но никак не инструмент.

Доступ к скриптам вопрос взаимодействия php и javascript. (здесь я учитываю то, что я пытаюсь сделать)

Я понял о какой структуре речь. Она слишком простая. Но словами описывать не умею. Чем сильнее буду стараться, тем хуже опишу.

Про ajax я вообще ничего не писал. Это был всего-лишь один из предложенных мне вариантов. Я использовал только файлы+php+javascript. Изначально об ajax речи вообще не шло и потом тоже упора не него не было.

Это я всего-лишь пояснил то, что считаю неправильно растрактованным. Это риторическое сообщение.


Часовой пояс GMT +3, время: 17:18.