короче, вот форма ввода данных:
<form method="post" action="insert.php">
<table align="center">
<tr>
<td style="border: 0px">Название продукта:</td>
<td style="border: 0px"><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Описание продукта:</td>
<td style="border: 0px"><input type="text" name="description" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Цена продукта:</td>
<td style="border: 0px"><input type="text" name="price" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Пол (m-мальчик, w-девочка, n-для всех):</td>
<td style="border: 0px"><input type="text" name="pol" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Фирма:</td>
<td style="border: 0px"><input type="text" name="firma" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Скидки (y-есть, n-нет):</td>
<td style="border: 0px"><input type="text" name="skidki" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Цена со скидкой:</td>
<td style="border: 0px"><input type="text" name="cena" size="20"></td>
</tr>
<tr>
<td style="border: 0px">Картинка продукта:</td>
<td style="border: 0px"><input type='file' name='t_item' id="img"></td>
</tr>
<tr>
<td style="border: 0px"><input type="submit" name="ok" value="Добавить" size="10"></td>
</tr>
</table>
</form>
вот к ней обработчик:
<?
mysql_connect("localhost","","");
mysql_select_db("tutorials");
$rez=mysql_query("INSERT INTO products VALUES ('','$_POST[name]','$_POST[description]','$_POST[price]','images/$picture','$_POST[pol]','$_POST[firma]','$_POST[skidki]','$_POST[cena]')") or die(mysql_error());
if($rez==1)
{
@header ("location: filful.php");
}
else
{
@heder ("location: error.php");
}
?>
Спустя 38 секунд (10.06.2011 - 21:39) ueo написал(а):
папка, куда нужно отправить картинку (images) лежит в корне сайта, а странички с кодом формы и обработчик в папке.
на выходе получается, что картинка в папку не уходит, а в базу уходит только
на выходе получается, что картинка в папку не уходит, а в базу уходит только
images/
Спустя 23 минуты, 4 секунды (10.06.2011 - 22:03) Потрашитель написал(а):
подключаться к базе лучше так:
$localhost = "localhost";
$user = "пользователь";
$passworduser = "пароль";
$mysql_baza = "tutorials";
$db = mysql_connect("$localhost","$user","$passworduser");
mysql_select_db("$mysql_baza",$db);
-------------------------------------
по крайней мере я так пишу=Ъ
$localhost = "localhost";
$user = "пользователь";
$passworduser = "пароль";
$mysql_baza = "tutorials";
$db = mysql_connect("$localhost","$user","$passworduser");
mysql_select_db("$mysql_baza",$db);
-------------------------------------
по крайней мере я так пишу=Ъ
Спустя 54 секунды (10.06.2011 - 22:03) Потрашитель написал(а):
по теме не знаю
Спустя 2 минуты, 6 секунд (10.06.2011 - 22:06) sharki написал(а):
Потрашитель
Объясни данный синтаксис
А именно двойные кавычки.
Объясни данный синтаксис
mysql_connect("$localhost","$user","$passworduser");
А именно двойные кавычки.
Спустя 11 минут, 10 секунд (10.06.2011 - 22:17) Arni написал(а):
Вам точно хочется засунуть картинку в в папку ? Потому что пишете что папка на сервере, а попыток это сделать не наблюдаю. Зато какой то запрос в базу данных имеется.
to: sharki.
Ну тут скрыт глубокий философский смысл. Не знаю кто такой Попов, но часом это не из этого разряда? Ато часто сылшу на форуме Попов, Попов.
to: sharki.
Ну тут скрыт глубокий философский смысл. Не знаю кто такой Попов, но часом это не из этого разряда? Ато часто сылшу на форуме Попов, Попов.
Спустя 5 минут, 28 секунд (10.06.2011 - 22:22) ueo написал(а):
Arni ну я и спрашиваю, как должны выглядеть эти попытки "засунуть картинку в папку"???
Спустя 22 минуты, 30 секунд (10.06.2011 - 22:45) Arni написал(а):
Цитата (ueo @ 10.06.2011 - 19:22) |
Arni ну я и спрашиваю, как должны выглядеть эти попытки "засунуть картинку в папку"??? |
Это не правильно начинать делать что-то не понимая как оно работает в принципе.
1. <input type='file' name='t_item' id="img"> вот это правильно. Это элемент формы ,который укажет браузеру на то что нужно предоставить пользователю интерфейс для загрузки файла в поле специальное. Потому браузер эту картинку засунет в свою временную директорию на стороне клиента. И после нажатия кнопки отправить начнет передачу данных на сервер.
2. На сервере сидит добрый дядя http-сервер, который все эти данный примет. И так как вас интересует конкретно файл, то он его тоже закинет во временную категорию, имя и расположение которой зависит от конфигурации сервера.
3. Далее запустится php скрипт на выполнение. И тут важно понимать что это в вашем случае php скрипт. А еще это может быть перл, руби, питон, асп в конце конуов :).
Как только скрипт запустился на выполнение, все в ваших руках. Информация о том где находится ваш файл на сервере хранится в суперглобальном массиве под именем.
$_FILES
И если сделать вот так.
print_r(FILES);
То вы узнаете много нового.
А вообще читать. Я не говорю что я все это познал за 2 часа, но я уже все это прошол. И вам желаю того же.
Спустя 38 минут, 42 секунды (10.06.2011 - 23:23) ueo написал(а):
в общем понятно. пока сама не дойду до этого ничего не смогу сделать. пишу дипломный проект, там поставлено задание это сделать, для этого и нужно. может я совсем не бум-бум, но я так и не поняла, куда пихать
и как это всё-таки это должно выглядеть в коде
print_r(FILES);
и как это всё-таки это должно выглядеть в коде
Спустя 17 минут, 48 секунд (10.06.2011 - 23:41) Invis1ble написал(а):
ueo
не print_r(FILES), а print_r($_FILES)
И никуда пихать это не надо, это просто дамп, чтобы ты могла понять, где хранятся данные о загруженном файле.
Вставляешь в форму
в обработчике примерно следующий код:
не print_r(FILES), а print_r($_FILES)
И никуда пихать это не надо, это просто дамп, чтобы ты могла понять, где хранятся данные о загруженном файле.
Вставляешь в форму
<form action="" method="post" enctype="multipart/form-data">
<!-- другие поля -->
<input type="file" name="image" value="" />
<!-- другие поля -->
</form>
в обработчике примерно следующий код:
if (!empty($_FILES['image']['name']))
{
if (!move_uploaded_file($_FILES['image']['tmp_name'], $destination)) // $destination - путь + имя файла
die('не удалось загрузить файл');
else
echo 'Все путем';
}
Спустя 5 минут, 1 секунда (10.06.2011 - 23:46) Потрашитель написал(а):
Цитата |
Объясни данный синтаксис mysql_connect("$localhost","$user","$passworduser"); А именно двойные кавычки. |
Да,я знаю что читабельнией когда одинарные..ну мне удобнее просто двойные..
Спустя 8 минут, 16 секунд (10.06.2011 - 23:54) Invis1ble написал(а):
Потрашитель
причем тут читабельность? кавычки в данном случае вообще не нужны, а в одинарных у тебя переменные вообще не проинтерпретируются.
причем тут читабельность? кавычки в данном случае вообще не нужны, а в одинарных у тебя переменные вообще не проинтерпретируются.
Спустя 33 секунды (10.06.2011 - 23:55) inpost написал(а):
Потрашитель
Вообще там кавычки не нужны! А с одинарными и подавно работать не будет
Вообще там кавычки не нужны! А с одинарными и подавно работать не будет
Спустя 13 минут, 53 секунды (11.06.2011 - 00:09) Потрашитель написал(а):
..а поч у меня работает с двойными?!их убрать,да?
Спустя 5 минут, 40 секунд (11.06.2011 - 00:15) sharki написал(а):
Потрашитель
Кавычки вообще не нужны в данном случае, т.к ты уже все данные обработал
следовательно здесь ("$localhost","$user","$passworduser"); они уже лишние!
Кавычки вообще не нужны в данном случае, т.к ты уже все данные обработал
$localhost = "localhost";
$user = "пользователь";
следовательно здесь ("$localhost","$user","$passworduser"); они уже лишние!
Спустя 6 минут, 36 секунд (11.06.2011 - 00:21) Потрашитель написал(а):
Спс,чтото тупанул..я просто раньше на прямую писал.. тоесть ("localhost","igoreck","12345"),..вот в чем дело!и к кавычкам так и привык.спасибо.Убрал ковычки!!!
----------------------------
хороший форум!
----------------------------
хороший форум!
Спустя 4 минуты, 58 секунд (11.06.2011 - 00:26) Invis1ble написал(а):
Цитата |
хороший форум! |
Ато!
Спустя 4 минуты, 2 секунды (11.06.2011 - 00:30) ueo написал(а):
а, что поставить в запросе
вместо
INSERT INTO products VALUES ('','$_POST[name]','$_POST[description]','$_POST[price]','images/$picture','$_POST[pol]','$_POST[firma]','$_POST[skidki]','$_POST[cena]')"
вместо
'images/$picture'
Спустя 7 минут, 12 секунд (11.06.2011 - 00:37) inpost написал(а):
'images/".$picture."'
Спустя 20 минут, 29 секунд (11.06.2011 - 00:58) ueo написал(а):
млин. короче, все написала, но не работает. может я где-то ошиблась, не туда написала что:
<?
$localhost = "localhost";
$user = "";
$passworduser = "";
$mysql_baza = "tutorials";
$db = mysql_connect($localhost, $user,$passworduser);
mysql_select_db("$mysql_baza",$db);
$rez=mysql_query("INSERT INTO products VALUES ('','$_POST[name]','$_POST[description]','$_POST[price]','images/".$picture."','$_POST[pol]','$_POST[firma]','$_POST[skidki]','$_POST[cena]')") or die(mysql_error());
if (!empty($_FILES['image']['name']))
{
if (!move_uploaded_file($_FILES['image']['tmp_name'], $destination)) // $destination - путь + имя файла
die('не удалось загрузить файл');
else
echo 'Все путем';
}
if($rez==1)
{
@header ("location: filful.php");
}
else
{
@heder ("location: error.php");
}
?>
Спустя 8 минут, 5 секунд (11.06.2011 - 01:06) Invis1ble написал(а):
ueo
Цитата |
может я где-то ошиблась, не туда написала что: |
естественно!
1. там где стоит echo "все путем" нужно как раз такии запрос твой поставить
2. вместо image/$picture - ставишь $destination, естественно его нужно заранее определить этот путь, а не тупо скопировать мой код =) Я ведь не случайно там комментарий в коде вставил )
3. У тебя запрос голый, не экранируются "опасные" символы во внешних данных - как следствие, тебя взломает любой недохаккер-школьнег =) Почитай про mysql_real_escape_string(), на форуме не одну сотню раз обсждалось.
ПС. Побольше аналитики, а не тупой копи-паст. Помагать вообще желание пропало