[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поиск методом GET
alex0511
привет все помогите с поиском
<?php //Соединение с хостом
$db_host='';// ваш адрес где находится, хостится ваша база данных
$db_name='';// Имя базы данных с которой вы хотите работать, так как их может быть множество
$db_user='';// логин доступ к базе данных
$db_pass='';// пароль доступа к базе данных
@mysql_connect($db_host,$db_user,$db_pass);// устанавливаем связь с сервером
?>
<html><head><title>Регламент</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<style type="text/css">
p {align=center; color: #0000FF}
.style1 {color: #FF0000}
.style2 {padding-left: 12px;}
</style></head>
<body>
<table width=100% border=1 align=center bgcolor=#CCCCFF>
<form method="get">
<tr><td colspan="4" align=left><hr>
введите наименование товара : <input type="text" name = "txt">
<input type="submit" value="Найти ">
</form> </td></tr>
<?php
mysql_select_db ("$db_name") or die ("Нет соединения с базой ");
//Соединение и связывание таблиц
$result = mysql_query("Select * FROM products WHERE (products.name ='name' )");



//вывод данных
echo "<tr>";
echo "<td align=center><p>";
echo ("<tr><td align=center><p>Код</td><td align=center><p> наименование:</td><td align=center><p> цена:</td><td

align=center><p>количество: </td></tr>");
"</td>";
while($data=mysql_fetch_array($result))
{
echo "<tr>";
echo "<td align=center><p>";
echo ("<tr><td align=center><p> ".$data['id']."</td><td> ".$data['name']."</td><td align=right> ".$data['uroven']."</td><td

align=right>".$data['roditel']."</td></tr>");
"</td>";
}
echo "<tr><td colspan=3 align=center>проба поиска по наименованию</td></tr>";
echo "</tr></table>";
?></body></html>
страничка не чего не находит



Спустя 46 секунд (26.08.2011 - 16:03) alex0511 написал(а):
если делать так тогда появляется таблица с товаром
$result = mysql_query("Select * FROM products WHERE (products.name ='шкаф' )");

Спустя 10 минут, 17 секунд (26.08.2011 - 16:13) Игорь_Vasinsky написал(а):
Цитата
$result = mysql_query("Select * FROM products WHERE (products.name ='name' )");


$result = mysql_query("Select * FROM `products` WHERE `products.name` = mysql_real_escape_string($_GET['name']) ") or die (mysql_error());


or die (mysql_error()) - для отладки

Спустя 1 минута, 39 секунд (26.08.2011 - 16:15) alex0511 написал(а):
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\apache\proba.ru\www\index.php on line 26

Спустя 2 минуты, 2 секунды (26.08.2011 - 16:17) Diss написал(а):
1. причем тут метод гет вообще? (я о названии темы)
2. переменные пишутся со знака $, а тут products.name ='name' )"); оно у тебя ищет слово name
3. переменную надо где-то определять ;)

Игорь_Vasinsky,
$result = mysql_query("Select * FROM `products` WHERE `products.name` = mysql_real_escape_string($_GET['name']) ") or die (mysql_error());

если запись будет именно такой, то привет sql injection :)

Спустя 43 секунды (26.08.2011 - 16:18) Игорь_Vasinsky написал(а):
упс......... :D
$result = mysql_query("Select * FROM `products` WHERE `products.name` = '".mysql_real_escape_string($_GET['name'])."' ") or die (mysql_error());


конкатенация брат....

Спустя 49 секунд (26.08.2011 - 16:18) Игорь_Vasinsky написал(а):
Цитата
если запись будет именно такой, то привет sql injection smile.gif


оОоО mysql_real_escape_string() - для чего???

ну добавь ещё htmlspesialchars() biggrin.gif

Спустя 1 минута, 17 секунд (26.08.2011 - 16:20) alex0511 написал(а):
ребят я не силен в том что вы мне щас наговарили можно по падробней

Спустя 41 секунда (26.08.2011 - 16:20) alex0511 написал(а):
если делать так то
$result = mysql_query("Select * FROM `products` WHERE `products.name` = '".mysql_real_escape_string($_GET['name'])."' ") or die (mysql_error());

ошибка
Notice: Undefined index: name in C:\apache\proba.ru\www\index.php on line 26
Unknown column 'products.name' in 'where clause'

Спустя 3 минуты, 23 секунды (26.08.2011 - 16:24) Игорь_Vasinsky написал(а):
упс2

ты же отсюда ищешь
Цитата
введите наименование товара : <input type="text" name = "txt">


тогда
$result = mysql_query("Select * FROM `products` WHERE `products.name` = '".mysql_real_escape_string($_GET['txt'])."' ") or die (mysql_error());


а говорили мы о безопастности.

Не надо сразу брать $_GET['txt'] из URL - надо предварительно обработать (обезопасить) - убрать или сконвертировать html - теги, экранировать спец символы - иначе - можно послать запрос в БД - в лучшем случае - ты откроешь БД, в худшем - её уничтожат или испортят.

Такое хулиганство с БД и называется SQL - инъекцией.

Спустя 1 минута, 17 секунд (26.08.2011 - 16:25) alex0511 написал(а):
блин теперь ошибка
Unknown column 'products.name' in 'where clause'

Спустя 1 минута, 2 секунды (26.08.2011 - 16:26) alex0511 написал(а):
все ок работает спасибо

Спустя 15 секунд (26.08.2011 - 16:26) Diss написал(а):
Цитата
оОоО mysql_real_escape_string() - для чего???

ну я как раз без конкатенации и не заметил ее, увидел только запрос в котором стоит переменная из гет smile.gif
мой косячок smile.gif
htmlspesialchars при выводе вроде надо делать?

Спустя 2 минуты, 1 секунда (26.08.2011 - 16:28) Игорь_Vasinsky написал(а):
htmlspesialchars при выводе вроде надо делать?

смотря что ищем, если я ищу теги в тексте из БД - то да - при выводе

А в основном striptags() - при запросе в БД - чтоб ерезь не проскачила.

Спустя 32 секунды (26.08.2011 - 16:29) Игорь_Vasinsky написал(а):
alex0511
Цитата
а говорили мы о безопастности.

Не надо сразу брать $_GET['txt'] из URL - надо предварительно обработать (обезопасить) - убрать или сконвертировать html - теги, экранировать спец символы - иначе - можно послать запрос в БД - в лучшем случае - ты откроешь БД, в худшем - её уничтожат или испортят.

Такое хулиганство с БД и называется SQL - инъекцией.

Спустя 1 минута, 25 секунд (26.08.2011 - 16:30) alex0511 написал(а):
ясно мне очень понравился этот форум здесь без подколов нармально помогают спасибо вам еще раз

Спустя 1 минута, 15 секунд (26.08.2011 - 16:32) Игорь_Vasinsky написал(а):
Тут всякие есть biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.