Простая база данных на PHP и MySQL
Сделал на PHP для себя простенькую базу событий с напоминалкой о них на e-mail. Вполне сойдет как пример для работы в PHP с базой данных.
В качестве базы данных конечно MySQL.
Таблички можно создать вручную через phpMyAdmin, как описано в примере создания опроса на PHP здесь https://ds-release.ru/kak-sdelat-formu-dlya-oprosa-na-php/, но здесь таблички я буду создавать с помощью запросов.
Файл для создания таблиц create.php (его запускаем 1 раз, потом удаляем после создания таблиц).
<? /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "CREATE TABLE count (nn int(20))"; $res = mysql_query($query); $query = "INSERT INTO count VALUES('0')"; $res = mysql_query($query); $query = "CREATE TABLE count1 (nn int(20))"; $res = mysql_query($query); $query = "INSERT INTO count1 VALUES('0')"; $res = mysql_query($query); $query = "CREATE TABLE usvers (nn int(20), name VARCHAR(240), adres VARCHAR(240))"; $res = mysql_query($query); $query = "CREATE TABLE sobbit (nn int(20), usver VARCHAR(240), sobit VARCHAR(240), opsobit text(64000), kogda DATETIME)"; $res = mysql_query($query); /* Закрыть соединение */ mysql_close(); ?>
Форма регистрации пользователя add.php
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <P> <center> <TABLE WIDTH = 400><TR><TD align = right> <FORM ACTION="add1.php" METHOD="POST"> E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240"> <P> Пароль:<BR> <INPUT TYPE="text" NAME="adres" SIZE="30" MAXLENGTH="240"> <P> <INPUT TYPE="submit" VALUE="Добавить"> </FORM> </TD></TR></TABLE></CENTER> </center> </body> </html>
Заносим в базу логин и пароль add1.php
<? /* Этот скрипт получает переменные из add.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; /* Таблица MySQL, в которой хранятся данные */ $userstable = "count"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $query = "SELECT * FROM $userstable"; $res1 = mysql_query($query); while ($row = mysql_fetch_row($res1)) $nn=$row[0]+1; $query = "UPDATE $userstable SET nn=$nn"; mysql_query($query) or die(mysql_error()); /* Таблица MySQL, в которой хранятся данные */ $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); /* составить запрос для вставки информации о клиенте в таблицу */ $query = "INSERT INTO $userstable VALUES('$nn', '$name','$adres')"; /* Выполнить запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die(mysql_error()); echo "Информация о вас занесена в базу данных."; /* Закрыть соединение */ mysql_close(); ?> <a href="login.php" >Войти</a>
Зарегистрировались.
Теперь форма ввода логина и пароля login.php
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <P> <center> <TABLE WIDTH = 400><TR><TD align = right> <FORM ACTION="see.php" METHOD="POST"> E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240"> <P> Пароль:<BR> <INPUT TYPE="text" NAME="pass" SIZE="30" MAXLENGTH="240"> <P> <INPUT TYPE="submit" VALUE="Вход"> </FORM> </TD></TR></TABLE></CENTER> <a href="add.php">Регистрация</a> <P> <a href="forgot.php">Напомнить пароль</a> </center> </body> </html>
После правильного ввода логина и пароля отображаем список событий see.php
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <link rel="stylesheet" type="text/css" href="tcal.css" /> <script type="text/javascript" src="tcal.js"></script> </head> <body> <? /* Этот скрипт получает переменные из login.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $today = getdate(); $toddi = "$today[year]-$today[mon]-$today[mday]"; $toddi0 = "12:00"; $date = $_POST['date']; $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' "; $res = mysql_query($query) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $number1 = mysql_num_rows($res); if ($number1 == 0) { echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>"; } else { echo 'Записи пользователя '.$name."<BR><BR>"; /* Таблица MySQL, в которой хранятся данные */ $userstable = "sobbit"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE usver = '".$name."' "; $res = mysql_query($query) or die(mysql_error()); /*получаем строки из базы данных MySQL */ while ($row=mysql_fetch_array($res)) { echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda']; /*Рисуем табличку с данными и с кнопкой редактирования записей */ echo '<FORM ACTION="change.php" METHOD="POST">'; echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">'; echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>'; echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>'; echo "<BR>"; } /*Рисуем форму для ввода нового события */ echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>'; echo 'Описание события:<BR> <textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea><P>Когда произойдет:<BR>'; echo '<input type="text" name="akogda1" class="tcal" value="" SIZE="20" MAXLENGTH="19"><P>'; echo '<INPUT TYPE="text" NAME="akogda2" VALUE="'.$toddi0.'" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>'; } /* Закрыть соединение */ mysql_close(); ?> </center> </body> </html>
Под табличкой событий форма для ввода нового события и кнопка Добавить, при нажатии на нее открывается seeadd.php, событие добавляется и снова отображается табличка с новым событием и форма ввода. Чтобы все корректно заносилось, надо обратить внимание на формат даты и кодировку.
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <? /* Этот скрипт получает переменные из see.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $akogda=$akogda1.' '.$akogda2 $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' "; $res = mysql_query($query) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $number1 = mysql_num_rows($res); if ($number1 == 0) { echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>"; } else { /* Таблица MySQL, в которой хранятся данные */ $userstable = "count1"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $name = mysql_real_escape_string($name); $asobit = mysql_real_escape_string($asobit); $aopsobit = mysql_real_escape_string($aopsobit); $akogda = mysql_real_escape_string($akogda); $query = "SELECT * FROM $userstable"; $res1 = mysql_query($query); while ($row = mysql_fetch_row($res1)) $nn=$row[0]+1; $query = "UPDATE $userstable SET nn=$nn"; mysql_query($query) or die(mysql_error()); /* Таблица MySQL, в которой хранятся данные */ $userstable = "sobbit"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); /* составить запрос для вставки информации о событии в таблицу */ $query = "INSERT INTO $userstable VALUES('$nn', '$name','$asobit','$aopsobit','$akogda' )"; /* Выполнить запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die(mysql_error()); echo "Информация о событии занесена в базу данных."; ?> <P> <P> <? echo 'Записи пользователя '.$name."<BR><BR>"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE usver = '".$name."' "; $res = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($res)) { echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda']; echo '<FORM ACTION="change.php" METHOD="POST">'; echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">'; echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>'; echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>'; echo "<BR>"; } echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>'; echo 'Описание события:<BR> <textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea><P>Когда произойдет:<BR>'; echo '<INPUT TYPE="text" NAME="akogda" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>'; } /* Закрыть соединение */ mysql_close(); ?> </center> </body> </html>
В табличке у нас кнопка Изменить открывает change.php с формой изменения введенной ранее записи.
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <? /* Этот скрипт получает переменные из see.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' "; $res = mysql_query($query) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $number1 = mysql_num_rows($res); if ($number1 == 0) { echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>"; } else { echo '<FORM ACTION="seechange.php" METHOD="POST">'; echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$ann.'" SIZE="1" MAXLENGTH="240"><P>'; echo '<INPUT TYPE="text" NAME="asobit" VALUE="'.$asobit.'" SIZE="30" MAXLENGTH="240"><P>'; echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox">'.$aopsobit.'</textarea><P>'; echo '<INPUT TYPE="text" NAME="akogda" VALUE="'.$akogda.'" SIZE="20" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Сохранить!"></FORM>'; } /* Закрыть соединение */ mysql_close(); ?> </center> </body> </html>
Изменяем событие, и нажимаем Сохранить, после чего открывается seechange.php, новая информации о событии сохраняется.
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <? /* Этот скрипт получает переменные из change.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE name = '".$name."' and adres = '".$pass."' "; $res = mysql_query($query) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $number1 = mysql_num_rows($res); if ($number1 == 0) { echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>"; } else { /* Таблица MySQL, в которой хранятся данные */ /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $name = mysql_real_escape_string($name); $asobit = mysql_real_escape_string($asobit); $aopsobit = mysql_real_escape_string($aopsobit); $akogda = mysql_real_escape_string($akogda); /* Таблица MySQL, в которой хранятся данные */ $userstable = "sobbit"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); /* составить запрос для изменения информации в таблице */ $query = "UPDATE $userstable SET sobit='".$asobit."',opsobit='".$aopsobit."',kogda='".$akogda."' WHERE nn=$ann"; /* Выполнить запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die(mysql_error()); echo "Информация о событии изменена."; ?> <P> <P> <? echo 'Записи пользователя '.$name."<BR><BR>"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE usver = '".$name."' "; //$query = "SELECT * FROM $userstable"; $res = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($res)) { echo $row['sobit'].' '.$row['opsobit'].' '.$row['kogda']; echo '<FORM ACTION="change.php" METHOD="POST">'; echo '<INPUT TYPE="hidden" NAME="ann" VALUE="'.$row['nn'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="asobit" VALUE="'.$row['sobit'].'" SIZE="1" MAXLENGTH="240">'; echo '<textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox" hidden>'.$row['opsobit'].'</textarea>'; echo '<INPUT TYPE="hidden" NAME="akogda" VALUE="'.$row['kogda'].'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="1" MAXLENGTH="240">'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="1" MAXLENGTH="240"><INPUT TYPE="submit" VALUE="Изменить!"></FORM>'; echo "<BR>"; } echo '<P><center><TABLE WIDTH = 400><TR><TD align = right><FORM ACTION="seeadd.php" METHOD="POST">Событие:<BR> <INPUT TYPE="text" NAME="asobit" SIZE="30" MAXLENGTH="240"><P>'; echo 'Описание события:<BR><textarea cols="50" rows="10" name="aopsobit" id="contact_text" class="inputbox"></textarea>'; echo '<P>Когда произошло:<BR> <INPUT TYPE="text" NAME="akogda" SIZE="20" MAXLENGTH="19"><P><INPUT TYPE="hidden" NAME="name" VALUE="'.$name.'" SIZE="30" MAXLENGTH="240"><P>'; echo '<INPUT TYPE="hidden" NAME="pass" VALUE="'.$pass.'" SIZE="30" MAXLENGTH="240"><P><INPUT TYPE="submit" VALUE="Добавить!"></FORM></TD></TR></TABLE></CENTER>'; } /* Закрыть соединение */ mysql_close(); ?> </center> </body> </html>
Снова отображается табличка с измененным событием и форма ввода.
Файл prover.php, который ставится в cron, и по времени проверяет базу на предмет просроченного событий, если находит - высылает на e-mail пользователя напоминание.
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <? /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $today = getdate(); $toddi = "$today[year]-$today[mon]-$today[mday] $today[hours]:$today[minutes]:00"; /* Таблица MySQL, в которой хранятся данные */ $userstable = "sobbit"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable"; $res = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($res)) { if ($row['kogda'] < $toddi ) { $to = $row['usver']; $subject = $row['sobit']; $message = $row['opsobit']."<br />".$row['kogda']."<br />Внимание!<br /><i>Это письмо отправлено <b>роботом</b> и отвечать на него не нужно!</i>"; $headers = "From: ".$row['usver']."<".$row['usver'].">\r\nContent-type: text/html; charset=windows-1251 \r\n"; mail ($to, $subject, $message, $headers); } else { } } /* Закрыть соединение */ mysql_close(); ?> </center> </body> </html>
И напоследок, форма, которая высылает забытый пароль пользователю на e-mail.
Форма ввода логина для напоминания забытого пароля, , файл forgot.php.
<html> <head> <title>Напоминалка по событиям на PHP/title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <P> <center> <TABLE WIDTH = 400><TR><TD align = right> <FORM ACTION="forgot1.php" METHOD="POST"> E-mail:<BR> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="240"> <P> <INPUT TYPE="submit" VALUE="Выслать"> </FORM> </TD></TR></TABLE></CENTER> </center> </body> </html>
При нажатии на кнопку "Выслать" запускается файл forgot1.php, который высылает пароль на e-mail пользователя.
<html> <head> <title>Напоминалка по событиям на PHP</title> <meta https-equiv=”Content-Type” content=”text/html; charset=windows-1251?> <body> <? /* Этот скрипт получает переменные из forgot.php */ /* Переменные для соединения с базой данных */ $hostname = "localhost"; $username = "user"; $password = "password"; $dbName = "database"; $userstable = "usvers"; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); /* выбрать базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM $userstable WHERE name = '".$name."' "; $res = mysql_query($query) or die(mysql_error()); $name = mysql_real_escape_string($name); $adres = mysql_real_escape_string($adres); $number1 = mysql_num_rows($res); $row=mysql_fetch_array($res); if ($number1 == 0) { echo 'Пользователь '.$name." не найден либо пароль не верен!<BR><BR>"; } else { $to = $row['name']; $subject = 'Восстановление пароля для '.$row['name']; $message = 'Логин: '.$row['name']."<br /><b>Пароль: </b>".$row['adres']; $headers = "From: ".$row['name']."<".$row['name'].">\r\nContent-type: text/html; charset=windows-1251 \r\n"; mail ($to, $subject, $message, $headers); echo "Информация отправлена на указанный адрес."; } /* Закрыть соединение */ mysql_close(); ?> <a href="login.php" >Войти</a> </center> </body> </html>
В результате получается вот такая простая база данных по событиям с функцией уведомления о событиях на e-mail пользователя:
Дополнительно список событий можно оформить в виде таблички, еще можно добавить кнопку "Удалить" в таблицу для удаления строк, сделать возможность "закрывать" события, нажимая на ссылку сразу в письме с напоминанием, сделать какое-нибудь шифрование пароля, который передается через адресную строку.
А так можно представленные выше куски кода вставить в шаблоны страниц, чтобы красиво было, залить на сайт и будет он-лайн напоминалка о событиях на e-mail.
Скачать исходники можно по ссылке https://ds-release.ru/bazaphp.rar