<?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 ='шкаф' )");
$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,
если запись будет именно такой, то привет sql injection :)
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 |
оОоО mysql_real_escape_string() - для чего???
ну добавь ещё htmlspesialchars()
Спустя 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'
$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'
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() - для чего??? |
ну я как раз без конкатенации и не заметил ее, увидел только запрос в котором стоит переменная из гет
мой косячок
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 написал(а):
Тут всякие есть