есть код когда пользователь вводит ссылку на свой сайт она записывается в бд если ссылка выглядет так: http://google.com или google.com то все хорошо, но если он вводит https://google.com то не чего не записывается в бд в чем может быть проблема PHP: if(strtolower(substr($input['s_website'], 0, 4))!=='http') { $input['s_website'] = 'http://'.$input['s_website']; } $input['s_website'] = osc_sanitize_url($input['s_website']); if ( ! osc_validate_url($input['s_website'])) $input['s_website'] = '';
Это похоже сейчас модно стало играть в вангу... Давай не будем предсказывать. Что за функция osc_validate_url ?) Разверни её. А ещё третьим глазом чую, что это не весь код, потому что: Не видно запросов к бд.
Вот по этому и не видно. Сами хардкодом уже протокол прописали зачем-то. А неизвестно, что там дальше в глубине живет у вас.
PHP: 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; } да код не весь. весь код очень большой не стал его сюда кидать как я понимаю ошибки где то в этих двух файлах к базам все чипляет хорошо
Ну так у вас в коде явно прописано, что только http можно пропускать. В противном случае $success не выставится, и функция вернет false.
если так пишу тоже ошибка PHP: $success = preg_match('|^(https\:\/\/[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);
Я понятия не имею, где и как у тебя прописано еще "http". Переписывая все на https ты получишь в итоге обратный эффект. Пробуй разобраться, что у тебя в коде творится. Пробуй дебажить.