За последние 24 часа нас посетили 91405 программистов и 5513 роботов. Сейчас ищут 2329 программистов ...

проблема с HTTP

Тема в разделе "PHP для новичков", создана пользователем vitos, 26 сен 2016.

  1. vitos

    vitos Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    3
    Симпатии:
    0
    есть код
    когда пользователь вводит ссылку на свой сайт она записывается в бд
    если ссылка выглядет так: http://google.com или google.com то все хорошо, но если он вводит https://google.com то не чего не записывается в бд
    в чем может быть проблема
    PHP:
    1. if(strtolower(substr($input['s_website'], 0, 4))!=='http') {
    2.                 $input['s_website'] = 'http://'.$input['s_website'];
    3.             }
    4.             $input['s_website'] = osc_sanitize_url($input['s_website']);
    5.             if ( ! osc_validate_url($input['s_website'])) $input['s_website'] = '';
     
  2. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.178
    Симпатии:
    161
    Адрес:
    GABRIEL
    Это похоже сейчас модно стало играть в вангу...
    Давай не будем предсказывать.
    Что за функция osc_validate_url ?)
    Разверни её.
    А ещё третьим глазом чую, что это не весь код, потому что:
    Не видно запросов к бд.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Вот по этому и не видно. Сами хардкодом уже протокол прописали зачем-то. А неизвестно, что там дальше в глубине живет у вас.
     
  4. vitos

    vitos Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    3
    Симпатии:
    0
    PHP:
    1. function osc_validate_url ($value, $required = false) {
    2.         if ($required || mb_strlen($value, 'UTF-8') > 0) {
    3.             $value = osc_sanitize_url($value);
    4.             if(!function_exists('filter_var')) {
    5.                 $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);
    6.             } else {
    7.                 $success = filter_var($value, FILTER_VALIDATE_URL);
    8.             }
    9.             if ($success) {
    10.                 @$headers = get_headers($value);
    11.                 if (!preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/', $headers[0])) {
    12.                     return false;
    13.                 }
    14.             } else {
    15.                 return false;
    16.             }
    17.         }
    18.         return true;
    19.     }
    да код не весь. весь код очень большой не стал его сюда кидать как я понимаю ошибки где то в этих двух файлах

    к базам все чипляет хорошо
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Ну так у вас в коде явно прописано, что только http можно пропускать. В противном случае $success не выставится, и функция вернет false.
     
  6. vitos

    vitos Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    3
    Симпатии:
    0
    если так пишу тоже ошибка
    PHP:
    1. $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);
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Я понятия не имею, где и как у тебя прописано еще "http". Переписывая все на https ты получишь в итоге обратный эффект. Пробуй разобраться, что у тебя в коде творится. Пробуй дебажить.