Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 537
1

Сообщения + прикрепление файлов

18.09.2013, 20:28. Просмотров 1340. Ответов 1
Метки нет (Все метки)

Имеется личный кабинет, при заходу на чужую страничку можно отправить сообщение. Собственно как сделать, чтобы при отправке сообщения можно было бы прикрепить файлик?
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
<?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>
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>
 
 
<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
{
//если страничка чужая, то выводим только некjторые данные и форму для отправки личных сообщений
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>
post.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
<?php
session_start(); //запускаем сессию. Обязательно в начале страницы
include ("bd.php"); // соединяемся с базой, укажите свой путь, если у вас уже есть соединение
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'",$db); 
$myrow2 = mysql_fetch_array($result2); 
if (empty($myrow2['id']))
{
//если логин или пароль не действителен
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}
else {
//Проверяем, зарегистрирован ли вошедший
//exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
if (isset($_POST['id'])) { $id = $_POST['id'];}//получаем идентификатор страницы получателя
if (isset($_POST['text'])) { $text = $_POST['text'];}//получаем текст сообщения 
if (isset($_POST['poluchatel'])) { $poluchatel = $_POST['poluchatel'];}//логин получателя 
$author = $_SESSION['login'];//логин автора 
$date = date("Y-m-d");//дата добавления 
if (empty($author) or empty($text) or empty($poluchatel) or empty($date)) {//есть ли все необходимые данные? Если нет, то останавливаем
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля");}
$text = stripslashes($text);//удаляем обратные слеши
$text = htmlspecialchars($text);//преобразование спецсимволов в их HTML эквиваленты
$result2 = mysql_query("INSERT INTO messages (author, poluchatel, date, text) VALUES ('$author','$poluchatel','$date','$text')",$db);//заносим в базу сообщение 
echo "
<html>
<head>
<meta http-equiv='Refresh' content='5; URL=page.php?id=".$id."'>
</head>
<body>Ваше сообщение передано! Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='page.php?id=".$id."'>нажмите сюда.</a>
</body>
</html>";//перенаправляем пользователя
}
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2013, 20:28
Ответы с готовыми решениями:

Форма с прикрепление файлов
Помогите разобраться с прикреплением файлов. Пыталась найти ответ в интернете, но толком ничего не...

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

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

прикрепление файла
есть форма &lt;?php Error_Reporting(E_ALL &amp; ~E_NOTICE); if($titlepage == &quot;&quot;) $titlepage = ...

1
16 / 16 / 3
Регистрация: 01.11.2012
Сообщений: 55
18.09.2013, 20:57 2
HTML5
1
<input type="file" name="file">
А дальше работай с глобальным массивом
PHP
1
$_FILES['file']
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2013, 20:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

В файле mail.tpl не выводится заголовок сообщения {$subject} и текст сообщения {$message}
ребят помогите разобраться, изначально у меня все выводилось через функцию popupWindow вот сама...

Личные сообщения | Все сообщения одному человеку | Сессии
Подскажите пожалуйста, у меня проблема. Пишу код личных сообщений, все хорошо, но я не могу понять...

Прикрепление файла к письму
Всем привет) первый раз довелось встретиться с прикреплением файла к письму в PHP, не могу сделать(...

Форма обратной связи (прикрепление фото)
Доброго времени суток, есть форма обратной связи. Нужно сделать так чтоб я мог прикреплять...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.