Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (41)

Лучшие ответы пользователя

Все ответы (87)
  • Открытие аккордеона при нажатии на кнопку "следующий шаг"?

    dimastik1986
    @dimastik1986
    учусь
    это можно реализовать даже без JS, например
    ток заменить чекбоксы на radio и ссылки прописать

    а вообще на js это делается назначая класс со свойством display:block для след.блока и устанавливая display:none предыдущему

    javascript
    function Tab(){
    		$('.tabs').removeClass('active');
    		$('#'+this.id).addClass('active');
    	};

    css
    .tabs {
    	display: none;
    }
    .active {
    	display: block;
    }
    u.link{
    	color:blue;
    }

    html
    <u class="link" id="id_блока_который_надо_открыть" onclick="Tab(this)">ссылка</u>


    *display можно заменить на прозрачность и % ее менять...
    Ответ написан
  • Как обновить значение в блоке с помощью js?

    dimastik1986
    @dimastik1986
    учусь
    1. Как мне кажется, вторая функция отправки не нужна, ведь обе функции ведут на один и тот де обработчик. У вас вообще все готово почти. Достаточно в updatePrice, туда же в запрос, просто добавить значение поля kupon и если нужно выполнять updatePrice при изменении kupon, отправляйте так же через on('change'. А в php обработчике, проверяйте наличие переменной kupon + что это не попытка подставить в ваш код что-то вредное, можно проверить регулярным выражением или хотя бы, что это не html код и прочее. Регулярные выражения для новичка не очень просто, однако они еще пригодятся и их придется учить. А до момента понимания, как писать регулярные используйте встроенные ф-ции и/или регулярные выражения найденные в сети.

    1.1. если вы используете .on('change', я бы советовал добавить проверку по маске купона на стороне пользователя с помощью js, чтобы скрипт не ломился отправлять и соответственно обрабатывать ненужные запросы, тем самым вы сможете меньше нагружать процессор и БД, кажется что мелочь, но если пользователей на сайте будет много, тут, там-сям немного сэкономили, на круг уже будет заметно.

    1.2. обязательно, возьмите за привычку проверять/сверять информацию, которую вводит пользователь! Перед запросом в БД нужно проверить наличие с помощью isset(), если подразумевается число, значит функцией is_numeric() и тд... В случае с купоном, можно проверить на кол-во символов (если это известно) и например прогнать через strip_tags(), htmlspecialchars() или использовать другие встроенные функции для фильтрации и/или обработки информации.

    2. К слову о фильтрации и проверке информации. НЕ обращайтесь к $_POST на прямую, для получения значений $_POST и $_GET используйте функции фильтрации filter_input(), если это массив filter_input_array(). Они же могут определить является ли полученная переменная числом, адресом эл.почты и прочее. Подробнее тут и тут...

    3. не используйте SQL-инъекции, используйте PDO, посмотреть доступность на вашем сервере можно в PhpInfo

    Старайтесь совершать как можно меньше необоснованных запросов и оправок данных, а так же обязательно проверять все данные которые поступают из вне - возьмите за аксиому: каждый пользователь враг и хочет навредить вашему сайту, многие просто могу сделать это по приколу, ну а если вы собираетесь работать с деньгами, то тут уже вопрос безопасности нужно выводить на первое место и уделять проверкам особое внимание! Почитайте более подробно, например на habr.com.

    Пункты 2 и 3 обязательны для всех ваших скриптов!
    И под конец для вас две новости, одна плохая и одна хорошая:
    Плохая - придется исправлять все подключения и заменить переменные $_POST и $_GET...
    Я в свое время решил эту проблему очень просто

    1. Автозаменой заменил во всех файлах массивы $_POST на $POST и соответственно $_GET на $GET. Визуально практически ничего не изменив в тексте скрипта, но уже суть совсем другая )))
    2. Задав в начале скрипта новым переменным значения через описанные выше функции фильтрации...


    Хорошая - это будет не сложно и не очень объемно ;)

    доп.: в самом начале каждого php файла (а проще в один, который добавляется везде, например конфиг) - советую прописать вывод ошибок на экран, если конечно вы этого еще не сделали
    тут то, что нужно прописать
    ini_set('display_errors', true); 
    ini_set('display_startup_errors', true);
    ini_set('error_reporting', -1);
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (84)