'

Пример реализации приложения

Понравилась презентация – покажи это...





Слайд 0

Пример реализации приложения Программа отправки и анализа SMS-сообщений (через e-mail с WEB-интерфейсом.


Слайд 1

Состав программного комплекса Скрипт для создания серверной части(SQL) Интерфейс пользователя (HTML) Скрипт для отправки сообщений с занесением в базу данных(ASP) Скрипт для анализа сообщений и отправки предупреждений(ASP)


Слайд 2

Скрипт для создания серверной части(SQL) CREATE TABLE T_WORDS ( KEY varchar(50) NOT NULL ); INSERT INTO T_WORDS VALUES ('bomba'); INSERT INTO T_WORDS VALUES ('terror');


Слайд 3

T_USERS CREATE TABLE T_USERS ( N_ID_USER int NOT NULL PRIMARY KEY, C_EMAIL varchar(50) NOT NULL, C_TELEFON varchar(50) NOT NULL, N_COUNT_ERR int, CONSTRAINT CK_EMAIL CHECK (INSTR(C_EMAIL,'@') > 0 ) );


Слайд 4

T_SMS CREATE TABLE T_SMS ( N_ID_SMS int NOT NULL PRIMARY KEY, N_ID_USER int NOT NULL FOREIGN KEY referehces T_USERS(N_ID_USER), D_DATE_SMS date NOT NULL DEFAULT (TODATE()), C_ORIG_TELEFON varchar(50) NOT NULL, C_DEST_TELEFON varchar(50) NOT NULL, C_MESSAGE varchar(160) );


Слайд 5

Создание последовательностей CREATE SEQUENCE SEQ_USERS INCREMENT BY 1 START WITH 1 ; CREATE SEQUENCE SEQ_SMS INCREMENT BY 1 START WITH 1 ;


Слайд 6

Создание представления CREATE OR REPLACE VIEW BAD_USERS ( EMAIL, TELEFON, COUNT_SMS, COUNT_BAD ) AS SELECT C_EMAIL, C_TELEFON, COUNT(*), N_COUNT_ERR FROM T_USERS, T_SMS WHERE T_USERS.N_ID_USER = T_SMS.N_ID_USER AND N_COUNT_ERR > 0 GROUP BY C_EMAIL, C_TELEFON, N_COUNT_ERR HAVING COUNT(*) > 1;


Слайд 7

Функция вставки нового user (или изменения параметров старого) CREATE OR REPLACE FUNCTION INS_USER (EMAIL varchar2,TELEFON varchar2, SMS varchar2) RETURN int IS count_bad int; # кол-во плохих слов n_usr int; # номер юзера BEGIN


Слайд 8

Текст функции --Вычисляем наличие плохих слов в sms SELECT COUNT(*) into count_bad FROM T_WORDS WHERE INSTR(KEY,SMS)>0;


Слайд 9

Ищем этого юзера в базе -- В n_usr будет кол-во юзеров с таким мылом SELECT count(*) into n_usr FROM T_USERS WHERE C_EMAIL = EMAIL;


Слайд 10

Вставляем или обновляем информацию о юзере IF n_usr > 0 THEN UPDATE T_USERS SET N_COUNT_ERR = N_COUNT_ERR + count_bad WHERE C_EMAIL = EMAIL; -- Нет еще такого юзера в списке ELSE INSERT INTO T_USERS(N_ID_USER,C_EMAIL,C_TELEFON,N_COUNT_ERR) VALUES (SEQ_USERS.nextval, EMAIL, TELEFON, count_bad); END IF;


Слайд 11

Возвращаем номер юзера SELECT N_ID_USER into n_usr FROM T_USERS WHERE C_EMAIL = EMAIL; RETURN n_usr; END;


Слайд 12

Процедура вставки сообщения в базу CREATE OR REPLACE PROCEDURE NEW_SMS(EMAIL varchar2, TELEFON1 varchar2, TELEFON2 varchar2, SMS varchar2) IS n_usr int; BEGIN n_usr := INS_USER(email, telefon1, sms); INSERT INTO T_SMS(N_ID_SMS, N_ID_USER, C_ORIG_TELEFON,C_DEST_TELEFON, C_MESSAGE) VALUES (SEQ_SMS.nextval,n_usr,TELEFON1,TELEFON2, SMS); END;


Слайд 13

Интерфейс пользователя <HTML> <BODY> <h1>Отправка SMS-сообщений через почту</h1> <FORM ACTION="/scripts/sms.asp" METHOD="POST"> <P>Введите ваш email: <INPUT name=email size=50></P> <P>Введите ваш пароль для email: <INPUT name=pass size=50></P> <P>Введите ваш номер телефона: <INPUT name=telefon1 size=30></P> <P>Введите номер телефона-получателя: <INPUT name=telefon2 size=30></P> <P>Введите ваше сообщение: <TEXTAREA ROWS="10" COLS="50« NAME=sms></TEXTAREA> </P> <P><INPUT TYPE=submit alt="Отправить" name=Submit Value="Отправить"></P> </FORM> </BODY> </HTML>


Слайд 14


Слайд 15

Скрипт для отправки сообщений <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <TITLE>send sms</TITLE> <%@ language="JavaScript"%> </HEAD> <BODY> <% email = Request.Form("email"); pass = Request.Form("pass"); tel1 = Request.Form("telefon1"); tel2 = Request.Form("telefon2"); sms = Request.Form("sms");


Слайд 16

objCon = Server.CreateObject("ADODB.Connection"); objCon.Open("intranet", "iren", "iren40"); Server.ScriptTimeout = 1800; cSQL = "begin NEW_SMS('"+email+"', '"+tel1+"', '"+tel2+"', '"+sms+"'); end;"; Response.write(cSQL); objCon.Execute(cSQL);


Слайд 17

Set SMS = Server.CreateObject("SMS_Gateway.clsSMS_Gateway") x = SMS.Send_SMS(email, pass,tel1, tel2, sms) objCon.Close(); Set SMS = Nothing; %> </BODY> </HTML>


Слайд 18

Скрипт выводит в окно браузера список «плохих» юзеров <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <TITLE>send sms</TITLE> <%@ language="JavaScript"%> </HEAD> <BODY> <%


Слайд 19

Получаем список objCon = Server.CreateObject("ADODB.Connection"); objCon.Open("intranet", "iren", "iren40"); Server.ScriptTimeout = 1800; cSQL = ""; cSQL = cSQL + " select EMAIL, TELEFON, COUNT_SMS, COUNT_BAD "; cSQL = cSQL + " FROM BAD_USERS " ; cSQL = cSQL + " ORDER BY COUNT_BAD DESC " ; RecSet = Server.CreateObject("ADODB.RecordSet"); RecSet.Open(cSQL, objCon, 3);


Слайд 20

Выводим список while (!RecSet.EOF) { Response.write('Пользователь:' + RecSet("EMAIL") ); Response.write('['+RecSet("TELEFON")+']'); Response.write(' проколов: '+ RecSet("COUNT_BAD")); Response.write(' сообщений :'+ RecSet("COUNT_SMS")); RecSet.MoveNext(); } %>


Слайд 21

Текст предупреждения <h1>Рассылка всем предупреждений</h1> Текст предупреждения: <FORM ACTION="/scripts/sms_bad.asp" METHOD="POST"> <TEXTAREA ROWS="10" COLS="50" NAME=sms></TEXTAREA> <INPUT TYPE=submit alt="Отправить" name=Submit Value="Отправить"> </FORM> <% RecSet.Close(); objCon.Close(); %> </BODY> </HTML>


Слайд 22


×

HTML:





Ссылка: