[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с галереей
grant
Вообще есть проблема. Дело в том, что на форме загрузки изображений, можно загружать не только 1 файл, а сразу несколько через SWFUpload. Фотографии пачками грузятся на сервак, всё нормально. Но дело в том, что мне их ещё надо прицепить к пользователю и добавить всё это в таблицу.

Т.е. как можно получить идентификатор пользователя?



Спустя 9 минут, 46 секунд (14.05.2011 - 12:49) Anuarbek написал(а):
Вообще, есть много вариантов это реализовать. У тебя есть структура БД, исходники или что нибудь, что поможет глубже понять суть дела.

Я лично понял что загружая картинки, ты хочешь чтобы они "привязывались" к определённому пользователю, который их собственно загружает. Верно?


Спустя 1 минута, 21 секунда (14.05.2011 - 12:50) grant написал(а):
Да, именно.

Спустя 4 минуты, 30 секунд (14.05.2011 - 12:55) grant написал(а):
Вот примерная картина http://pixs.ru/showimage/Bezimyanni_4176329_2191584.jpg

Надо чтобы когда документ загрузился, сразу ссылку положить в БД и ид пользователя, который загрузил.
Легко бы сделал через $_SESSION['user_id'], но проблема в том, что ведь это всё не посылается на сервер, т.е. массив сессии скрипт вообще не видет.

Спустя 31 минута, 56 секунд (14.05.2011 - 13:27) Anuarbek написал(а):
Самый простой выход из ситуации, создать или изменить имеющуюся таблицу `пользователей` и `изображений`.

На мой взгляд, простейший способ - при авторизации пользователя, установи сессию с его ID, уверен что он пригодится не только в решении данного вопроса. Например:

$userID = $_SESSION['userID'];


Представим что у нас они(таблицы) уже есть и имеют такую структуру:

-----------+
users |
-----------+
ID | Name |
-----------+

и

---------------------+
img |
---------------------+
ID | Path | userID |
---------------------+


Также, представим что в {$conn} у тя лежит соединение с БД.


/**
* Lets imagine that we have a Database connection in a {$conn} variable
* and we set the session when user auth, example:
* $userID = $_SESSION['userID'];
*/


function insImgToDb() { //function, modify it to yourself!
$sql = mysql_query("INSERT INTO `img` VALUES(NULL, '$img_path', '$userID')");

// continue your script ...
}


Не забудь для users.ID и img.ID указать автоинкремент и уникальный ключ.
Теперь чтобы получить изображения определённого пользователя, необходимо просто сделать запрос в БД:

$sql = "SELECT * FROM `img` WHERE `userID` = '$id'";

Спустя 20 часов, 49 минут, 45 секунд (15.05.2011 - 10:17) Эли4ка написал(а):
а как узнать ид юзера?никак верно..хотя можно ,но лучше делать привязку через IP

например IP 1.2.3.4 загрузил такие и такие фотки..я думаю так лучше..

Спустя 9 минут, 52 секунды (15.05.2011 - 10:26) Anuarbek написал(а):
Узнать ИД юзера, через базу, простой запрос в одну строчку. В дальнейшем для расширения сайта, очень удобно будет иметь печеньки с ИД пользователя.

Через ИП? У пользователя ИП диманический, он постоянно меняется при подключении, ему ИП выдаётся провайдером. И тогда получится "каша", представь, я захожу с ИП -95.58.102.346, загружаю 4 картинки и покидаю сайт, вырубаю NET. Вечером снова захожу на сайт, но ИП у меня уже 95.42.239.107 и всё это будет заноситься в БД. То есть если выполнить запрос,


$sql = "SELECT * FROM `img` WHERE `userIP` = '$IP'";


выберутся не все мои загруженные картинки. И зачем всё это делать, когда есть готовая таблица юзеров, со всей нужной информацией, лучше уж с ней работать.

Спустя 1 час, 26 минут, 20 секунд (15.05.2011 - 11:53) grant написал(а):
Ребят, проблема не в этом smile.gif
Дело в том, что FLASH не знает что такое сессия. Там надо специально делать подмену сессии как-то. SWFUpload как раз ярый представитель флэша.

Но чем он хорошо? Можно выбирать сразу несколько файлов в 1 окне !

Спустя 2 часа, 16 минут, 26 секунд (15.05.2011 - 14:09) Эли4ка написал(а):
Anuarbek
убедили..а я про динамические IP как-то и не подумала..

Спустя 1 час, 56 минут, 2 секунды (15.05.2011 - 16:05) Anuarbek написал(а):
Но чем он хорошо? Можно выбирать сразу несколько файлов в 1 окне !

Опа, если ты используешь SWFUpload потому что можно загрузить несколько файлов .. так ведь можно и через простую форму отправить несколько файлов!

someFile.html

<form method="POST" action="Test.php" enctype="multipart/form-data">
<input
type="file" name="img[]" /><br />
<input
type="file" name="img[]" /><br />
<input
type="file" name="img[]" /><br />

<input
type="submit" value="Send Images" />
</form>



Test.php

/**
* This is simple example of how you can handle and process the submited form
*
*/

echo $_FILES['img']['name'][0] . "<br />";
echo $_FILES['img']['name'][1] . "<br />";
echo $_FILES['img']['name'][2] . "<br />";


Спустя 1 час, 56 минут, 46 секунд (15.05.2011 - 18:02) grant написал(а):
Anuarbek ты вконтакте есть? Попробуй фотки добавить. Ты в 1 окне выбираешь 10 файлов к примеру сразу и они грузятся на сервер.
Как ты сделал написать можно конечно, но придется 10 раз выбирать файл на компе.

Спустя 5 минут, 19 секунд (15.05.2011 - 18:07) sharki написал(а):
grant
Вообще кто будет загружать ти фотки? Пользователь форума, который УЖЕ авторизован, если он авторизован, значит есть его сессия с его ID как правило, вот и грузи изображения пачками, и добавляй в бд, создавай папки с именем его ID. Не понимаю в чем проблема.

Если не авторизован и т.п, так заставить авторизоваться, если это нереально сделать то что это такой за сервис?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.