|
 12.2 Кб |
|
| имеется блок в котором любой пользователь может написать сообщение модератору ,скорее всего на мыло или сообщение сохраняется в отдельном файле. Для наглядности откройте и посмотрите файлик.
как это реализовать?
какие функции необходимо учесть?? | |
|
|
|
|
|
|
|
для: atew
(04.02.2011 в 11:03)
| | Хм... не очень понятно, что вызывает затруднения? | |
|
|
|
|
|
|
|
для: cheops
(04.02.2011 в 11:09)
| | как создать файл, в который будут заносится сообщения и сохранятся | |
|
|
|
|
|
|
|
для: atew
(04.02.2011 в 11:31)
| | А вы где планируете сохранять сообщения? В базе данных? В файле? | |
|
|
|
|
|
|
|
для: cheops
(04.02.2011 в 11:35)
| | хотелось бы в файле! | |
|
|
|
|
|
|
|
для: atew
(04.02.2011 в 12:01)
| | (1) С одним файлом могут быть сложности, при одновременном обращении к нему нескольких посетителей. Чтобы не оказаться однажды с побитым файлом, придется вводить блокировки при помощи функции flock() перед записью при помощи функции fwrite().
(2) Есть еще один распространненый вариант, позволяющий избежать этих сложностей - записывать каждую запись в отдельный файл какой-либо директории. При этом в имя файла вводить текущее время, получаемое функцией time(), чтобы они автоматически сортировались по времени.
PS Кроме того, чтобы чтение файлов не было доступным из браузера кому попало доступ к файлу (или директории) необходимо закрыть при помощи конфигурационного файла .htaccess. Почитать о нем подробнее можно в статье http://softtime.ru/article/index.php?id_article=25. | |
|
|
|
|
|
|
|
для: cheops
(04.02.2011 в 12:08)
| | Во втором случаи также можно нарваться на неприятности, когда два обращения происходят одновременно.
Помню, завязал какую-то генерацию имен в обработчике на время, а потом не досчитался пары тысяч файлов - они тупо перезаписывались.
Так что все равно стоит использовать функцию file_exists() | |
|
|
|
|
|
|
|
для: neadekvat
(04.02.2011 в 17:09)
| | Так вы не именуйте их только по времени. | |
|
|
|
|
|
|
|
для: neadekvat
(04.02.2011 в 17:09)
| | Собственно, можно воспользоваться функцией tempnam(), которая позволяет для заданной директории создать уникальное имя, в качестве второго параметра функция принимает произвольный префикс (туда можно поместить время). | |
|
|
|
|
|
|
|
для: cheops
(04.02.2011 в 17:31)
| | Если автор упомянул почту, то зачем их вообще сохранять, выгоднее отправлять на мыло. | |
|
|
|
|
|
|
|
для: sim5
(04.02.2011 в 17:32)
| | Для разрбора полетов полезно все-таки куда-то архивировать запросы... думаю, лишним не будет. | |
|
|
|
|
|
|
|
для: cheops
(04.02.2011 в 17:33)
| | Вот пусть модератор и хранит почту свою - как наказание :) | |
|
|
|
|
|
|
|
для: sim5
(04.02.2011 в 17:32)
| | >Если автор упомянул почту, то зачем их вообще сохранять, выгоднее отправлять на мыло.
Мне интересно будет услышать и эту версию. Мне кажется что с почтой будет сложнее... | |
|
|
|
|
|
|
|
для: atew
(04.02.2011 в 17:57)
| | А что тут сложного? Просто вместо записи сообщения в файл, формируете почтовое отправление и отправляете его на почту по указанному адресу. | |
|
|
|
|
|
|
|
для: atew
(04.02.2011 в 17:57)
| | Да, нет, с почтой пожалуй даже попроще, в PHP имеется стандартная функция mail(), которая позволяет сформировать и отправить письмо. | |
|
|
|