Помощь Как подправить код?

Тема в разделе "DLE", создана пользователем acelotuse, 29 май 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    DLE 8.0 MID
    УСтановлен модуль доски объявлений. К сожалению выложить не могу. Хозяин против его публикации, так как писался по заказу. Боится распространения.
    Проблема такая. Есть код на странице добавления объявления
    Код:
     <tr>
    <td width="140" height="25">Телефон:</td>
     <td width="360"><input type="text" name="tel" class="f_input" /></td>
    </tr>
    
    в это окошко вписывается контактный номер телефона подающего объявление. Но так как на сайт заходят не только опытные пользователи, но и начинающие, то зачастую пишут номер телефона с пробелами, вроде 8 999 888 77 66. Оказывается, в базе данных записанный с пробелами номер не сохраняется, а сохраняются только варианты 89998887766 или 8-999-888-77-66. ТАкже НЕ сохраняются номера записанные через +7 вместо первой восьмерки. Как итог - сотни объявлений без контактных данных. Как понимаете, это большой и большой минус. Конечно, есть выход, - оставлять телефон вместе с самим текстом объявления. Но все равно это не то. Подскажите пожалуйста, что нужно сделать, чтобы пробелы автоматически удалялись? Может ява скрипт какой прописать?
    Спасибо заранее большое за помощь.
     
  2. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Вы предоставли визуальное оформление поля ввода номера.
    А нужно его программную часть, а именно скрипт обработчик переменной, которая получает данные с ПОСТ tel.
     
    acelotuse нравится это.
  3. F1NaL

    F1NaL Постоялец

    Регистр.:
    18 дек 2007
    Сообщения:
    83
    Симпатии:
    21
    Необходимо сделать парочку проверок в обрабодчике.
    Например:
    Код:
    $tel = str_replace (" ", "", $tel);
    
    Где $tel это переменная в которую приходят данные. Еще можно использовать validate библиотеку для jQuery, что бы проверять данные еще до передачи их обрабодчику.
     
    acelotuse нравится это.
  4. Agent_Smith

    Agent_Smith Создатель

    Регистр.:
    31 июл 2008
    Сообщения:
    26
    Симпатии:
    2
    просите автора модуля исправить ошибки, если вы платили за модуль деньги, то это не ваша работа его ошибки править.
     
    acelotuse нравится это.
  5. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    скорее всего входящие данные проходят через intval() ... обратитесь к разработчику с просьбой заменить фильтрацию для данного поля
     
    acelotuse нравится это.
  6. Hander

    Hander

    Регистр.:
    19 ноя 2007
    Сообщения:
    175
    Симпатии:
    45
    можно конечно ти простой вариант сделать на время
    рядом с полем ввода написать что-то типа такого
    Пример ввода: 89222222222 (без пробелов)
     
    acelotuse нравится это.
  7. Agent_Smith

    Agent_Smith Создатель

    Регистр.:
    31 июл 2008
    Сообщения:
    26
    Симпатии:
    2
    или в инпут добавить значение по умолчанию: value="8-123-4567890"
     
    acelotuse нравится это.
  8. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    344
    Симпатии:
    135
    а можно увидеть блок (ROW) с таблицы
    т.е. telefon varchar или char, что он приставляет?
     
    acelotuse нравится это.
  9. alwex

    alwex Прохожие

    можно ещё юзать php функцию trim() какая убирает пробелы...
     
  10. t0os

    t0os

    Регистр.:
    21 окт 2007
    Сообщения:
    284
    Симпатии:
    36
    Поменяйте тип поля с intger (или какое-то там у вас числовое) на varchar(30) - должно хватить.
     
    acelotuse нравится это.
Статус темы:
Закрыта.