![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Такая вот проблема, через форму получаю в скрипт обработчик - адрес сайта ($_POST), юзер может написать адрес сайта по разному, ну например:
http://www.test.com или https://www.test.com или www.test.com или просто test.com ну вообшем надо проверить что именно ввёл юзер и если адрес введён таким образом: test.com, то надо впереди подставить - http://www. чтобы получился полный адрес сайта - http://www.test.com! Как такое можно реализовать, может кто сталкивался!!! Желательно на примере Буду очень благодарен за любую помошь! |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Нашёл решение, может и не самое корректное, но до другого пока не додумался, может кто знает как правильнее и лучше сделать можно, то пожалуйста дайте хоть намёк, конечно же с небольшим примером.
Так решил задачу: $web_site - переменная хранит адрес полученный их формы
Может кому пригодится! |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Решение конечно не самое лучшее, вот если например юзер захочет мне послать ссылку на свой сайт уже сразу на страницу с контактной инфой (например www.test.ru/blcoks/contact.php), то всё равно попадаешь на индексную страницу а то есть на - http://www.test.ru
Подправте скрипт кто может, что бы было всё как надо, то есть в концовке ничего не обрезалось, а только в начале строки при отсутствие "http://www." подставлялось что нужно, ну например - http://www. или же только http:// если юзер уже ввёл www |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 1 Всего: 37 |
А почему бы просто не проверить, являются ли первые 7 символов строкой "http://"?
Это сообщение отредактировал(а) Ипатьев - 22.2.2010, 02:00 |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Ипатьев
Ну тогда уж надо проверять первые 11 символов, юзер же может ввести адрес и без www. А какой функцией можно сделать проверку первых n символов??? А вообще вариант на мой взгляд не совсем лучший, допусти что юзер вводит адрес без всяких http://www., тогда по логике надо в начале просто подставить необходимый текст, в нашем случаии http://www., а что если юзер вместо этого внчале введёт какую-нибудь абракадабру например - kjhjjh.test.ru, скажем забыл переключить раскладку клавы, ну или спецом так сделал то тогда наша проверка обнаружит что вначале нету необходимых символов и просто спереди их подставит и мы в итоге получим адресс - http://www. kjhjjh.test.ru |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
substr
а что, если "юзер введет" вообще не существующий адрес сайта? каким образом можно по введенному "fake.org" получить необходимый "test.com"? |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
skyboy
нет я в смысле что если вместо http://www. будет введён kjhjjh. то тогда вся проверка была скажем так не еффективной, то есть юзер хотел ввести http://www.test.ru а ввёл по ошибке kjhjjh.test.ru, тогда проверка проверит строку и не обнаружит таким http://www. и просто спереди подставит Например мой вариант решения этой задачи справится с этим, и точно определит адресс, даже если было введено kjhjjh.test.ru получу в итоге http://www.test.ru Проблема ы моём решении заключается в том что, если вдруг юзер введёт адрес test.ru/contackts.php, скажем так чтобы я сразу мог посмотреть контактную инфу, то я в итого получу следующий адрес http://www.test.ru, то есть уже без ссылки на нужную страницу, а сразу на индексную Это сообщение отредактировал(а) TWoVKP - 22.2.2010, 09:46 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
а если сайт как раз на поддомене и находится? получить вместо "somtesite.ucoz.net" сайт платформы "ucoz.net" - это то, что и ожидается? о_0 т.е. maps.google.com и google.com - одно и то же? неожиданно. |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Решил проблему ещё проще, сначала проверяю полученный адрес до первой встречающейся точки в строке, будь то www. или http://www. или вообще будь там абракадабра и кладу результат в переменную, потом переменную проверяю совпадает ли она с www или http://www и если нет то просто подставляю в начало.
Вообшем вот пример:
Считаю что тема исчерпана!!! Добавлено @ 11:23 skyboy А как с этим примером??? Так покатит??? И рефссылка остаётся неизменной!!! Хотелось бы критику услышать на на этот способ решения! Это сообщение отредактировал(а) TWoVKP - 22.2.2010, 11:24 |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 1 Всего: 37 |
не понимаю, зачем насильно подставлять www
|
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: нет Всего: 8 |
||||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Ипатьев
Да я могу коротко объяснить, вот например юзер послал мне письмо и ввёл мне свой адрес сайта через форму, письма я получаю пргогой The BAT, всем наверное известная, ну так вот если адрес сайта присылается как test.ru, без всяких www или http:// то прога выдаёт ошибку и даже браузер не стартует, а вот если пришло как http://www.test.ru то всё пучком, вот только и для этого я и старался. Не знаю на счёт других почтовых клиентов, но с The BAT v.4.1.11 такая вот история. Просто хотел чтобы уж если письмо приходило и я его открывал с этой прогой - то чтобы уж всё пучком работало! Вот в принципе и весь смысл! Добавлено через 2 минуты и 55 секунд IgorIV ХМ..., интересно, об этом и не подумал, придётся кое-что подправить Спасибо за подсказку |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 1 Всего: 37 |
Вы очень невнимательны.
Прочтите мое сообщение, на которое вы потрудились ответить, еще раз. Подсказка: про http:// там ничего нет. там написано другое слово |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Ипатьев
Да внимательный я, заметил что речб ведётся о www а не о http:// ну просто как то хочется чтобы уже было всё в идеале! |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 1 Всего: 37 |
Для того, чтобы сделать идеально, надо понимать, что такое идеал.
А если познания в предмете не очень велики, стремление к идеалу приведет к прямо противоположным результатам Что мы наглядно можем наблюдать в данном топике |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
Да это понятно, но к идеалу всегда нужно стремиться, а вот только если чел ничего толком сам не может предложить а только чужие идеи и решение покритиковать способен, то тут об идеале речь вообще не может идти, не только о профессиональном но и как о человеке.
Раз такой умный взял бы и предложил путёвое решение, или сам на такое не способен, способен только наверное только языком почесать!!! Или ты живёшь по принципу: "Есть два мнения: мое и другое ошибочное!" Что мы в данном топике и видим, чел ничего толкого сам предложит не может, а вот чужие идеи (у которого своих ну просто нет), всегда готов засрать! Таковы реали, взгляни правде в глаза, или что правда глаза колит! Это сообщение отредактировал(а) TWoVKP - 22.2.2010, 18:03 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
тебе и предлагали. 4 пост темы. проверить первые 7 символов на соответствие "http://". если нет такого - добавить впереди строки. хотя лично я бы искал "://", чтоб пропустить "https://" ссылки. хотя, в таком случае, прошли бы и "ftp://"-ссылки. но использовать регулярки ради такой простой задачи неохота. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 1 Всего: 37 |
Мне кажется, что выступления в таком тоне недопустимы на профессиональном форуме.
Хамство и переход на личности не должны оставаться безнаказанными. Но в первую очередь конечно - эти поучительные интонации. Это сообщение отредактировал(а) Ипатьев - 22.2.2010, 19:14 |
|||
|
||||
| TWoVKP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 29.4.2009 Репутация: нет Всего: 1 |
skyboy
Не ну это понятно что первые символы проверять надо, до этого в приципе каждый бы додумался что проверять надо, а вот как это на практике реализовать, не все же могут на php отлично кодить, для этого и сущестсвуют форумы чтобы на них обсуждать и вместе пытаться найти подходящее решение, а не выяснять личные отношения, этого негатива и в реальной жизни хватает. Я ничего не имею против - Ипатьев, но раз уж критикует так пусть хоть какую то умную мысль на тему топика выскажет, иль какой пример покажет раз уж он "идеал" в php. А судить то каждый горазд! Ипатьев Раз уж выступления в таком тоне недопустимы на профессиональном форуме и необходимо не оставлять безнаказанным - то можно в принципе и так, только что это изменит???? На личности вроде не старался переходить и никогда этого не делаю до тех пор пока не встречаю обратного! Извиняюсь, если затронул "собственное Я". Да ладно хватит уже одно да потому, лучше посоветуйте как проблему правильно решить, то что необходима проверка символов это и дураку понятно, как на php решить задачу правильно, на примере было бы лучше всего |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
TWoVKP, для начала, что бы решить эту задачу правильно, вам нужно внимательно прочитать что такое URL и навсегда запомнить, что http://example.com и http://www.example.com это два совершенно разных URL, указывающих на совершенно разные ресурсы в интернете.
После чего задача элементарно решается способом предложенным skyboy и функцией substr
Это сообщение отредактировал(а) sTa1kEr - 22.2.2010, 22:56 |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 2 Всего: 73 |
TWoVKP, вообще-то, Ипатьев и предложил единственно простое и верное решение для Вашего случая.
На форум приходят обсуждать вопросы связанные с PHP - это верное. Сюда приходят в надежде разрешить проблему и понять где могли ошибиться или в поисках алгоритма, лучшего варианта решения проблемы. Но сюда не заходят для справки по функциям, для этого есть php.net. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: нет Всего: 19 |
Любителям рег. выражений (подставляется http:// вначале).
Кому надо проверку на www еще, подправьте под себя сами |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 2 Всего: 73 |
Я бы за такой код убивал на месте.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: нет Всего: 19 |
изатоп такой изатоп
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 2 Всего: 73 |
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |