|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Попробовал этот пример. У меня ошибок не возникает. Надо попробовать понять что точно скрывается за ошибкой с номером 0x80040211. Для этого возьми приложеный файл 500-100.asp.txt, переименуй его в asp. Выложи его на свой сайт. Затем подключи его в настройках IIS для этого сайта как обработчик ошибки 500;100. Запусти скрипт и посмотри что какую ошибку он тебе выдаст.
Еще пара комментариев по твоему коду:
1. Вместо условия If request("Content_Length")<>0 then лучше писать If "POST"=Request.ServerVariables("HTTP_METHOD") Then. То есть мы явно проверяем что используется метод POST. Это более наглядно по моему.
2. Раз ты используешь метод POST, то для получения данных формы пользуйся коллекцией Request.Form, а не Request. Дело в том что если параметр был передан в строке запроса и в формой (POST), то ты получишь параметр из строки запроса. Это потенциальая дырка в твоем сайте.
Поэтому пишем
.From = Request.Form("femail")
.To = Request.Form("semail")
.Subject = Request.Form("subj")
3. При отправке формы на саму себя удобно использовать такую форму записи
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.04.2008 16:21
Сообщ.: 47,
Visits: 291
|
|
[quote="bazile"]
Еще пара комментариев по твоему коду:
...
[/quote]
от веть..
применил "комментарии" к файлику и все заработало..
может и правда дело в том, что запрос брался с формы нехорошо
[underline]Спасибо![/underline] пойду покорять просторы интернета ))
зыж а вложенный файлик можно применять для детального отображения тока данной ситуации или впринципе всегда?
выживут тока параноики ©
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
[quote="MasterDzen"]зыж а вложенный файлик можно применять для детального отображения тока данной ситуации или впринципе всегда?[/quote]
Всегда. Это универсальный обработчик ошибок. Только не надо применять его на рабочем сервере по той простой причине что нельзя показывать всем посетителям своего сайта настоящий текст ошибки. Это подарок хакерам. Модифицируй этот файл так чтобы он отправлял сообщение о ошибке по почте или скидывал в лог, а посетителю показывай текст типа "Извините, на сервере произошла внутренняя ошибка".
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.04.2008 16:21
Сообщ.: 47,
Visits: 291
|
|
[quote="bazile"]
3. При отправке формы на саму себя удобно использовать такую форму записи
выживут тока параноики ©
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
[quote="MasterDzen"]или может есть список всех ServerVariables'ов?[/quote]
Наверняка где-то есть, но я всегда их просто распечатывал
<%
For Each HttpVar In Request.ServerVariables
Response.Write("| " & HttpVar & " | " & Request.ServerVariables(HttpVar) & " | " & vbCrlf)
Next
%>
[quote="MasterDzen"]а как можно получить путь к дирректории где находится документ?[/quote]
Сткроковыми функциями можно его выделить (получив позицию последнего \) или методом GetParentFolderName объекта Scripting.FileSystemObject.
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.04.2008 16:21
Сообщ.: 47,
Visits: 291
|
|
эхх..
пробовал найти тему, где говорят про запись файлов, поиск почему то обрывается
ничего не нашлось, потому пишу суда )
можно ли при использовании:
fname = Server.MapPath("/oFice/test") + "\file.xml"
Set fs = Server.CreateObject("Scripting.FileSystemObject")
set out = fs.CreateTextFile(fname, TRUE, FALSE)
out.WriteLine(sReg1)
out.close
записывать текст в файл определенной кодировкой?
он пишется в DOS, а надо UTF-8..
выживут тока параноики ©
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Scripting.FileSystemObject может работать только с Unicode (UTF-16), третий аргумент CreateTextFile как раз и указывает использовать кодировку Unicode или ASCII.
Если нужна именно кодировка utf-8, то пользуйся объектом ADODB.Stream
Set adoStream = CreateObject("ADODB.Stream")
adoStream.Charset = "utf-8"
adoStream.Mode = 3 ' adModeReadWrite
adoStream.Type = 2 ' adTypeText
adoStream.Open
adoStream.WriteText("Привет! Hello")
Call adoStream.SaveToFile("test.txt", 2)
adoStream.Close
И пожалуйста, MasterDzen, в будущем для новых вопросов создавай отдельную тему.
|
|
|
|