Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сообщение на "мыло" при появлении новой записи в БД

Сообщения:  [1-10] 

 
 автор: Ramzero   (09.07.2007 в 17:10)   письмо автору
 
   для: Ramzero   (07.07.2007 в 16:28)
 

ВСЕМ СПАСИБО, СПРАВИЛСЯ !!!!!!!!!!!!!!!

   
 
 автор: Ramzero   (09.07.2007 в 16:41)   письмо автору
 
   для: Борис   (07.07.2007 в 17:13)
 

Борис, вставив предложенную Вами запись в скрипт, отмечаю, что ровным счетом ничего не присходит...
Что-то не так? Не подскажете, в чем поблема?

<?php
// Устанавливаем соединение с базой данных
require_once ("../../admin/config.php");
// Проверим достаточно ли информации для занесения в базу данных
// нового каталога
// Определяем скрыт каталог (hide) или доступен (show)
if($_POST['hide'] == "on") $showhide = "show";
else $showhide = "hide";

// Если во временном каталоге имеется соответствующий полю image
// файл, копируем его из временного каталога в каталог /files
if (!empty($_FILES['image']['tmp_name']))
{
// Определяем расширение файла
$ext = strrchr($_FILES['image']['name'], ".");
// Формируем путь к файлу
$image = "files/".date("YmdHis",time())."$ext";
$smallimage = "files/".date("YmdHis",time())."_s$ext";
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "../".$image))
{
// Уничтожаем файл во временной директории
unlink($_FILES['image']['tmp_name']);
// Изменяем права доступа к файлу
chmod("../".$image, 0644);
}
}
else links($_POST['id_catalog'], "Фотография не передана на сервер");

// Заменяем одинарные кавычки обратными
$_POST['a'] = str_replace("'","`",$_POST['a']);
$_POST['b'] = str_replace("'","`",$_POST['b']);
$_POST['c'] = str_replace("'","`",$_POST['c']);
$_POST['d'] = str_replace("'","`",$_POST['d']);
$_POST['e'] = str_replace("'","`",$_POST['e']);
$_POST['pos'] = str_replace("'","`",$_POST['pos']);
// Формируем и выполняем SQL-запрос на добавление нового каталога
$query = "INSERT INTO cott VALUES (NULL,
'".$_POST['a']."',
'".$_POST['b']."',
'".$_POST['c']."',
'".$_POST['d']."',
'".$_POST['e']."',
'".$_POST['post']."',
'".$_POST['date_year']."-".$_POST['date_month']."-".$_POST['date_day']." ".sprintf("%02d",$_POST['date_hour']).":".sprintf("%02d",$_POST['date_minute']).":00',
'$image',
'".$_POST['pos']."',
'$showhide',
".$_POST['id_parent'].")";


if ($result)

{
$mailto="post@mail.ru";
$message="This is messgage";
$subject="novaja zapis";
mail($mailto, $subject, $message);
}

if(mysql_query($query))
{
// Автоматически осуществляем переход на главную страницу
// администрирования
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD>";

} else links($_POST['id_catalog'], "Ошибка<br> $query");
// Функция вывода предупреждения и ссылок возврата
function links($id_catalog, $msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>
Вернуться к правке новости</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog>
Администрирование новостей</a></p>";
exit();
}
?>

   
 
 автор: Ramzero   (09.07.2007 в 16:25)   письмо автору
 
   для: Trianon   (09.07.2007 в 02:21)
 

Гравицапа хорошая, но куда ее пристроить? :))) Я не конструктор летающих тарелок, я слишком "земное" существо. Скрипт хорош, отправляет сообщения с вложениями, очень мило, но как сие привязать к моему скрипту?

   
 
 автор: Trianon   (09.07.2007 в 02:21)   письмо автору
 
   для: Ramzero   (08.07.2007 в 19:12)
 

пример отправки сообщения с файлом Вы можете найти в
http://softtime.ru/scripts/mailattach.php

   
 
 автор: Ramzero   (08.07.2007 в 19:12)   письмо автору
 
   для: Trianon   (07.07.2007 в 19:11)
 

Небольшое пояснение: Уведомление о новой записи в БД должен получать администратор сайта, а не посетитель, производивший запись. На почту я хочу транслировать любое событие, произошедшее в базе данных.
От идеи с триггерами, я понял, можно смело отказаться. В таком случае привожу здесь скрипт, который производит запись:


<?php
// Устанавливаем соединение с базой данных
require_once ("../../admin/config.php");
// Определяем скрыт каталог (hide) или доступен (show)
if($_POST['hide'] == "on") $showhide = "show";
else $showhide = "hide";

// Если во временном каталоге имеется соответствующий полю image
// файл, копируем его из временного каталога в каталог /files
if (!empty($_FILES['image']['tmp_name']))
{
// Определяем расширение файла
$ext = strrchr($_FILES['image']['name'], ".");
// Формируем путь к файлу
$image = "files/".date("YmdHis",time())."$ext";
$smallimage = "files/".date("YmdHis",time())."_s$ext";
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "../".$image))
{
// Уничтожаем файл во временной директории
unlink($_FILES['image']['tmp_name']);
// Изменяем права доступа к файлу
chmod("../".$image, 0644);
}
}
else links($_POST['id_catalog'], "Фотография не передана на сервер");

// Заменяем одинарные кавычки обратными
$_POST['a'] = str_replace("'","`",$_POST['a']);
$_POST['b'] = str_replace("'","`",$_POST['b']);
$_POST['c'] = str_replace("'","`",$_POST['c']);
$_POST['d'] = str_replace("'","`",$_POST['d']);
$_POST['e'] = str_replace("'","`",$_POST['e']);
$_POST['pos'] = str_replace("'","`",$_POST['pos']);
// Формируем и выполняем SQL-запрос на добавление нового каталога
$query = "INSERT INTO any VALUES (NULL,
'".$_POST['a']."',
'".$_POST['b']."',
'".$_POST['c']."',
'".$_POST['d']."',
'".$_POST['e']."',
'".$_POST['date_year']."-".$_POST['date_month']."-".$_POST['date_day']." ".sprintf("%02d",$_POST['date_hour']).":".sprintf("%02d",$_POST['date_minute']).":00',
'$image',
'".$_POST['pos']."',
'$showhide',
".$_POST['id_parent'].")";
if(mysql_query($query))
{
// Автоматически осуществляем переход на главную страницу
// администрирования
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_parent']."'>
</HEAD>";

} else links($_POST['id_catalog'], "Ошибка<br> $query");
// Функция вывода предупреждения и ссылок возврата
function links($id_catalog, $msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>
Вернуться к правке новости</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog>
Администрирование новостей</a></p>";
exit();
}
?>
Спасибо за участие.

   
 
 автор: Trianon   (07.07.2007 в 19:11)   письмо автору
 
   для: Ramzero   (07.07.2007 в 17:52)
 

>Ну, скажем так, что мы дали абсолютную свободу посетителям сайта и они могут размещать информацию где им заблагорассудится.

Но даже в этом случае
а) размещение информации обычно выполняется посредством очень небольшого количества скриптов
б) совсем не факт, что если один посетитель хочет уведомления о пополнении любого (или какого-то одного) контента, то другой хочет то же самое.

Поэтому идею с триггерами Вам лучше рассматривать лишь как идею.

Есть и другие трудности (даже если обойтись без триггеров) .
Подписка посетителей на рассылку уведомлений должна быть достаточно гибкой, посетителям длжна быть предоставлена возможность получать лишь те уведомления в которых они нуждаются, и возможность отключить поток писем по первому требованию.
В противном случае очень легко оказаться в положении спаммера.
Вообще без организации процесса подписки рассылать никакие сообщения (кроме как в свой адрес) недопустимо по той же причине. Так что изменением одного скрипта дело не ограничится.

Если Вы не ощущаете в себе достаточного опыта и ответственности - лучше за это дело сами не беритесь, а поручите работу специалисту. Если опасность оказаться спаммером Вас не беспокоит... что ж , можете попробовать.

>Но процесс хотелось бы держать под контролем... Запись действительно происходит посредством скрипта, но все же в базу данных и, мне кажется отследить изменения в БД - это самое простое решение...

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

>А что касается триггеров, то слово это я знаю всего каких-нибудь час-два:))) Если Вас не затруднит, объясните пожалуйста, как я могу использовать его.
Триггер - хранимая процедура SQL, реагирующая на добавление / изменение / удаление записей в таблице. Вчастности она может формировать другую таблицу, но не сама отправлять письма. Письма отправлять все равно должен скрипт. Вероятно - запускаемый по cron.

>Что касается скрипта, то я использую любезно предоставленную хозяевами форума систему публикации новостей. Если Вы подскажете, какие изменения я могу внести в файл addcat.php, чтобы при записи в БД мне приходило уведомление, я буду Вам очень признателен.

Она есть в разделах загрузки? Ссылку приведите пожалуйста.
Чтобы было понятно, о какой системе идет речь.


>И еще небольшая просьба, я в сей области дилетант и если Ваши рекомендации окажутся чуть более развернутыми, я смогу должным образом воспользоваться Вашим советом:)

Определитесь для начала, какие именно события Вы бы хотели транслировать на почту и каким именно посетителям.

   
 
 автор: Ramzero   (07.07.2007 в 17:52)   письмо автору
 
   для: Trianon   (07.07.2007 в 17:43)
 

Ну, скажем так, что мы дали абсолютную свободу посетителям сайта и они могут размещать информацию где им заблагорассудится. Но процесс хотелось бы держать под контролем... Запись действительно происходит посредством скрипта, но все же в базу данных и, мне кажется отследить изменения в БД - это самое простое решение...
А что касается триггеров, то слово это я знаю всего каких-нибудь час-два:))) Если Вас не затруднит, объясните пожалуйста, как я могу использовать его.
Что касается скрипта, то я использую любезно предоставленную хозяевами форума систему публикации новостей. Если Вы подскажете, какие изменения я могу внести в файл addcat.php, чтобы при записи в БД мне приходило уведомление, я буду Вам очень признателен.
И еще небольшая просьба, я в сей области дилетант и если Ваши рекомендации окажутся чуть более развернутыми, я смогу должным образом воспользоваться Вашим советом:)
Заранее благодарю.

   
 
 автор: Trianon   (07.07.2007 в 17:43)   письмо автору
 
   для: Ramzero   (07.07.2007 в 16:28)
 

а в БД что - записи спонтанно возникают?
Тогда нужно применять триггеры, и вероятно, cron

А если записи кладет Ваш собственный скрипт - при чем тут БД?

   
 
 автор: Борис   (07.07.2007 в 17:13)   письмо автору
 
   для: Ramzero   (07.07.2007 в 16:28)
 

$query="insert into table_name ('pole_1', 'pole_2', 'pole_3') values ('$pole_1', '$pole_2', '$pole_3');";
$result=mysql_query($query);

if ($result)

{
$mailto="name@name.com";
$message="This is messgage";
$subject="novaja zapis";
mail($mailto, $subject, $message);
}

   
 
 автор: Ramzero   (07.07.2007 в 16:28)   письмо автору
 
 

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

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования