Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

cgi не пишет в файл(txt). Но файл создает. [D7, WinXP]


Vlad Oshin ©   (2007-02-13 15:37:00) 

Запущен IIS. На кнопку формы подвешен этот обработчик

procedure InitParams; //инициализация
var
STR: string;
StdIn:cardinal;
Size: cardinal;
Actual:dword;
begin
StdIn := GetStdHandle(STD_INPUT_HANDLE);
Size := SetFilePointer(StdIn, 0, nil, FILE_END);
SetFilePointer(StdIn, 0, nil, FILE_BEGIN);
SetLength(STR,Size+1);
if (Size <= 0) then Exit;
ReadFile(StdIn, STR[1], Size, dword(Actual), nil);
STR[Size+1] := #0;
InParams:=PChar(@STR[1])
end;
// само ===============================================
var
UserId, Password: string;
f:textfile;
begin
InitParams;
UserId:=ParamByName('USERID');
Password:=ParamByName('PASSWORD');
WriteLn('Content-Type: text/html');
WriteLn;
WriteLn('<html>');
WriteLn('<head>');
if(UserId='1') and (Password='1')
 then begin
       WriteLn('<title>СGI скрипт: доступ разрешен</title>');
       WriteLn('</head>');
       WriteLn('<body>');
       WriteLn;
       WriteLn('<h1>доступ разрешен</h1>');
      end
 else begin
       WriteLn('<title>СGI скрипт: ошибка авторизации</title>');
       WriteLn('</head>');
       WriteLn('<body>');
       WriteLn;
       WriteLn('<h1>ошибка авторизации</h1>');
      end;
WriteLn(' UserID: '+UserId+'');
WriteLn(' Password: '+Password+'');
WriteLn('</body>');
WriteLn('</html>');
// тут выдает как надо: доступ разрешен UserID: 1 Password: 1

// следующее отрабатывает сразу (файл создается, но он пустой). Почему?
assignfile(f,'c:\myIlog.txt');
filemode:=2;
if fileexists('c:\myIlog.txt') then reset(f)
                               else rewrite(f);
append(f);
writeln(f,'UserID:'+UserID);
writeln(f,'Password:'+Password);
writeln(f);


Vlad Oshin   (2007-02-13 15:48:00) [1]

блин.. сам же всем советую..
сколько еще раз наступать на эти грабли :)

причем и было closefile(f);
только после условия, которое не выполняется, как оказалось


Правильный Вася   (2007-02-13 15:47:00) [2]

права-то есть?


Плохиш   (2007-02-13 15:41:00) [3]

closefile(f); ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо