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

Несколько записей в сессию

10.01.2017, 22:00. Показов 740. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть форма добавление объявлений
в ней присутствуют поля: регион,категория,имя,телефон,эмаил,назва ние,описание и добавления изображений. Изображения добавляются ajax'coм следующим образом: нажал на плюс загрузилось одно изображение, ещё раз нажал на плюс загрузилось второе изображение и т.д. Когда я загружаю изображения они сразу записываются в базу создавая новый id, но мне надо чтобы они все записывались в одно поле через запятую. Я хочу сделать так: Заполнив все поля формы и выбрав несколько картинок отправляю форму на файл обработчик и там все заносится в базу из метода POST. Вопрос в том что, как мне записать несколько выбранных изображений в сессию чтобы потом на файле обработчике занести их в базу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2017, 22:00
Ответы с готовыми решениями:

Удалить несколько записей
Не могу понять как лучше реализовать, мне нужно что при выделение чекбоксы горела кнопка удалить записи. И так же пользователь может нажать...

Делает несколько одинаковых записей при добавлении записи к БД
Суть проблемы. Имеется простая форма регистрации пользователя. Он заполняет поля формы, отправляет и вроде все замечательно, но при...

Как добавить несколько записей в базу через одну кнопку?
Вручную сделал скрин что бы понять? Как можно сделать?

8
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.01.2017, 22:16
Цитата Сообщение от shahin_87 Посмотреть сообщение
Изображения добавляются ajax'coм
нафига грузить сразу изображения? а если пользователь загрузил и дальше передумал давать объяву.
Цитата Сообщение от shahin_87 Посмотреть сообщение
Заполнив все поля формы и выбрав несколько картинок отправляю форму на файл обработчик и там все заносится в базу из метода POST. Вопрос в том что, как мне записать несколько выбранных изображений в сессию
нафига их писать в сессию. изображения будут в массиве $_FILES
или я что-то не так понял?
0
0 / 0 / 1
Регистрация: 05.11.2016
Сообщений: 68
10.01.2017, 22:35  [ТС]
fanatikus, Тоесть все изображения 3-5-10 ? А как их через запятую в базу записать?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.01.2017, 22:42
Цитата Сообщение от shahin_87 Посмотреть сообщение
А как их через запятую в базу записать?
SQL
1
 INSERT INTO `table`  (`images`) VALUES ('img1.jpg,img2.jpg,img3.jpg')
0
0 / 0 / 1
Регистрация: 05.11.2016
Сообщений: 68
10.01.2017, 23:07  [ТС]
SQL
1
INSERT INTO `table`  (`images`) VALUES ('img1.jpg,img2.jpg,img3.jpg')
да это я знаю, в $_FILES же по одной картинке записывается, а если пользовытель выбрал несколько?
нафига грузить сразу изображения? а если пользователь загрузил и дальше передумал давать объяву
да вот тут я с вами полностью согласен, но дело в том что я скрипт нашёл готовый, а он сразу в папку записывает. Вот тут опять нужно несколько файлов записать во временной массив(или кудато) и если пользователь не передумал и отправил форму то записать данные в $_FILES и имена картинок в базу. Верно?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.01.2017, 23:17
Цитата Сообщение от shahin_87 Посмотреть сообщение
да это я знаю, в $_FILES же по одной картинке записывается,
нет, можно кучу
HTML5
1
2
3
4
<form method="post" enctype="myltipart/form-data">
        <input type="file" name="photos" multiple="multiple">
        <input type="submit" name="sub" value="Загрузить">
    </form>
Добавлено через 6 минут
Цитата Сообщение от shahin_87 Посмотреть сообщение
записать во временной массив(или кудато)
да не нужно ничего записывать во временный массив. отправляйте сразу форму с данными и изображениями
форма выше, только добавить своих полей
на сервере перебираете массив $_FILES, сохраняете изображения, а названия собираете в строку(через запятую)
и сохраняте данные из $_PОST и изображения. все.
0
0 / 0 / 1
Регистрация: 05.11.2016
Сообщений: 68
10.01.2017, 23:38  [ТС]
fanatikus, понятно, в $_FILES будет куча а в базу как записать через запятую. Как в $_FILES записывается куча? С пробелами или можете файлы через запятую?

Добавлено через 3 минуты
А вот и ещё вопрос: если картинка не загружается как будет выведен предпросмотр?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.01.2017, 23:52
Цитата Сообщение от shahin_87 Посмотреть сообщение
Как в $_FILES записывается куча?
вы прикалываетесь? не нужно ничего писать в $_FILES. массив сам формируется когда выбраны файлы и отправлена форма.
пользователь выбрал файлы нажал сохранить и на сервере все файлы будут доступны в $_FILES['name поля для загрузки']
может сначала почитать теорию?
http://php.net/manual/ru/featu... ltiple.php

Добавлено через 8 минут
Цитата Сообщение от shahin_87 Посмотреть сообщение
если картинка не загружается как будет выведен предпросмотр?
никак. пред. просмотр нужно реализовать самому.
0
0 / 0 / 1
Регистрация: 05.11.2016
Сообщений: 68
11.01.2017, 07:07  [ТС]
fanatikus, Спасибо вам, вы мне очень помогаете, просто учусь на практике.
Вот скрипт не покажете как сделать предпросмотр.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
        <?php
error_reporting(0);
require_once 'db.php';
session_start();
 
$session_id = '1'; 
define("MAX_SIZE","2000"); 
 
function getExtension($str) {
    $i = strrpos($str,".");
    if (!$i) { return ""; }
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
}
 
$valid_formats = array("jpg", "png", "gif", "bmp", "jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
    $uploaddir = "uploads/"; 
    foreach ($_FILES['photos']['name'] as $name => $value) {
        $filename = stripslashes($_FILES['photos']['name'][$name]);
        $size = filesize($_FILES['photos']['tmp_name'][$name]);
        $ext = getExtension($filename);
        $ext = strtolower($ext);
        
        if(in_array($ext, $valid_formats)) {
            if($size < (MAX_SIZE*1024)){
                $image_name = time().$filename;
               $_SESSION['test'][]=$image_name;
                $test = $_SESSION['test'];
                echo "<img src='".$uploaddir.$image_name."' class='imgList'>";
                $newname = $uploaddir . $image_name;
 
                if(move_uploaded_file($_FILES['photos']['tmp_name'][$name], $newname)) {
                    $time = time();
                    mysqli_query($dbh, "INSERT INTO user_uploads(image_name, user_id_fk, created) VALUES('{$image_name}', '{$session_id}', '{$time}')");
                } else {
                    echo '<span class="imgList">Недостаточно памяти для сохранения!</span>';
                }
 
            } else {
                echo '<span class="imgList">Ошибка! Файл слишком велик!</span>';
            }
 
        } else { 
            echo '<span class="imgList">Данный формат запрещен!</span>';
        }
    }
}
 
?>
хотя предпросмотр есть но с загрузкой в папку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2017, 07:07
Помогаю со студенческими работами здесь

на структуры. Как определить сдавших сессию на 4 и 5 по ФИО и оценки по 4 предметам за последнюю сессию?
:scratch:

Несколько страниц записей
Как сделать несколько страниц записей? Сейчас страница записей только одна FIFA Как сделать еще парочку?

Удалить несколько записей
Добрый вечер. Есть ХП в которой осуществляется удаление, для этого передаю строчку id-ков разделенных запятой и как их можно...

Несколько записей из таблицы
Будет БД для юридической конторы Есть таблицы /дела/ есть таблицы /исцы/ таблицы /отвечики/ Вопрос Как сделать чтобы...

Подтянуть несколько записей
Доброе утро, подскажите как можно подтянуть несколько записей за один раз в форме? В примере нажав на главной форме новый заполнив...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru