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

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

06.12.2012, 14:16. Показов 2982. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru