Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 141

Обработка данных формы

26.09.2016, 03:40. Показов 588. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть такой код
PHP
1
2
3
4
5
if(strtolower(substr($input['s_vk'], 0, 4))!=='https') {
                $input['s_vk'] = 'https://vk.com/'.$input['s_vk'];
            }
            $input['s_vk'] = osc_sanitize_url($input['s_vk']);
            if ( ! osc_validate_url($input['s_vk'])) $input['s_vk'] = '';
когда человек заполняет форму и вводит свой ник из вк (например user) то в бд записывается https://vk.com/user
если он вводит https://vk.com/user, то вводится пустота
и точно также если ввести vk.com/user
Как это исправить помогите) заранее спасибо

Добавлено через 37 минут
написала так
PHP
1
2
3
4
5
if(strtolower(substr($input['s_vk'], 0, 4))!=='http') {
                $input['s_vk'] = 'http://vk.com/'.$input['s_vk'];
            }
            $input['s_vk'] = osc_sanitize_url($input['s_vk']);
            if ( ! osc_validate_url($input['s_vk'])) $input['s_vk'] = '';
все как написать чтоб вводилось https вместо http если меняю получается ошибка как выше(((
ПОДСКАЖИТЕ В ЧЕМ ДЕЛО
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2016, 03:40
Ответы с готовыми решениями:

Обработка данных формы
Всем привет. Есть проблема обработки данных с html формы. Есть форма: ... <form action="mess.php"...

Обработка данных формы
Здравствуйте. Собственно вопрос в следующем - есть форма к примеру для отправки данных о человеке с двумя полями имя и телефон: ...

> Обработка данных из формы
Доброго времени суток, у меня есть форма поиска: <form action="search.php" method="post"> <p><input...

7
 Аватар для rikitikitari
87 / 87 / 41
Регистрация: 09.05.2015
Сообщений: 315
26.09.2016, 05:41
osc_validate_url() код выложите
1
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 141
26.09.2016, 23:48  [ТС]
Цитата Сообщение от rikitikitari Посмотреть сообщение
osc_validate_url() код выложите
извините забыла ее выложить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function osc_validate_url ($value, $required = false) {
        if ($required || mb_strlen($value, 'UTF-8') > 0) {
            $value = osc_sanitize_url($value);
            if(!function_exists('filter_var')) {
                $success = preg_match('|^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$|', $value, $m);
            } else {
                $success = filter_var($value, FILTER_VALIDATE_URL);
            }
            if ($success) {
                @$headers = get_headers($value);
                if (!preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/', $headers[0])) {
                    return false;
                }
            } else {
                return false;
            }
        }
        return true;
    }
как я поняла первый код должен быть такой
PHP
1
2
3
4
5
if(strtolower(substr($input['s_vk'], 0, 4))!=='http') {
                $input['s_vk'] = 'http://vk.com/'.$input['s_vk'];
            }
            $input['s_vk'] = osc_sanitize_url($input['s_vk']);
            if ( ! osc_validate_url($input['s_vk'])) $input['s_vk'] = '';
а вот что в unction osc_validate_url написать чтоб https поддерживало вместе с http ?
0
 Аватар для rikitikitari
87 / 87 / 41
Регистрация: 09.05.2015
Сообщений: 315
27.09.2016, 01:39
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function repair_vk_account_url( $string ) {
  $string = strtolower(trim($string));
  $string = str_replace('http:', 'https:', $string);
 
  if( strpos($string, 'https://vk.com/') === 0 ) {
    return $string;
  } elseif ( strpos($string, 'vk.com/') === 0 ) {
    return 'https://'.$string;
  } else {
    return 'https://vk.com/'.$string;
  }
 
}
 
$vk_url = repair_vk_account_url($input['s_vk']);
$vk_url = osc_sanitize_url($vk_url);
if ( ! osc_validate_url($vk_url)) {
  $vk_url = '';
}
$input['s_vk'] = $vk_url;
osc_validate_url вернуло true и с http, и с https. Возможно, osc_sanitize_url() что-то делает, что через osc_validate_url() потом не проходит.
1
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 141
27.09.2016, 16:22  [ТС]
PHP
1
2
3
4
5
6
7
function osc_sanitize_url($value) {
        if(!function_exists('filter_var')) {
            return preg_replace('|([^a-zA-Z0-9\$\-\_\.\+!\*\'\(\),{}\|\^~\[\]`"#%;\/\?:@=<>\\\&]*)|', '', $value);
        } else {
            return filter_var($value, FILTER_SANITIZE_URL);
        }
    }
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function osc_validate_url ($value, $required = false) {
        if ($required || mb_strlen($value, 'UTF-8') > 0) {
            $value = osc_sanitize_url($value);
            if(!function_exists('filter_var')) {
                $success = preg_match('|^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$|', $value, $m);
            } else {
                $success = filter_var($value, FILTER_VALIDATE_URL);
            }
            if ($success) {
                @$headers = get_headers($value);
                if (!preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/', $headers[0])) {
                    return false;
                }
            } else {
                return false;
            }
        }
        return true;
    }
PHP
1
2
3
4
5
if(strtolower(substr($input['s_vk'], 0, 4))!=='http') {
                $input['s_vk'] = 'http://vk.com/'.$input['s_vk'];
            }
            $input['s_vk'] = osc_sanitize_url($input['s_vk']);
            if ( ! osc_validate_url($input['s_vk'])) $input['s_vk'] = '';
мне кажется что то тут не так
PHP
1
 $success = preg_match('|^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$|', $value, $m);
или не в правильном положении думаю> Подскажите) заранее благодарна
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
27.09.2016, 16:33
Вы сами код функций написали (osc_sanitize_url и osc_validate_url) или нашли где-то? В общем, функция filter_var доступна, начиная со старинной версии PHP 5.2 Сейчас уже 7 версия вышла (сразу после 5.6, но неважно), поэтому эти проверки не нужны:
PHP
1
if(!function_exists('filter_var')) {
И код, призванный заменить filter_var тоже не нужен.
Достаточно написать так:
PHP
1
2
3
    function osc_sanitize_url($value) {
    return filter_var($value, FILTER_SANITIZE_URL);
    }
А ещё лучше -- использовать сразу filter_var, ибо эта обёртка теперь не нужна.
PHP
1
$vk_url = filter_var($vk_url, FILTER_SANITIZE_URL);
1
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 141
27.09.2016, 17:40  [ТС]
да код не мой. движок osclass и надо было туда включить ввод.
Спасибо всем за помощь все сделала )))
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
27.09.2016, 17:54
А что было?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2016, 17:54
Помогаю со студенческими работами здесь

Обработка данных из формы
Есть проблемка, не знаю как решить ее. В магазине пользователь выбирает несколько товаров. После заказа они через цикл собираются в одну...

Обработка формы. Добавление данных в БД
Всем привет! У меня есть форма. Данные, введенные в поля формы записываю в таблицу БД. &lt;?php function connect_db() { ...

Обработка данных с формы с необязательными полями
Добрый день! Есть форма из 4-х полей, все они являются необязательными. Форма нужна, чтоб в случае ввода данных хотя бы в одно поле,...

Обработка формы выбора и вставка данных в БД
Добрый день, подскажите как корректно обработать форму табелирования. &lt;form action='' method='POST'&gt; &lt;input type='submit'...

Обработка формы с сохранением введенных данных
Всем доброго времени суток, стоит специфическая задача, на странице около 14 форм, которые передаются на сервер где пыха их заносит в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru