Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Скрипт поиска

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 01 Май 2009 - 21:40

Из формы не передается переменная name="sub" в обработчик view_search.php

тоесть в обработчике выполнение кода идет до строки-проверки (условия) if (isset($sub)),

и выводится сообщение exit ("<p>Вы обратились к файлу без параметров!</p>");

Помогите найти ошибку :P

Форма:

<div id="logo"><a href="index.php"></a></div>
<div id="buttons"><div class="search">
<form action="view_search.php" method="post" name="form_s">
<p><input name="search" type="text" class="search_text" size="25" maxlength="40">
<input name="sub" type="submit">
</p>
</form>
</div>
</div>

Обработчик:
<?php
include ("bloks/bd.php"); /*Соединяемся с базой */
if (isset($_POST['$sub']))
{
$sub = $_POST['$sub'];
}
if (isset($_POST['$search']))
{
$search = $_POST['$search'];
}
if (isset($sub))
{
/*Условие что запрос пустой и содержит менее 4-х символов*/
if (empty($search) or strlen($search) < 4)
{
exit ("<p>Поисковый запрос не введен или он содержит менее 4-х символов</p>");
}
/*Защищаемся от взлома- обризаем пробелы, блокируем обратные слешы, и html исполняемые коды и запросы*/
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
}
else
{
exit ("<p>Вы обратились к файлу без параметров!</p>");
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo "Заметки по запросу $search"; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<link rel="SHORTCUT ICON" href="favicon.ico" type="image/x-icon">
</head>

<body>
<div id="main">
<!-- -->
<div id="header">
<!-- Подключаем шапку сайта -->
<?php
include ("bloks\header.php");
?>

</div>
<!-- header ends -->
<!-- content begins -->
<div id="content">
<div id="left">
<div id="sidebar">
<!-- Подключаем навигацию и рассылку -->
<?php

include ("bloks/navigation.php");
include ("bloks/podpiska.php");
include ("bloks/101.ru.php");
?>

</div>
</div>
<!-- end #sidebar -->
</div>
<div id="right">
<div class="cont">
<?
/*Формируем запрос к БД и указываем в нем - выбрать (SELECT) поля (...) из таблицы data, где есть соответствие (MATCH) в поле (text) равно переменной ($search)*/
$result = mysql_query ("SELECT title,id,date,author,description,view,mini_img FROM data WHERE MATCH(text) AGAINST('$search')",$db);

if (!mysql_connect)
{
echo "<p>Запрос не может быть обработан. сообщите об этом администратору.</p>";
exit (mysql_error());
}

if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array ($result);

do
{
printf ("<div class='cont'><img align='left' src='%s'><a href='view_post.php?id=%s'>%s</a><p class='cont_lessons'>%s</p></div>
<div class='small'>
<p class='small_lessons'>Дата добавления %s</p>
<p class='small_lessons'>Автор: <font class='add_post'>%s</font> | <a href='view_post.php?id=%s'>Читать далее</a> | Просмотров: <font class='add_post'>%s</font></p>
</div>",$myrow ["mini_img"],$myrow ["id"],$myrow ["title"],$myrow ["description"],$myrow ["date"],$myrow ["author"],$myrow ["id"],$myrow ["view"]);
}
while ($myrow = mysql_fetch_array ($result));
}
else
{
echo "<p><h3>По данному запросу нет информации</h3></p>";
exit();
}
?>
</div>



</div>

</div>
</div>
<!-- content ends -->
<!-- Подключаем footer -->
<?php
include ("bloks/footers.php");
?>
<!-- footer ends -->


</body>
</html>

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Май 2009 - 22:10

Вячеслав, разберём, что же такое массивы с ключами...
$_POST - глобальный массив переменных, переданных серверу методом POST. Ключи массива имею имена полей формы из атрибута name. Поэтому чтобы доступиться до значения или проверить на существование, надо писать так:
$_POST['ключ']
Твои переменные
$_POST['sub'] и $_POST['search'], а не $_POST['$sub'] и $_POST['$search']
Естественно будет ошибка!
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 01 Май 2009 - 22:18

Вотэто я прогнал... :P ...наверно пересидел вчера :P
Все олтично заработало!!! Спасибо!

Я задаю кучу всяких вопросов...если эти темы не важны их можно и удалять :P
  • 0


Оформление форума – IPBSkins.ru