20.11.2017, 12:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от mikello
|
$name = htmlspecialchars($name); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные
|
Это делается при выводе из базы, а не при сохранении.
|
|
20.11.2017, 12:41
|
Аспирант
|
|
Регистрация: 18.11.2017
Сообщений: 68
|
|
Не помогло.
Вообще странно это, т.к. при первой загрузке (Load(1)) прокручивает до последнего сообщения.
|
|
20.11.2017, 12:45
|
Аспирант
|
|
Регистрация: 18.11.2017
Сообщений: 68
|
|
Ещё заметил, что функция Send при нажатии на Отправить происходит с некоторой задержкой.
|
|
20.11.2017, 12:49
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
mikello, замените в index.php это:
setInterval("Load();", 1000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд)
На это:
setInterval("Load(1);", 1000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд)
Кривой чат, имхо.
|
|
20.11.2017, 12:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от mikello
|
Не помогло.
|
Это ответ на мой комментарий? А это не относится к проблемам на клиенте, это к вопросу хранения данных. БД может хранить в себе любые "колющие и режущие" сущности, ей без разницы тег это или текст обычный. А преобразованные в html мнемоники символы сохраненные в базе могут быть источником проблем, к примеру при поиске в ней.
Все таковые преобразования делаются при выводе в браузер.
|
|
20.11.2017, 13:06
|
Аспирант
|
|
Регистрация: 18.11.2017
Сообщений: 68
|
|
Нет , это ответ на другой комментарий, не ваш.
Nexus, теперь если я хочу просмотреть ранние сообщения я этого сделать не могу, т.к. полоса прокрутки съезжает вниз каждые 1000 мс
|
|
20.11.2017, 13:08
|
Аспирант
|
|
Регистрация: 18.11.2017
Сообщений: 68
|
|
Цитата:
|
Кривой чат, имхо.
|
Я его в интернете нашел, писал не сам. Просто для того, чтобы разобраться в коде.
|
|
20.11.2017, 13:10
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
mikello, тогда верните как было и замените отправку post запроса в функции "send" этим:
$.post("ajax.php", {
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
function() {
Load(1); // по завершению отправки вызываем функцию загрузки новых сообщений Load()
})
|
|
20.11.2017, 13:15
|
Аспирант
|
|
Регистрация: 18.11.2017
Сообщений: 68
|
|
Работает, спасибо большое!
А чем ваш код отличается от второго?:
Цитата:
|
$.post("ajax.php", {
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
function() {
Load(1); // по завершению отправки вызываем функцию загрузки новых сообщений Load()
})
|
Цитата:
|
$.post("ajax.php", {
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
Load(1))
|
|
|
20.11.2017, 13:36
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
Сообщение от mikello
|
А чем ваш код отличается от второго?:
|
Тем, что функция "Load" запускается после завершения запроса к серверу, а не вместе с ним.
|
|
|
|