ss: TStringList;
tagstr: string;
procedure pages(count: Integer; var page: Integer);
+ function isInfo: Boolean;
+ function loginCheck: Boolean;
function hash(str: string): string;
function mente: Boolean;
function detail(ts, pid: string): string;
else if (TagString = 'mente') and
(DataModule1.FDTable3.FieldByName('mente').AsBoolean = true) then
ReplaceText := 'checked'
- else if TagString = 'password' then
- ReplaceText := Request.CookieFields.Values['user']
else if TagString = 'database' then
ReplaceText := Request.QueryFields.Values['db'];
end;
end;
end
else
- ReplaceText := '<p style=color:yellow;background-color:aqua>\82²\95ñ\8d\90\82 \82è\82ª\82Æ\82¤\82²\82´\82¢\82Ü\82·.';
+ ReplaceText :=
+ '<p style=color:yellow;background-color:aqua>\82²\95ñ\8d\90\82 \82è\82ª\82Æ\82¤\82²\82´\82¢\82Ü\82·.';
end;
procedure TWebModule1.indexHTMLTag(Sender: TObject; Tag: TTag;
else if TagString = 'footer' then
ReplaceText := footer.Content
else if TagString = 'header' then
- begin
- i := DataModule1.FDTable3.FieldByName('count').AsInteger;
- if 10 * i <= DataModule1.FDTable2.RecordCount then
- ReplaceText := '<h1>\82±\82ê\88È\8fã\93\8a\8de\82Å\82«\82Ü\82¹\82ñ.</h1>'
+ if (DataModule1.FDTable1.FieldByName('dbnum')
+ .AsInteger = DataModule1.FDTable3.FieldByName('info').AsInteger) and
+ (loginCheck = false) then
+ ReplaceText := '<h1 style=text-align:center>\8aÇ\97\9d\90l\82©\82ç\82¨\92m\82ç\82¹\82ª\82 \82è\82Ü\82·.</h1>'
else
- ReplaceText := header.Content;
- end
+ begin
+ i := DataModule1.FDTable3.FieldByName('count').AsInteger;
+ if 10 * i <= DataModule1.FDTable2.RecordCount then
+ ReplaceText := '<h1>\82±\82ê\88È\8fã\93\8a\8de\82Å\82«\82Ü\82¹\82ñ.</h1>'
+ else
+ ReplaceText := header.Content;
+ end
else if (TagString = 'css') or (TagString = 'js') then
ReplaceText := detail(TagString, TagParams.Values['id'])
else if TagString = 'dbnum' then
ReplaceText := DataModule1.FDTable1.FieldByName('database').AsString;
end;
+function TWebModule1.isInfo: Boolean;
+begin
+ result := DataModule1.FDTable1.FieldByName('dbnum')
+ .AsInteger = DataModule1.FDTable3.FieldByName('info').AsInteger;
+end;
+
procedure TWebModule1.itemsHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings; var ReplaceText: string);
var
end;
end;
+function TWebModule1.loginCheck: Boolean;
+begin
+ result := hash(Request.CookieFields.Values['user'])
+ = DataModule1.FDTable3.FieldByName('password').AsString;
+end;
+
procedure TWebModule1.loginHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
i: Integer;
begin
s := Request.CookieFields.Values['user'];
- if (s = '') or (hash(s) <> DataModule1.FDTable3.FieldByName('password')
- .AsString) then
+ if (s = '') or (loginCheck = false) then
begin
WebModule1loginAction(nil, Request, Response, Handled);
Exit;
procedure TWebModule1.WebModule1helpAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
- i, j, k: Integer;
+ k: Integer;
s: string;
begin
Response.ContentType := 'text/html;charset=utf-8';
procedure TWebModule1.WebModule1indexpageAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
- int: Integer;
+ i: Integer;
s: string;
begin
s := Request.QueryFields.Values['db'];
if s <> '' then
DataModule1.FDTable1.Locate('dbnum', s, []);
- int := StrToIntDef(Request.QueryFields.Values['num'], -1);
- pages(DataModule1.FDTable2.RecordCount, int);
- index.Tag := int;
+ i := StrToIntDef(Request.QueryFields.Values['num'], -1);
+ pages(DataModule1.FDTable2.RecordCount, i);
+ index.Tag := i;
tagstr := '/index';
Self.Tag := Integer(@tagstr);
Response.ContentType := 'text/html; charset="utf-8"';
+ s := DataModule1.FDTable2.IndexFieldNames;
+ if isInfo = true then
+ DataModule1.FDTable2.IndexFieldNames := Copy(s, 1, Length(s) - 2) + 'DN'
+ else
+ DataModule1.FDTable2.IndexFieldNames := Copy(s, 1, Length(s) - 2) + 'AN';
if mente = false then
Response.Content := index.Content;
end;
s: string;
i: Integer;
begin
- if hash(Request.CookieFields.Values['user']) <>
- DataModule1.FDTable3.FieldByName('password').AsString then
+ if loginCheck = false then
begin
with DataModule1.FDTable1 do
if Locate('database', 'master') = false then
var
number, i: Integer;
title, na, raw, pass, kotoba, error: string;
+ s: string;
comment: TStringList;
x: Boolean;
function scan(Text: string): string;
error := '<section style=color:red><p>\8d\87\8c¾\97t\82ª\82¿\82ª\82¢\82Ü\82·.';
with DataModule1.FDTable2 do
begin
- Last;
+ if isInfo = true then
+ First
+ else
+ Last;
number := FieldByName('number').AsInteger + 1;
end;
with Request.ContentFields do
end
else
begin
+ s := DataModule1.FDTable2.IndexFieldNames;
+ if s[Length(s)] = 'N' then
+ begin
+ s := Copy(s, 1, Length(s) - 3);
+ DataModule1.FDTable2.IndexFieldNames := s;
+ end;
i := DataModule1.FDTable1.FieldByName('dbnum').AsInteger;
DataModule1.FDTable2.AppendRecord([i, number, title, na, comment.Text,
raw, Now, pass]);
+ if isInfo = true then
+ s := s + ':DN'
+ else
+ s := s + ':AN';
+ DataModule1.FDTable2.IndexFieldNames := s;
Response.SendRedirect('index?db=' + i.ToString + '#article');
Exit;
end;