Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите вывести результат на страницу (https://javascript.ru/forum/misc/70106-pomogite-vyvesti-rezultat-na-stranicu.html)

Tomson123 11.08.2017 20:33

не асилил:help:

Tomson123 11.08.2017 20:48

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

Сообщение от Tomson123
А то малоли что отправят через авдресную строку
Не надо заниматься чепухой - strtr, str_replace и mysql_real_escape_string при выводе данных из базы, это полнейшая чепуха.

mysql_real_escape_string - это для экранирования данных перед записью в базу для исключения инъекции. Эта функция используется оригинальным расширением MySQL, которое разработчики настоятельно не рекомендуют использовать так как в новых версиях РНР оно исключено. Вместо этого расширения используйте mysqli или PDO, и работая с БД посредством подготовленных запросов, в которых экранирование будет выполнятся автоматически самим драйвером.

Смотри... вся эта чепуха прописана там не для радости или красоты!

Обьесняю! mysql_real_escape_string отвечает если я не ощибаюсь за то чтобы не было SQL иньекций! Торбишь чтобы какой нибудь залетный интузиаст не смог делать запросы в БД закоментировав часть моего обрашения к бд и прописав свое!

Эти постоянные переменные, функции обработки текста и т д служат для того чтобы какой нибудь дурачок не смог писать посты с сотней двумя буквами и сотней пробелов между неми ними! Чтобы небыло сотни отступов между двумя сообщениями! Да, можно было бы довольствоваться одной функцией htmlentities при этом на выдаче данные которые добавляются полностью без модерации могут быть засоренны сотней ненужных символом! Которые будут портить вид всего сайта, особенно если утебя еще идет и мобильная версия! Бывали случаи когда на форуме писали посты дети так что приходилось долго пролистывать вниз чтобы добраться до следушева поста, хотя в текушем было всего несколько слов!


Замена же "\'" на "'" и т.п., это глупости. Куда полезнее при записи данных пользователя в БД удалять экранирование пользователя. А каким методом произведен запрос можно узнать из $_SERVER["REQUEST_METHOD"], а с какого домена из $_SERVER["HTTP_ORIGIN"], правда старые браузеры такой заголовок могут и не передавать. В случае проверки браузер ли производит запрос, проверка сложнее.

И как ты видишь тогда BB теги сылок,html кода и т д на выдаче после того как ты порезал все теги там?

Tomson123 11.08.2017 20:52

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

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

Не "эта запись" должна добавляться на страницу, а все новые записи, которые на момент добавления пользователем своей были добавлены в базу. То есть, например, записи выводятся в контейнерах DIV начиная с первой. Если в атрибут этих контейнеров помещать ID записей, то при отправлении формы нужно получать из атрибута последнего контейнера ID последней (для клиента) записи и отправлять его на сервер. После успешного добавления записи сервер должен получить записи по условию WHERE `type` = 1 AND id > $id ORDER BY id, где $id, это последняя запись существующая у клиента на странице. Вот это он должен вернуть клиенту, а клиент их добавит на страницу в новых добавленных контейнерах.
Да, да именно так! Я все же смог разобраться с этой проблемой! И уже написал шпаргалку себе!

Сообщение от Tomson123
Проблема в том, что когда я кликаю мышкой по полю ...
Проблема в том, что $("#FormSubmit").click(function (e) { ... это полная ахинея. Что за событие формы обрабатывается в моем коде в строке 01?

Согласен, я там запутался и чуть пойже добавления того поста нашел где ощибся и все исправил! Спасибо.

laimas 12.08.2017 05:14

:D Ну юмористы. Я писал о том, что не нужно все что вам написано цитировать, включая и кучу кода, чего вами было сделано.

Теперь же, вы берете из моего цитаты, для комментирования, но не помещаете их в теги цитирования, и как теперь это прочесть? :)

Цитата:

Сообщение от Tomson123
mysql_real_escape_string отвечает если я не ощибаюсь за то чтобы не было SQL иньекций!

Я прекрасно осведомлен о данной функции и ее предназначении, но то что вы делаете, это полный бедлам. И вообще, пора выбрасывать в помойку оригинальное расширение MySQL. Кроме того, вы разработчик, вы и только вы определяете типы данных которыми будет производится обмен клиента с сервером. Допустим, серверный сценарий ожидает от клиента число идентификатор для выборки по нему из базы. В данном случае выгоднее привести полученное значение к ожидаемому типу и по результату делать или нет запрос к базе, чем использовать mysql_real_escape_string:

if($id = (int)$_POST['id']) {
    //запрос по WHERE id = $id
} else //подстава


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

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


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