|
|
|
|
|
для: cheops
(19.01.2005 в 12:59)
| | Вот и правда, спасибо, а то я тут уже голову сломал пытаясь понять в чем ошибка. У меня правда есть еще один вопрос, наверное надо создать новую тему, так как в эту он немного не вписывается. тема будет называться "Ссылка в выводе скрипта". | |
|
|
|
|
|
|
|
для: Алл
(19.01.2005 в 06:44)
| | Я понял в чём проблема, в форме стоит метод POST:
а в обработчике ожидается метод GET - следует либо в форме поставить метод GET, либо в обработчике заменить все $_GET на $_POST | |
|
|
|
|
|
|
|
для: cheops
(18.01.2005 в 14:53)
| | это я для примера назвал форму name, на самом деле я пробовал именовать и форму, и поле по очереди, результат вывода скрипта не менялся. А выдает он во всех случаях только одну текстовую строчку : Текстовое поле осталось не заполненным - введите слово для поиска. Причем не важно соответствует ли вводимое текстовое слово ключевому или нет,
вот так из крайности в крайность, Если помните, в предыдущем варианте скрипта он выводил все подряд. | |
|
|
|
|
|
|
|
для: Алл
(18.01.2005 в 06:24)
| | Хм... у нас форма и поле называются одинаково... name и name - попробуйте переименовать форму... Кроме того, не могли бы вы подробнее рассказать о действиях которые приводят к сбою? Чтобы я мог их воспроизвести? | |
|
|
|
|
|
|
|
для: Алл
(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".......
Примерно так, если совместить оба варианта.
Так как подумал, что он (скрипт) не видит само текстовое поле
Может проблемма все-таки в скрипте? | |
|
|
|
|
|
|
|
для: Алл
(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? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2005 в 13:20)
| | Ошибку я нашел, скрипт заработал (ковычки в 4 строке (base.txt)).
Но проблемма в том, что в результате выводиться не только фото которые соответствуют поиску, но и остальные, а так же строка говорящая что надо ввести слово в форму поиска. т.е. все подряд. | |
|
|
|
|
|
|
|
для: Алл
(14.01.2005 в 06:26)
| | А файл base.txt расположен в той же директории, что и search.php? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|