Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Aлл, текстовый поиск по фотографиям

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: Алл   (20.01.2005 в 06:43)   письмо автору
 
   для: cheops   (19.01.2005 в 12:59)
 

Вот и правда, спасибо, а то я тут уже голову сломал пытаясь понять в чем ошибка. У меня правда есть еще один вопрос, наверное надо создать новую тему, так как в эту он немного не вписывается. тема будет называться "Ссылка в выводе скрипта".

   
 
 автор: cheops   (19.01.2005 в 12:59)   письмо автору
 
   для: Алл   (19.01.2005 в 06:44)
 

Я понял в чём проблема, в форме стоит метод POST:
 method="post" 

а в обработчике ожидается метод GET - следует либо в форме поставить метод GET, либо в обработчике заменить все $_GET на $_POST

   
 
 автор: Алл   (19.01.2005 в 06:44)   письмо автору
 
   для: cheops   (18.01.2005 в 14:53)
 

это я для примера назвал форму name, на самом деле я пробовал именовать и форму, и поле по очереди, результат вывода скрипта не менялся. А выдает он во всех случаях только одну текстовую строчку : Текстовое поле осталось не заполненным - введите слово для поиска. Причем не важно соответствует ли вводимое текстовое слово ключевому или нет,
вот так из крайности в крайность, Если помните, в предыдущем варианте скрипта он выводил все подряд.

   
 
 автор: cheops   (18.01.2005 в 14:53)   письмо автору
 
   для: Алл   (18.01.2005 в 06:24)
 

Хм... у нас форма и поле называются одинаково... name и name - попробуйте переименовать форму... Кроме того, не могли бы вы подробнее рассказать о действиях которые приводят к сбою? Чтобы я мог их воспроизвести?

   
 
 автор: Алл   (18.01.2005 в 14:33)   письмо автору
 
   для: Алл   (18.01.2005 в 06:24)
 

Может быть подскажите мне в чем ошибка?

   
 
 автор: Алл   (18.01.2005 в 06:24)   письмо автору
 
   для: cheops   (17.01.2005 в 13:25)
 

Скрипт работает уже лучше, но постоянно выдает чтобы ввели слово в текстовом поле, я в форме прописывал name как name и обзывал его и по другому, но результат не меняется
<FORM align="center" name="name" action="search.php" method="post"><INPUT name="name" size="20" type="text" vspace="7".......
Примерно так, если совместить оба варианта.
Так как подумал, что он (скрипт) не видит само текстовое поле
Может проблемма все-таки в скрипте?

   
 
 автор: cheops   (17.01.2005 в 13:25)   письмо автору
 
   для: Алл   (17.01.2005 в 08:29)
 

Да, нужно переписать скрипт следующим образом
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
// Имя файла с путями к фотографиям и ключевыми словами 
$filename " base.txt"
// Помещаем содержимое файла в массив $photo_line 
$photo_line file($filename); 
// Проверяем то, что передано в форме 
// дабы исключить взлом 
$_GET['name'] = str_replace("."," ",$_GET[name]); 
$_GET['name'] = str_replace("'"," ",$_GET[name]); 
$_GET['name'] = str_replace('"'," ",$_GET[name]); 
if(empty(
$_GET['name'])) 

exit (
"Текстовое поле осталось не заполненным - введите слово для поиска"); 

// В цикле ищем вхождения 
foreach($photo_line as $lines

// Проверяем входит ли в состав строки искомое 
// слово - если входит - запоминаем его номер. 
if(preg_match("|".$_GET['name']."|i"$lines)) 

$path substr($lines,0,strpos($lines," ")); 
$photo_path[] = $path


// Выводим фотографии 
foreach($photo_path as $pathp

echo 
"<IMG src=$pathp width=779 height=106 border=0><br>"

?> 

В форме текстовое поле называется name?

   
 
 автор: Алл   (17.01.2005 в 08:29)   письмо автору
 
   для: cheops   (14.01.2005 в 13:20)
 

Ошибку я нашел, скрипт заработал (ковычки в 4 строке (base.txt)).
Но проблемма в том, что в результате выводиться не только фото которые соответствуют поиску, но и остальные, а так же строка говорящая что надо ввести слово в форму поиска. т.е. все подряд.

   
 
 автор: cheops   (14.01.2005 в 13:20)   письмо автору
 
   для: Алл   (14.01.2005 в 06:26)
 

А файл base.txt расположен в той же директории, что и search.php?

   
 
 автор: Алл   (14.01.2005 в 06:26)   письмо автору
 
   для: cheops   (10.01.2005 в 22:04)
 

Попробоват тестировать следующий код

<?php 
Error_Reporting
(E_ALL & ~E_NOTICE);
// Имя файла с путями к фотографиям и ключевыми словами 
$filename " base.txt"
// Помещаем содержимое файла в массив $photo_line 
$photo_line file($filename); 
// Проверяем то, что передано в форме 
// дабы исключить взлом 
$_GET['name'] = str_replace("."," ",$_GET[name]); 
$_GET['name'] = str_replace("'"," ",$_GET[name]); 
$_GET['name'] = str_replace('"'," ",$_GET[name]); 
if(empty(
$_GET['name'])) 

echo 
"Текстовое поле осталось не заполненным - введите слово для поиска"

// В цикле ищем вхождения 
foreach($photo_line as $lines

// Проверяем входит ли в состав строки искомое 
// слово - если входит - запоминаем его номер. 
if(preg_match("|".$_GET['name']."|i"$lines)) 

$path substr($lines,0,strpos($lines," ")); 
$photo_path[] = $path


// Выводим фотографии 
foreach($photo_path as $pathp

echo 
"<IMG src=$pathp width=779 height=106 border=0><br>"

?>

Выдает следующие ошибки
Warning: file( base.txt): failed to open stream: No such file or directory in z:\home\test1.ru\www\search.php on line 6
Текстовое поле осталось не заполненным - введите слово для поиска
Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\search.php on line 17

Warning: Invalid argument supplied for foreach() in z:\home\test1.ru\www\search.php on line 28

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования