Помощник
|
Проверка URL в поле формы, как реализовать? |
alex19rus
|
Сообщение
#1
|
||
|
|
||
|
|||
Banderas |
24.6.2011, 8:55;
Ответить: Banderas
Сообщение
#2
|
|
[php]<?php
if (!$_POST['submit']) { ?> <form action='<?PHP echo $_SERVER['REQUEST_URI'] ?>' method='POST'> <input type='text' name='url' /> <input type='submit' name='submit' /> </form> <?php } else { if (empty($_POST['url'])) { header('Location: '.$_SERVER['HTTP_REFERER'].''); die('dsfsd'); exit(); } else { if (!preg_match("/(.png)|(.jpg)|(.jpeg)|(.gif)/i", $_POST['url'], $rez2)) { // добавите нужные форматы header('Location: '.$_SERVER['HTTP_REFERER'].''); exit(); } else { echo '<img src='.$_POST['url'].'>'; } } } ?>[/php] Можно ещё сделать через image/jpg, но я так не делал никогда |
|
|
alex19rus
|
Сообщение
#3
|
|
Banderas, спасибо, а можно как то без кнопки, чтобы ввел урл и картинка ниже появилась?
|
|
|
Banderas |
24.6.2011, 9:30;
Ответить: Banderas
Сообщение
#4
|
|
|
|
|
alex19rus
|
Сообщение
#5
|
|
ага... yury, вы где? А как вообще правильно сформулировать фразу для поиска, чтобы я поискал такой js ?
|
|
|
Banderas |
24.6.2011, 10:40;
Ответить: Banderas
Сообщение
#6
|
|
Сам точно не знаю.. можно через AJAX все это дело оформить
Дерзайте! |
|
|
yury_mw |
24.6.2011, 20:32;
Ответить: yury_mw
Сообщение
#7
|
|
ага... yury, вы где? А как вообще правильно сформулировать фразу для поиска, чтобы я поискал такой js ? alex19rus, если хочется, чтобы просто не было кнопки, то делаем все практически так, как рассказал Banderas, только убираем кнопку submit (Запрос на сервер будет отсылаться по нажатию [Enter]. Так можно сделать, если в нашей форме единственный элемент input) и, на всякий случай, не прячем текстовое поле, чтоб адрес другой картинки можно было сразу ввести: [php]<form action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post"> <input type="text" name="url" value="<?php echo isset($_POST['url']) ? $_POST['url'] : ''; ?>" size="30" maxlength="200" /> </form> <?php if (isset($_POST['url'])){ if ($_POST['url'] == '') { echo 'Пустой запрос'; } else { if (preg_match("/(.png)|(.jpg)|(.jpeg)|(.gif)/i", $_POST['url'], $rez2)) { // добавьте нужные форматы echo '<img src="'.$_POST['url'].'" alt="" />'; } else { echo 'Картинка не найдена'; } } } ?>[/php] А если хочется _без_перезагрузки_страницы_ опрашивать сервер на предмет наличия картинки по вводимому в текстовое поле адресу, то это только Ajax-ом можно. Чистый JS тут не поможет, он только локально у клиента на компьютере работает. В Ajax-е я не спец, но почитать можно что-то вроде такого "JSHttpRequest: динамическая подкачка данных без перезагрузки страницы" _http://dklab.ru/lib/JsHttpRequest/ |
|
|
matroskin8 |
25.6.2011, 13:21;
Ответить: matroskin8
Сообщение
#8
|
|
Что-то мне кажется, что предложенное решение не совсем корректно
По условию, насколько я понял его, ведь нужно проверять не расширение файла, а реальное наличие его по ссылке. Нужно, чтобы после ввода адреса картинки при правильном вводе урл показалась та самая картинка, а если урл не верный написать что то типо "картинка не найдена". В предложенном решении проверяются расширения и, если расширение совпадает с предложенными в регулярке - показываем файл, не совпадает - не показываем. Но ведь может быть вполне так, что получено имя графического файла, которого нет на сервере, но регулярку введенное пройдет, а сама картинка показана не будет. По-моему, вполне логично сделать следующее: 1) получить все файлы в массив из каталога с картинками; 2) прицепить при этом к ним имя сервера и каталога; 3) проверить на совпадение полученное с тем, что есть в массиве. Вот вариант: [php]<?php if($_POST['submit']){ $dir = 'img/'; // каталог с картинками $read = opendir($dir); while(false !==($file = readdir($read))){ if(!is_dir($file)) $files[] = 'http://'.$_SERVER['SERVER_NAME'].'/'.$dir.$file; } //print_r($files); if(in_array($_POST['name'], $files)){ echo '<img src="' .$_POST['name']. '" alt="" />'; }else{ echo 'Картинка не найдена'; } } ?> <form method="post"> <input type='text' name='name' value='http://' size='30' maxlength="200" /> <input type="submit" name="submit" value="Показать картинку" /> </form>[/php] |
|
|
alex19rus
|
Сообщение
#9
|
|
matroskin8, дело в том, что input полей много, а еще картинка будет находиться не у меня на сервере, а например на радикале...
|
|
|
matroskin8 |
25.6.2011, 14:44;
Ответить: matroskin8
Сообщение
#10
|
|
alex19rus, тогда была некорректно поставлена задача . Условие поставленной задачи я процитировал:
Нужно, чтобы после ввода адреса картинки при правильном вводе урл показалась та самая картинка, а если урл не верный написать что то типо "картинка не найдена". В таком случае правильно было так описать: Нужно, чтобы после ввода адреса картинки при соответствии имени файла установленным графическим форматам показывалась картинка, если такая есть на сервере.
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Проверка позиций сайтов в поисковых системах с помощью Positon.ru Мониторинг продвижения сайтов |
183 | Positon | 179770 | 12.4.2024, 8:32 автор: Positon |
|
Рассылка ваших сообщений в контакт формы! | 3 | dizaynmaks | 1709 | 18.4.2022, 9:04 автор: dizaynmaks |
|
Куплю "вечные URL" с ваших сайтов с тематикой - Пластиковые Окна! | 5 | regem | 8387 | 15.3.2020, 19:46 автор: Narsus797 |
|
Куплю места для размещения TXT+URL Строительная тематика. | 7 | regem | 7644 | 28.3.2019, 18:31 автор: regem |
|
Делаю простые формы заказов с оплатой прочитал-оформил-оплатил |
3 | Taylor | 2825 | 13.6.2018, 0:34 автор: Taylor |
Текстовая версия | Сейчас: 25.4.2024, 5:32 |