Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5

Отправка формы в БД и загрузка изображения

06.12.2012, 14:16. Показов 3009. Ответов 19

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Суть проблемы - я "чайник"
По сути в теории:
add.php
на страничке форма с полями "имя", "текст", "дата" и загрузка изображения. Все данные должны передаваться в БД (MySQL). Изображение должно переименоваться при загрузке (к примеру на таймстамп, для безопасности) и новое имя тоже занести в БД...
index.php
на этой страничке проверяем: если сегодняшнее число совпадает с одной из записью БД "дата", то выводим на страницу содержимое поля "текст" и изображение из совпавшей записи
На практике, мозги плавятся, когда пытаюсь на других примерах применить к своему случаю...
Если кому не трудно - набросайте, пожалуйста, основу/каркас как оно должно быть. Дальше, думаю, методом проб и ошибок доделаю.
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2012, 14:16
Ответы с готовыми решениями:

Отправка изображения из формы в папку на другой сервер
Ситуация такая. Имеется основной сайт test.ru и мобильная версия этого сайта m.test.ru. У них общая БД. При добавлении объявления...

Загрузка изображения с формы 1 на форму 2
Добрый день. Есть форма 1 на ней мини просмотр изображения (picturebox), как при нажатии на кнопку открыть это изображения на форме 2 в...

Загрузка картинок с сжатием и конвертированием изображения + массовая загрузка
Приветствую форумчане Я можно сказать что новичок в PHP но сайты пишу уже давно, и столкнулся с тем что мне нужно огромный архив на...

19
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
07.12.2012, 00:10
так ты начни делать скрипт, а потом чё не получится пиши..
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5
07.12.2012, 15:48  [ТС]
грубо говоря, с кодом страницы index.php справился.
уперся на этом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php 
$link = mysql_connect('localhost','root','');
mysql_select_db('older');
mysql_set_charset('utf8');
 
if($_POST['submit']) {  
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$pdate = htmlspecialchars($_POST['pdate']);
$title = htmlspecialchars($_POST['title']);
$text = htmlspecialchars($_POST['text']);
$send = mysql_query("INSERT INTO `older`.`olders` (`id`,`name`,`email`,`pdate`,`title`,`text`,`photo`,`valid`) VALUES (NULL, $name, $email, $pdate, $title, $text, '0', '0')", $link);
} ?>
<form name="" action="" method="post">  
Имя: <input name="name" type="text" value=""><br>  
E-mail: <input name="email" type="text" value=""><br>
pdate: <input name="pdate" type="text" value=""><br>
title: <textarea name="title" rows=5 cols=20 wrap="off"></textarea><br>  
text: <textarea name="text" rows=5 cols=20 wrap="off"></textarea><br>  
<input name="submit" type="submit" value="Отправить">  
</form>  
<?php
echo $name;
echo $title;
echo $text;
?>
заполняю форму, нажимаю "Отправить", страница перезагружается, "echo $name; echo $title; echo $text;" выполняется, а в БД данные не появляются...
где косяк?
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
07.12.2012, 20:31
Цитата Сообщение от BugDC Посмотреть сообщение
mysql_query("INSERT INTO `older`.`olders` (`id`,`name`,
`older`.`olders` - ты в две таблицы заносишь?? Какое название таблици?

Добавлено через 5 минут
сделай так
PHP
1
2
$sql = "INSERT INTO `older` (id, name, email, pdate, title, text, photo, valid) VALUES ('$name', '$email', '$pdate', '$title', '$text', '0', '0')", $link;
mysql_query($sql) or die(mysql_error());
Добавлено через 2 минуты
название базы тоже чтоли
PHP
1
mysql_select_db('older');
Добавлено через 13 минут
ой id там убери в нём нет необходимости если в таблице стоит AUTO_INCREMENT
PHP
1
2
$sql = "INSERT INTO `older` (name, email, pdate, title, text, photo, valid) VALUES ('$name', '$email', '$pdate', '$title', '$text', '0', '0')", $link;
mysql_query($sql) or die(mysql_error());
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
07.12.2012, 20:34
Цитата Сообщение от BugDC Посмотреть сообщение
PHP
1
if($_POST['submit']) {
PHP
1
if(isset($_POST['submit'])) {
Цитата Сообщение от BugDC Посмотреть сообщение
PHP
1
2
3
echo $name;
echo $title;
echo $text;
а если не нажимали кнопки (т.е. при первом запуске страницы например) - то будет примерно так:
Notice: undefined variable $name in ....
Notice: undefined variable $title in ....
Notice: undefined variable $text in ....
Цитата Сообщение от lagrei66 Посмотреть сообщение
`older`.`olders` - ты в две таблицы заносишь?? Какое название таблици?
`older`.`olders` = таблица olders в базе данных older

Добавлено через 36 секунд
Цитата Сообщение от lagrei66 Посмотреть сообщение
ой id там убери в нём нет необходимости
лучше все же оставить, а вместо значения - вставлять NULL..
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
07.12.2012, 20:37
Цитата Сообщение от KOPOJI Посмотреть сообщение
лучше все же оставить, а вместо значения - вставлять NULL..
и какой в нём смысл всегда без него идёт.. (никогда так не делал, и нет проблем)
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5
07.12.2012, 21:38  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
сделай так
PHP
1
2
$sql = "INSERT INTO `older` (id, name, email, pdate, title, text, photo, valid) VALUES ('$name', '$email', '$pdate', '$title', '$text', '0', '0')", $link;
mysql_query($sql) or die(mysql_error());
спасибо, решило проблему

Цитата Сообщение от KOPOJI Посмотреть сообщение
PHP
1
if(isset($_POST['submit'])) {
спасибо

Цитата Сообщение от lagrei66 Посмотреть сообщение
и какой в нём смысл всегда без него идёт.. (никогда так не делал, и нет проблем)
при вставке записей через phpMyAdmin заметил что sql запрос делается с id и значением NULL, именно поэтому так и сделал, стабильно работает
0
07.12.2012, 21:44

Не по теме:

ошибки не будет вылетать. все поля должны быть перечислены - иначе на мускульной стороне вылетает предупреждение

0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
08.12.2012, 01:32
Цитата Сообщение от KOPOJI Посмотреть сообщение
ошибки не будет вылетать. все поля должны быть перечислены - иначе на мускульной стороне вылетает предупреждение
незнаю что у вас вылетает, у меня никаких предупреждений не видел! первый раз слышу!
0
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 5
10.12.2012, 01:06  [ТС]
Вопрос: можно ли использовать PHP переменные в MySQL запросах?

к примеру:
PHP
1
2
3
4
5
6
7
8
9
/* одобрение/отклонение заявок */
if (isset($_GET["r"]) {
    $r = $_GET["r"];
    $act = $_GET["action"];
    if ($act == '1') {
        mysql_query("UPDATE `olders` SET `valid`='1' WHERE `id`=$r");}
    if ($act == '2') {
        mysql_query("UPDATE `olders` SET `valid`='2' WHERE `id`=$r");}
}
изначально valid = 0, через панель управления необходимо менять на 1 или 2

Добавлено через 33 минуты
извиняйте, нашел, кажется, ответ

Цитата Сообщение от KOPOJI Посмотреть сообщение
2. Если вам лень это делать (как часто мне бывает) - можно перед запросом непосредственно к БД вывести сам этот запрос на экран, и посмотреть что у нас уходит в базу, какой запрос.

PHP
1
2
3
4
5
$login = $_POST['login']; //к примеру admin
$pass = $_POST['pass']; //к примеру 12345
$query = "SELECT count(`id`) FROM `users` WHERE `login`='$loggin' AND `pass`='$pass'";
echo $query;exit;
//дальше выполняется запрос
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
10.12.2012, 01:08
можно но малость не так/ а вот так
PHP
1
2
3
4
5
if ($act == '1') {
mysql_query("UPDATE `olders` SET `valid`='1' WHERE `id`='$r'");}
if ($act == '2') {
mysql_query("UPDATE `olders` SET `valid`='2' WHERE `id`='$r'");}
}
1
10.12.2012, 09:54

Не по теме:

Цитата Сообщение от lagrei66 Посмотреть сообщение
можно но малость не так/ а вот так
если тип поля id - целочисленный, то это лишнее преобразование типов

0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
10.12.2012, 15:48
Цитата Сообщение от KOPOJI Посмотреть сообщение
если тип поля id - целочисленный, то это лишнее преобразование типов
ты хочешь сказать что ковычки не нужны? или ты о чём не понил?
0
10.12.2012, 16:04

Не по теме:

lagrei66, да, именно это

0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
10.12.2012, 17:57
Цитата Сообщение от KOPOJI Посмотреть сообщение
да, именно это
так а как же тогда sql впрыск, если без ковычек, там не чё нельзя будет сделать
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.12.2012, 20:26
Цитата Сообщение от lagrei66 Посмотреть сообщение
так а как же тогда sql впрыск
что за "sql впрыск"? SQL-инъекция что ли?

Не по теме:

не все, что так переводится, так и читается :D

0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
10.12.2012, 20:31
Цитата Сообщение от KOPOJI Посмотреть сообщение
что за "sql впрыск"? SQL-инъекция что ли?
да SQL-инъекция, неправильно насзвал,, без кавычек же повышается риск
или я в чём то не прав? если там не будет ков. то можно будет что то подставить наверно?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.12.2012, 20:38
Цитата Сообщение от lagrei66 Посмотреть сообщение
или я в чём то не прав? если там не будет ков. то можно будет что то подставить наверно?
а с кавычками типа нельзя? Ок.
PHP
1
2
3
4
$res = mysql_query("SELECT * FROM `table_name` WHERE `id`='{$_GET['id']}'";
while($obj = mysql_fetch_object($res)) {
    echo $obj->id, '<br />';
}
Вводим адрес site.ru/path/to/script.php?id='+or+1+--+f
Без кавычек если - тоже самое. А вот если сделать вот так
PHP
1
2
$id = (int) $_GET['id'];
//а дальше все тоже самое, только подставляем уже $id вместо $_GET['id']
то будет уже все нормально.
Кавычки нужны не для предотвращения SQL-injection, а для вставки значений в текстовые поля. Если их опустить при вставке в текстовый тип поля, то если там одно слово без пробелов - вылезет ошибка что нет такого поля в таблице. Если там слово с пробелом - то, насколько помню, вылезет ошибка синтаксиса запроса. Для этого и нужны кавычки при вставке текста в БД - чтобы предложение учитывалось как одна строка, а не несколько
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
10.12.2012, 20:47
Цитата Сообщение от KOPOJI Посмотреть сообщение
Кавычки нужны не для предотвращения SQL-injection
а как тогда защитить текстовые поля? varhar
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.12.2012, 20:51
для mysql - mysql_real_escape_string()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2012, 20:51
Помогаю со студенческими работами здесь

Загрузка изображения в Image с сохранении соотношения сторон изображения
загрузка изображения в Image(с фиксированным размером) при этом изображение должно сохранить соотношение сторон и полностью уместится в...

Проверка формы не работает, если отправка формы была отменена
Здравствуйте, есть форма с 7ю радиокнопками и кнопкой submit, которая отправляет ее на сервер. Я написала простейший скрипт для валидации....

Загрузка изображения (только изображения)
Нужно обычная форма через которую надо загружать изображение в папку load Вот что я пока что написал : &lt;!DOCTYPE HTML PUBLIC...

Отправка формы методом GET, используя атрибут action формы
Язык HTML. Задача состоит в том чтобы при выставленном методе отправки данных с формы &quot;post&quot; отправка осуществлялась методом...

Обработка формы сайта на Go. Отправка данных формы на email
Здравствуйте, я новичок в Go. Как реализовать отправку данных на email. Есть сайт,но хочу прикрутить Go.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru