Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557

Загрузка файлов на сервер в папку с номером группы пользователя

28.12.2013, 12:05. Показов 1677. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Файлы через личный кабинет пользователя загружаются пока в папку upload. Как можно сделать, что бы если у пользователя группа 178 (к примеру), то соответственно загружались файлы в папку upload/178?
Код личного кабинета page.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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();
?>
<?php include("blocks/header.php")?>
<?php
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
 
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id, type_users FROM users WHERE login='$login' AND password='$password'",$db); 
$myrow2 = mysql_fetch_array($result2); 
if (empty($myrow2['id']))
   {
   //Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
    exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
   }
}
else {
//Проверяем, зарегистрирован ли вошедший
 
// exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
 }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db); 
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
 
if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
 
?>
<html>
<head>
<title>Личный кабинет</title>
</head>
<body>
<h2>Пользователь "<?php echo $myrow['login']; echo ' - '; echo $myrow['type_users']?>"</h2>
<h2>Меню</h2>
 
<?php
print <<<HERE
<a href='index.php'>Главная страница</a><br>
<a href=page.php?id=$_SESSION[id]>Личный кабинет</a><br>
<a href='all_users.php'>Список пользователей</a><br><br>
<a href='logout.php'>Выход</a><br><br>
HERE;
 
if ($_SESSION['id'] == $id) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения
 
print <<<HERE
<h3>Редактировать профиль:</h3>
<form action='update_user.php' method='post'>
Ваш логин <strong>$_SESSION[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
 
<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
 
<!-- <form action='update_user.php' method='post' enctype='multipart/form-data'> -->
<!-- Ваш аватар:<br> -->
<!-- <img alt='аватар' scr='$myrow2[avatar]'><br><br> -->
<!-- Изображение должно быть формата jpg, gif или png.<br>Изменить аватар:<br> -->
<!-- <input type='FILE' name="fupload"><br> -->
<!-- <input type='submit' name='submit' value='изменить'><br><br> -->
 
    <form method='post' action='comment.php' enctype ='multipart/form-data'>
    Файл: <input type='file' name='filename' size='9'/> <br>
    <input type='submit' value='Загрузить на сервер'/>
    </form><br>
 
 
<h2>Личные сообщения:</h2>
 
HERE;
 
$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$_SESSION[login]' ORDER BY id DESC",$db); 
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху
 
if (isset($messages['id'])) {
do //выводим все сообщения в цикле
  {
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);
 
if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}
 
  printf("
  <table>
  <tr>
  <td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>
  
  <td>Автор: <a href='page.php?id=%s'>%s</a><br>
      Дата: %s<br>
     Сообщение: %s<br>
    <a href='drop_post.php?id=%s'>Удалить</a>
  
  </td>  
  </tr>
  </table><br>
  ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
  //выводим само сообщение
  }
  while ($messages = mysql_fetch_array($tmp));
 
                    }
               else {
               //если сообщений не найдено
               echo "Сообщений нет";
               }
               
}
 
else
{
//если страничка чужая, то выводим только некоторые данные и форму для отправки личных сообщений
print <<<HERE
<img alt='аватар' src='$myrow[avatar]'><br>
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение этому пользователю:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='$myrow[login]'>
<input type='hidden' name='id' value='$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>
</form>
HERE;
}
 
?>
<?php include("blocks/footer.php");?>
</body>
</html>
comment.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
27
28
29
30
31
32
33
34
35
36
<?php
@session_start();
 
  /* Принимаем данные из формы */
  $name = $_SESSION["login"];
 
  $page_id = $_POST["page_id"];
 
  $text_comment = $_POST["text_comment"];
 
  $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
  $text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
 
  $mysqli = new mysqli("нельзя показывать");// Подключается к базе данных
 
  $mysqli->query("SET CHARACTER_SET_client='cp1251'");
  $mysqli->query("SET CHARACTER_SET_results='cp1251'");
  $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
  $mysqli->query("INSERT INTO `comments` (`name`, `page_id`, `text_comment`, `date`) VALUES ('$name', '$page_id', '$text_comment', UNIX_TIMESTAMP())");// Добавляем комментарий в таблицу
 @ header("Location: ".$_SERVER["HTTP_REFERER"]);// Делаем реридект обратно
?>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
 
<?php
 if(@copy($_FILES["filename"]["tmp_name"],"upload/".$_FILES["filename"]["name"])) 
  echo("Файл успешно загружен <br> <a href='index.php'> Вернуться назад</a>");
 else
  echo("Ошибка загрузки файла <br> <a href='index.php'> Вернуться назад</a>");
?>
 
</html>
upload.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Результат загрузки файла</title>
</head>
<body>
 
 
<?php include("blocks/header.php"); ?>
 
<?php
if(@copy($_FILES["filename"]["tmp_name"],"upload/".$_FILES["filename"]["name"])) 
echo("Файл успешно загружен <br> <a href='index.php'> Вернуться назад</a>");
else echo("Ошибка загрузки файла <br> <a href='index.php'> Вернуться назад</a>");
?>
 
<?php include("blocks/footer.php"); ?>
 
</body>
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2013, 12:05
Ответы с готовыми решениями:

Загрузка изображений на сервер в папку
Интересует такой вопрос. Есть ли готовые скрипты, с помощью которых происходит загрузка на сервак + выдает ссылку на заруженный файл, ну...

Загрузка файла на сервер в указанную пользователем папку
проблема в следующем: хочу чтобы пользователь сам записывал файл в выбранную им же папку. если папки нет то он создает ее и туда...

Загрузка файлов папку
Хочу организовать загрузку изображений в папку /resources/img, а в БД записывать имена( что бы не грузить картинки в БД и не раздувать её)....

2
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
28.12.2013, 14:36
Вам нужно добавить изменить строку:
PHP
1
if(@copy($_FILES["filename"]["tmp_name"],"upload/".$_FILES["filename"]["name"]))
на
PHP
1
if(@copy($_FILES["filename"]["tmp_name"],"upload/".$_SESSION["usergroup"]."/".$_FILES["filename"]["name"]))
Соттветственно в $_SESSION['usergroup'] должен находиться номер группы, который нужно устанавливать тогда же, когда вы устанваливаете $_SESSION['login']
1
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
28.12.2013, 15:05  [ТС]
Цитата Сообщение от fic Посмотреть сообщение
Сответственно в $_SESSION['usergroup'] должен находиться номер группы, который нужно устанавливать тогда же, когда вы устанваливаете $_SESSION['login']
$_SESSION['usergroup'] устанавливается тогда же, когда и $_SESSION['login']. НО так не помогло, все так же грузится в папку upload

Добавлено через 6 минут
Пардон, забыл поменять во втором файле. Все работает. Благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2013, 15:05
Помогаю со студенческими работами здесь

Загрузка файлов в папку
Ребята, подскажите где ошибка. Мне нужно из списка выбрать папку и именной в нее закачать файл! &lt;?php $arr = glob('./mp3/*'); ...

Загрузка изображения на сервер в папку и добавление в бд имя файла
Здравствуйте. Имеется форма добавления изображения при загрузке загружаемое изображение идёт в папку после чего заносится имя файла в...

Загрузка файлов в папку с Joomla
Доброго времени суток. Вот такая проблема: Работает как модуль есть форма загрузки и файл которые это обробляет. Форма загрузки в...

Загрузка прикрепляемых файлов в папку на диске
Здравствуйте форумчане. Помогите разобраться. Ситуация следующая. В самописной БД создал механизм прикрепления файлов к...

Загрузка файлов пользователем в определённую папку
Создаю приложение, которое позволяет пользователям загружать файлы на мой сервер по протоколу sftp. Для этого нужно на сервере создать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подключение 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