X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Проверка URL в поле формы, как реализовать?
alex19rus
alex19rus
Topic Starter сообщение 24.6.2011, 8:29; Ответить: alex19rus
Сообщение #1


Привет все!
Помогите решить такую проблему...
Есть поле формы:

<input type='text' name='name' value='http://' size='30' maxlength="200" />

В нее пользователь будет вводить URL картинки.
Нужно, чтобы после ввода адреса картинки при правильном вводе урл показалась та самая картинка, а если урл не верный написать что то типо "картинка не найдена".

Как такое сделать?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
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, но я так не делал никогда


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex19rus
alex19rus
Topic Starter сообщение 24.6.2011, 9:27; Ответить: alex19rus
Сообщение #3


Banderas, спасибо, а можно как то без кнопки, чтобы ввел урл и картинка ниже появилась?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
сообщение 24.6.2011, 9:30; Ответить: Banderas
Сообщение #4


(alex19rus @ 24.6.2011, 8:27) *
Banderas, спасибо, а можно как то без кнопки, чтобы ввел урл и картинка ниже появилась?

Это JavaScript, а я программирую на PHP и Delphi. Может yury подскажет...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex19rus
alex19rus
Topic Starter сообщение 24.6.2011, 9:47; Ответить: alex19rus
Сообщение #5


ага... yury, вы где? :D А как вообще правильно сформулировать фразу для поиска, чтобы я поискал такой js ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
сообщение 24.6.2011, 10:40; Ответить: Banderas
Сообщение #6


Сам точно не знаю.. можно через AJAX все это дело оформить :D
Дерзайте!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 24.6.2011, 20:32; Ответить: yury_mw
Сообщение #7


(alex19rus @ 24.6.2011, 9:47) *
ага... yury, вы где? :D А как вообще правильно сформулировать фразу для поиска, чтобы я поискал такой 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/


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 25.6.2011, 13:21; Ответить: matroskin8
Сообщение #8


Что-то мне кажется, что предложенное решение не совсем корректно :D
По условию, насколько я понял его, ведь нужно проверять не расширение файла, а реальное наличие его по ссылке.
(alex19rus @ 24.6.2011, 7:29) *
Нужно, чтобы после ввода адреса картинки при правильном вводе урл показалась та самая картинка, а если урл не верный написать что то типо "картинка не найдена".

В предложенном решении проверяются расширения и, если расширение совпадает с предложенными в регулярке - показываем файл, не совпадает - не показываем. Но ведь может быть вполне так, что получено имя графического файла, которого нет на сервере, но регулярку введенное пройдет, а сама картинка показана не будет.
По-моему, вполне логично сделать следующее:
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
alex19rus
Topic Starter сообщение 25.6.2011, 14:32; Ответить: alex19rus
Сообщение #9


matroskin8, дело в том, что input полей много, а еще картинка будет находиться не у меня на сервере, а например на радикале...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 25.6.2011, 14:44; Ответить: matroskin8
Сообщение #10


alex19rus, тогда была некорректно поставлена задача :D . Условие поставленной задачи я процитировал:
Нужно, чтобы после ввода адреса картинки при правильном вводе урл показалась та самая картинка, а если урл не верный написать что то типо "картинка не найдена".

В таком случае правильно было так описать:
Нужно, чтобы после ввода адреса картинки при соответствии имени файла установленным графическим форматам показывалась картинка, если такая есть на сервере.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Проверка позиций сайтов в поисковых системах с помощью Positon.ru
Мониторинг продвижения сайтов
183 Positon 179403 12.4.2024, 8:32
автор: Positon
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших сообщений в контакт формы!
3 dizaynmaks 1700 18.4.2022, 9:04
автор: dizaynmaks
Открытая тема (нет новых ответов) Куплю "вечные URL" с ваших сайтов с тематикой - Пластиковые Окна!
5 regem 8380 15.3.2020, 19:46
автор: Narsus797
Открытая тема (нет новых ответов) Куплю места для размещения TXT+URL Строительная тематика.
7 regem 7641 28.3.2019, 18:31
автор: regem
Открытая тема (нет новых ответов) Делаю простые формы заказов с оплатой
прочитал-оформил-оплатил
3 Taylor 2821 13.6.2018, 0:34
автор: Taylor


 



RSS Текстовая версия Сейчас: 16.4.2024, 8:26
Дизайн