<?php include("../options.php");
if(isset($_POST['Name'])) {$Name = $_POST['Name'];}
if(isset($_POST['Price'])) {$Price = $_POST['Price'];}
if(isset($_POST['Manufacture'])) {$Manufacture = $_POST['Manufacture'];}
if(isset($_POST['Type'])) {$Type = $_POST['Type'];}
if(isset($_POST['Articles'])) {$Articles = $_POST['Articles'];}
if(isset($_POST['Desc'])) {$Desc = $_POST['Desc'];}
if(isset($_POST['Description'])) {$Description = $_POST['Description'];}
if (isset($Name) && isset($Price) && isset($Manufacture) && isset($Type) && isset($Articles) && isset($Desc) && isset($Description))
{
$result = mysql_query("INSERT INTO product (Name, Price, Manufacture, Type, Articles, Desc, Description) VALUES ('$Name', '$Price', '$Manufacture', '$Type', '$Articles', '$Desc', '$Description')", $connect);
if($result == 'true') {echo "Товар добавлен";} else { echo "Товар не добавлен";}
}
else
{
echo "Вы заполнели не все поля";
}
?>
<?php include("add.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Add Product</title>
</head>
<body>
<form action="add.php" method="post" name="add_product">
<label>Имя</label><br />
<input name="Name" id="Name" type="text" size="20" /><br />
<label>Цена</label><br />
<input name="Price" id="Price" type="text" size="20" /><br />
<label>Производитель</label><br />
<input name="Manufacture" id="Manufacture" type="text" size="20" /><br />
<label>Тип</label><br />
<input name="Type" id="Type" type="text" size="20" /><br />
<label>Артикул</label><br />
<input name="Articles" id="Articles" type="text" size="20" /><br />
<label>Краткое описание</label><br />
<textarea name="Desc" id="Desc" cols="50" rows="7"></textarea><br />
<label>Полное описание</label><br />
<textarea name="Description" id="Description"cols="50" rows="7"></textarea><br />
<input name="submit" id="submit" type="submit" value="Добавить" /><br />
</form>
</body>
</html>
что не так и почему не заносятся данные, выдает текст Товар не добавлен, эта строка указана в функции if()
Спустя 59 минут, 58 секунд (29.01.2011 - 12:08) ApuktaChehov написал(а):
$result = mysql_query("INSERT INTO product (Name, Price, Manufacture, Type, Articles, Desc, Description) VALUES ('$Name', '$Price', '$Manufacture', '$Type', '$Articles', '$Desc', '$Description')", $connect) or die (mysql_error());
Спустя 20 минут, 23 секунды (29.01.2011 - 12:29) Guest написал(а):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Desc, Description) VALUES ('Корпус на Motorola', '654грн.', 'Motorola', 'Корпус'' at line 1
----------------------------------------------------------
как понял я что то с версией Сервера баз(а точнее как понял я - что то с синтаксисом)
или я не прав?
----------------------------------------------------------
как понял я что то с версией Сервера баз(а точнее как понял я - что то с синтаксисом)
или я не прав?
Спустя 1 минута, 50 секунд (29.01.2011 - 12:31) Snus написал(а):
$Name = mysql_real_escape_string($Name);
// и тд...
$query = "INSERT INTO `product` (`Name`, `Price`, `Manufacture`, `Type`, `Articles`, `Desc`, `Description`) VALUES ('$Name', '$Price', '$Manufacture', '$Type', '$Articles', '$Desc', '$Description')";
$result = mysql_query($query, $connect) or die (mysql_error());
Спустя 28 минут, 39 секунд (29.01.2011 - 12:59) Guest написал(а):
<?php include("../options.php");
if(isset($_POST['Name'])) {$Name = $_POST['Name'];}
if(isset($_POST['Price'])) {$Price = $_POST['Price'];}
if(isset($_POST['Manufacture'])) {$Manufacture = $_POST['Manufacture'];}
if(isset($_POST['Type'])) {$Type = $_POST['Type'];}
if(isset($_POST['Articles'])) {$Articles = $_POST['Articles'];}
if(isset($_POST['Desc'])) {$Desc = $_POST['Desc'];}
if(isset($_POST['Description'])) {$Description = $_POST['Description'];}
if (isset($Name) && isset($Price) && isset($Manufacture) && isset($Type) && isset($Articles) && isset($Desc) && isset($Description))
{
$query = "INSERT INTO 'product' ('Name', 'Price', 'Manufacture', 'Type', 'Articles', 'Desc', 'Description') VALUES ('$Name' ,'$Price', '$Manufacture', '$Type', '$Articles', '$Desc', '$Description')";
$result = mysql_query($query, $connect) or die (mysql_error());
if($result == 'true') {echo "Товар добавлен";} else { echo "Товар не добавлен";}
}
else
{
echo "Вы заполнели не все поля";
}
?>
вот так щас выглядит,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''product' ('Name', 'Price', 'Manufacture', 'Type', 'Articles', 'Desc', 'Descript' at line 1
это выдает
Спустя 16 минут, 33 секунды (29.01.2011 - 13:16) Snus написал(а):
Guest
А зачем ты кавычки поменял? просто скопипасти то, что я тебе написал
А зачем ты кавычки поменял? просто скопипасти то, что я тебе написал
Спустя 3 минуты, 25 секунд (29.01.2011 - 13:19) Guest написал(а):
блин, токо заметил , а что эт оза кавычки, почему они отличаюся и как их ставить, этот момент вообще увидел первый раз

Спустя 2 минуты, 48 секунд (29.01.2011 - 13:22) Snus написал(а):
Guest
Все string значения ты должен заносить в одинарные кавычки ' , все остальное в `
Все string значения ты должен заносить в одинарные кавычки ' , все остальное в `
Спустя 3 минуты, 56 секунд (29.01.2011 - 13:26) Dron19 написал(а):
Цитата (Snus @ 29.01.2011 - 09:31) |
|
да не, зачем безопасный вид приводить в данный момент? Дело в другом, у него с запросом что-то, может ты бд не подключил? Snus, и защищать бд надо немного по другому, учитывая magic_quotes_gpc, то есть не надеяться на него, а проверять его состояние и в зависимости от этого делать защиту
Спустя 1 минута, 35 секунд (29.01.2011 - 13:28) Snus написал(а):
Dron19
Что ты имеешь ввиду под "защищать бд надо немного по другому, учитывая magic_quotes_gpc, то есть не надеяться на него, а проверять его состояние и в зависимости от этого делать защиту "
Что ты имеешь ввиду под "защищать бд надо немного по другому, учитывая magic_quotes_gpc, то есть не надеяться на него, а проверять его состояние и в зависимости от этого делать защиту "
Спустя 2 минуты, 4 секунды (29.01.2011 - 13:30) Dron19 написал(а):
ну блин, давай я тебе что бы не срать сюда, напишу в личку?
Спустя 2 минуты, 36 секунд (29.01.2011 - 13:32) Snus написал(а):
Dron19
Да мне-то не нужно этого объяснять, а вот товарищу может понадобится (автору темы)
Да мне-то не нужно этого объяснять, а вот товарищу может понадобится (автору темы)
Спустя 2 минуты, 8 секунд (29.01.2011 - 13:34) Dron19 написал(а):
а ну ладно, я всего лишь хотел сказать, что просто так написать перед добавлением в бд $sql = mysql_real_escape_string($sql); недостаточно, а в некоторых случаях чревато ошибкой
Спустя 3 минуты, 22 секунды (29.01.2011 - 13:38) inpost написал(а):
Гость_Александр
Загляни ко мне в подпись. Начни с последней ссылки.
Загляни ко мне в подпись. Начни с последней ссылки.
Спустя 54 секунды (29.01.2011 - 13:39) Snus написал(а):
Dron19
Смотря какие данные заносишь. Все числа лучше integer делать, все html-содержащие данные через htmlspecialchars, все текстовые данные можно через base64_encode , но это с условием, что поиск не будет осуществляться по этим данным. А в остальных случаях mysql_real_escape_string и addslashes помогают.
Смотря какие данные заносишь. Все числа лучше integer делать, все html-содержащие данные через htmlspecialchars, все текстовые данные можно через base64_encode , но это с условием, что поиск не будет осуществляться по этим данным. А в остальных случаях mysql_real_escape_string и addslashes помогают.
Спустя 6 минут, 22 секунды (29.01.2011 - 13:45) aH6y написал(а):
Snus
Про "html-содержащие данные через htmlspecialchars" забудь!
Функция htmlspecialchars используется только для вывода данных и ни в коем случае не для форматированием перед отправкой в бд.
Про "html-содержащие данные через htmlspecialchars" забудь!
Функция htmlspecialchars используется только для вывода данных и ни в коем случае не для форматированием перед отправкой в бд.
Спустя 4 минуты, 28 секунд (29.01.2011 - 13:49) Dron19 написал(а):
совместно addslashes и mysql_real_escape_string нельзя использовать
И аддслэшес не нужна, если вкл magic_quotes_gpc, при ее включенном состоянии нужно данные, которые приходят из пост или гет обрабатывать stripslashes и только потом mysql_real_escape_string
И аддслэшес не нужна, если вкл magic_quotes_gpc, при ее включенном состоянии нужно данные, которые приходят из пост или гет обрабатывать stripslashes и только потом mysql_real_escape_string
Спустя 3 минуты (29.01.2011 - 13:52) Dron19 написал(а):
aH6y, нет, можно и так и так делать, когда ты добавляешь в бд с этой функцией, то там уже хранится безопасный код, а когда выводишь, будет по сути одно и тоже, но если неувязочка с защитой от sql, то при выводе этот код выполнится, так что лучше хранить там уже защищенный вид...
Спустя 4 минуты, 37 секунд (29.01.2011 - 13:57) Snus написал(а):
aH6y
Обоснуй
Обоснуй

Спустя 4 минуты, 45 секунд (29.01.2011 - 14:02) Guest написал(а):
Ребят всем спасибо, я просто еще по поводу защиты базы не думал, я учю все с нуля и на данный момент (как показала практика) даже с синтаксисом проблемы.Я понимаю щас принцып работы MySql +PHP, как вывести в массив даные с базы, как занести данные в базу, как отредактирывать данные в базе, как создать базу при помощи PHP.Просто по видеоурокам синтаксис был совсем ни такой и кавычек не было тех что мне тут показали и которые привели мой код в действие.Теперь все заработало и данные были успешно занесены.Да бы оправдать себя приведу скрин урока в котором этот код без кавычек.
http://photo.qip.ru/users/sorrrrry1/150868...252/full_image/
и у автора товарища Попова(благодоря которому я сдивунлся с мертвой точки в ПХП) в видео все работает, а у меня не заработало. Но слава богу благодоря вам ребята - все работает. Сразу предупрежу что вопросов будет очень много, так как ПХП хочю знать как 5 пальцев.
http://photo.qip.ru/users/sorrrrry1/150868...252/full_image/
и у автора товарища Попова(благодоря которому я сдивунлся с мертвой точки в ПХП) в видео все работает, а у меня не заработало. Но слава богу благодоря вам ребята - все работает. Сразу предупрежу что вопросов будет очень много, так как ПХП хочю знать как 5 пальцев.
Спустя 11 минут, 14 секунд (29.01.2011 - 14:13) Guest написал(а):
Появилась такая проблемма, хоть запонил я все поля хоть нет, товар добавляется, тоесть в базе появляется товар только ID а все остальное пусто, хотя есть три проверку в коде, но почему то они не срабатуют, тоесть я нажимаю конпку Добавиьт и мне выдает Товар добавлен, а должно было выводится Не все поля заполнены.
Спустя 8 минут, 5 секунд (29.01.2011 - 14:21) sorrrrry написал(а):
При много извиняюсь, эту тему создал , просто забыл войти.
Получается что if else на проверку заполненых полей не срабатует, еще раз опубликовую код
Получается что if else на проверку заполненых полей не срабатует, еще раз опубликовую код
<?php include("../options.php");
if(isset($_POST['Name'])) {$Name = $_POST['Name'];}
if(isset($_POST['Price'])) {$Price = $_POST['Price'];}
if(isset($_POST['Manufacture'])) {$Manufacture = $_POST['Manufacture'];}
if(isset($_POST['Type'])) {$Type = $_POST['Type'];}
if(isset($_POST['Articles'])) {$Articles = $_POST['Articles'];}
if(isset($_POST['Desc'])) {$Desc = $_POST['Desc'];}
if(isset($_POST['Description'])) {$Description = $_POST['Description'];}
if (isset($Name) && isset($Price) && isset($Manufacture) && isset($Type) && isset($Articles) && isset($Desc) && isset($Description))
{
$query = "INSERT INTO `product` (`Name`, `Price`, `Manufacture`, `Type`, `Articles`, `Desc`, `Description`)
VALUES ('$Name', '$Price', '$Manufacture', '$Type', '$Articles', '$Desc', '$Description')";
$result = mysql_query($query, $connect) or die (mysql_error());
if($result == 'true') {echo "Товар добавлен";} else { echo "Товар не добавлен";}
}
else
{
echo "Заполните все поля";
}
?>
Спустя 2 минуты, 12 секунд (29.01.2011 - 14:23) Snus написал(а):
isset - это проверка объявлена переменная или нет. Тебе нужно
if(!empty($Name) && ....
Спустя 21 минута, 10 секунд (29.01.2011 - 14:45) aparion написал(а):
Вместо этого
Цитата |
if(isset($_POST['Name'])) {$Name = $_POST['Name'];} |
можно писать
if (!empty($_POST['Name'])) $Name = $_POST['Name'];.
Так сразу проверяется заполнено поле или нет и если оно не пустое, то создается нужная переменная.
И условие можно исправить, чтоб после каждого выражения не писать &&.
if(isset($Name,$Price,...
Спустя 22 минуты, 8 секунд (29.01.2011 - 15:07) sorrrrry написал(а):
Цитата (Snus @ 29.01.2011 - 11:23) |
isset - это проверка объявлена переменная или нет. Тебе нужно if(!empty($Name) && .... |
спасибо - теперь все работает и если поля не заполнены происходит вывод строки Заполните все поля
Спустя 1 минута, 39 секунд (29.01.2011 - 15:08) sorrrrry написал(а):
Цитата (aparion @ 29.01.2011 - 11:45) | ||
Вместо этого
можно писать if (!empty($_POST['Name'])) $Name = $_POST['Name'];. Так сразу проверяется заполнено поле или нет и если оно не пустое, то создается нужная переменная. И условие можно исправить, чтоб после каждого выражения не писать &&. if(isset($Name,$Price,... |
блин ,супер, уменьшил код.
Спустя 1 час, 39 минут, 15 секунд (29.01.2011 - 16:48) sorrrrry написал(а):
Подскажите где рыть, суть : нужно что б index.php который находится в корне и является главным файлом сайта не перезагружался, то есть что б были блоки Левый блок Правый блок, Футер, Хидер и что б только информация менялась в этих блоках.Праельно ли вырозился или правельное я имею представление об этом, но приведу пример joomla, в ней в index.php разложены позиции и в них выводятся модули и инфо. Пока у меня получается принцып html страничек, то есть у каждого файла сайта одна и таже структура, толкьо в определенных мистах подключаются файлы при помощи include.Постарался изложить подробно.
Спустя 12 минут, 23 секунды (29.01.2011 - 17:00) YVSIK написал(а):
Знаешь не хочу поучать НО
зайди на тутошний сайт от этот сайт этого форума
и почитай об чём тут идет речь
потом наткнешься на такое форматер кода
уверяю многое станет понятным без вопросов
зайди на тутошний сайт от этот сайт этого форума
и почитай об чём тут идет речь
потом наткнешься на такое форматер кода
уверяю многое станет понятным без вопросов
Спустя 10 минут, 16 секунд (29.01.2011 - 17:10) sorrrrry написал(а):
спасибо, сейчас почитаю.Мне просто нужен толчек в нужном направлении.
Спустя 3 часа, 17 минут, 27 секунд (29.01.2011 - 20:28) aH6y написал(а):
Спустя 7 минут, 7 секунд (29.01.2011 - 20:35) Dron19 написал(а):
Цитата (aH6y @ 29.01.2011 - 17:28) |
Dron19 Snus http://irbis-team.com/15/5/2 |
Ну и что там про защиту сказано?
Спустя 42 секунды (29.01.2011 - 20:35) Dron19 написал(а):
там простой вывод, если ты без нее выведешь, то может пройти XSS, а если ты добавляешь в базу с этой функцией, то зловредный код все равно просто выведется