Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запретить символ в УРЛ-ах (https://javascript.ru/forum/misc/29978-zapretit-simvol-v-url-akh.html)

Deff 19.07.2012 20:56

Spark,
Передвинул Выше

Spark 19.07.2012 21:02

Deff,
Не помогает.
Если в сервере проблема, тогда почему на других сайтах с этим чатом такая же проблема?

Deff 19.07.2012 21:23

Spark,
Еще попытка: - убрать все предыдущие правки и воткнуть сюды
function load_image(url)
{
if(url.match(/(http:\/\/[^\s\?]+)\.(?:jpg|jpeg|gif|png)/ig)==null) url=http://forum.mybb.ru/i/blank.gif;

    this.load = null;
    this.width = 0;
    this.height = 0;
    var self = this;
    var img = new Image();
    img.onload = function () {
        self.width = this.width;
        self.height = this.height;
        if(self.load != null)
            self.load(self);
    }
    img.src = url;
}

Spark 19.07.2012 21:48

Deff,
а куда именно? попробавал по разному, с этим кодом окна чата вообще не видно, только строка набора

Deff 19.07.2012 21:53

Spark,
Там в скрипте функция:

Цитата:

function load_image(url)
{
if(url.match(/(http:\/\/[^\s\?]+)\.(?:jpg|jpeg|gif|png)/ig)==null) url=http://forum.mybb.ru/i/blank.gif;

this.load = null;
this.width = 0;
this.height = 0;
var self = this;
var img = new Image();
img.onload = function () {
self.width = this.width;
self.height = this.height;
if(self.load != null)
self.load(self);
}
img.src = url;
}
добавляем в неё строку красным

Spark 19.07.2012 22:17

Deff,
без изменений, все также вылетает

Deff 19.07.2012 22:37

Тады нун просто менять эту регулярку (походу трабл именно в ней - поскольку пути за ней все исследовали
var regexUrl = /(https?):\/\/((?:[a-z0-9.-]|%[0-9A-F]{2}){3,})(?::(\d+))?((?:\/(?:[a-z0-9-._~!$&'()*+,;=:@]|%[0-9A-F]{2})*)*)(?:\?((?:[a-z0-9-._~!$&'()*+,;=:\/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-z0-9-._~!$&'()*+,;=:\/?@]|%[0-9A-F]{2})*))?/i;

Или кто седни поможет или я завтра (чот уже голова не варит

dmitriymar 19.07.2012 22:42

Цитата:

Сообщение от devote
вообще то подобные дырки нужно закрывать на стороне сервера а не на стороне клиента.

Цитата:

Сообщение от Spark
Если в сервере проблема, тогда почему на других сайтах с этим чатом такая же проблема?

:blink: Где хоть слово что проблема в сервере? По русски ведь сказано, что проблему нужно решать на стороне сервера, а не клиента. Ничего не помешает,при желании, обойти защиту на клиенте

Deff 19.07.2012 23:08

Spark,
:write:
Пока не остыл
Вариант NN
Это
Цитата:

msg = msg.replace(regexUrl, UriCallback);

Меняем на две строки:
Цитата:

msg = msg.replace(/http:\/\/.+?\?.*\.(?:jpg|jpeg|gif|png)/ig,'http://s1.uploads.ru/i/ISFrd.gif');
 msg = msg.replace(regexUrl, UriCallback);

(Cачкую от регулярки

Spark 19.07.2012 23:53

Deff,
Спасибо тебе за потраченное время и шевеления мозгом:thanks: , но не помогает:(


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