Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: redirect to url

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: правильный способ
implements
Отправлено: 18 Января, 2013 - 07:14:04
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте, нужно сделать переход на сайт указанный пользователем
он может указать
http://site[dot]com
http://www[dot]site[dot]com
site.com

как тут правильно все это обработать и пере направить по ссылки?
делаю простым способом пока

но это не правильно
 
 Top
Toxa
Отправлено: 18 Января, 2013 - 07:25:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


Почему не правильно?
Что касается проверки


-----
Удобный сервис для хранения файлов
 
 Top
implements
Отправлено: 18 Января, 2013 - 07:29:14
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Toxa пишет:
Почему не правильно?

вел я google.com
он пытает перенаправить
http://localhost/google[dot]com
и вылетает еррор Object not found!
если http://google[dot]com то все нормально
(Добавление)
Toxa пишет:
Что касается проверки

если также будет введен без http:// то эта функция вернет false
 
 Top
Toxa
Отправлено: 18 Января, 2013 - 07:32:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1. echo filter_var('google.com', FILTER_VALIDATE_URL) ? 'valid' : 'not valid';
  2. // not valid

какие еще вопросы?


-----
Удобный сервис для хранения файлов
 
 Top
implements
Отправлено: 18 Января, 2013 - 07:34:14
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Toxa пишет:
какие еще вопросы?
вопрос в том, что google.com посути валиден, тока нет http:// перед ним, и поэтому он определяет,что url not valid
 
 Top
Toxa
Отправлено: 18 Января, 2013 - 07:39:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


Хорошо, тогда добавляй его сам, предварительно обрезав, если он введен пользователем
PHP:
скопировать код в буфер обмена
  1. $url = 'http://google.com';
  2.  
  3. $url = preg_replace('#https?:\/\/(www\.)?#', '', $url);
  4. $url = 'http://'.$url;
  5.  
  6. echo filter_var($url, FILTER_VALIDATE_URL) ? 'valid' : 'not valid';


-----
Удобный сервис для хранения файлов
 
 Top
spsu
Отправлено: 18 Января, 2013 - 07:46:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012  


Помог: 3 раз(а)




Я бы так написал дабы preg_replace не дергать.
PHP:
скопировать код в буфер обмена
  1. if ((strpos($url, "http://") !== 0) && (strpos($url, 'https://') !== 0))
  2.    $url = 'http://'.$url;
  3. echo filter_var($url, FILTER_VALIDATE_URL) ? 'valid' : 'not valid';
 
 Top
implements
Отправлено: 18 Января, 2013 - 07:50:36
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Toxa ок, спс, вот это дело, а можно еще замену если введен не http/https а ftp
 
 Top
Toxa
Отправлено: 18 Января, 2013 - 08:32:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


можно и ftp
PHP:
скопировать код в буфер обмена
  1. $url = preg_replace('#(https?|ftp):\/\/(www\.)?#', '', $url);


-----
Удобный сервис для хранения файлов
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB