Отправка e-male
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        


««12

Отправка e-male Expand / Collapse
Автор
Сообщение
03.02.2006 11:34
Supreme Being

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. При отправке формы на саму себя удобно использовать такую форму записи

Здесь имя файла подставляется автоматически так, что если ты переименуешь файл с формой, тебе не придется вносить изменений в код. Очень удобно.
Сообщ. #889983
03.02.2006 12:20


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.04.2008 16:21
Сообщ.: 47, Visits: 291
[quote="bazile"]
Еще пара комментариев по твоему коду:
...
[/quote]
от веть..
применил "комментарии" к файлику и все заработало..
может и правда дело в том, что запрос брался с формы нехорошо
[underline]Спасибо![/underline] пойду покорять просторы интернета ))

зыж а вложенный файлик можно применять для детального отображения тока данной ситуации или впринципе всегда?


выживут тока параноики ©
Сообщ. #889993
03.02.2006 12:28
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
[quote="MasterDzen"]зыж а вложенный файлик можно применять для детального отображения тока данной ситуации или впринципе всегда?[/quote]
Всегда. Это универсальный обработчик ошибок. Только не надо применять его на рабочем сервере по той простой причине что нельзя показывать всем посетителям своего сайта настоящий текст ошибки. Это подарок хакерам. Модифицируй этот файл так чтобы он отправлял сообщение о ошибке по почте или скидывал в лог, а посетителю показывай текст типа "Извините, на сервере произошла внутренняя ошибка".
Сообщ. #889996
03.02.2006 16:02


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 21.04.2008 16:21
Сообщ.: 47, Visits: 291
[quote="bazile"]
3. При отправке формы на саму себя удобно использовать такую форму записи

Здесь имя файла подставляется автоматически так, что если ты переименуешь файл с формой, тебе не придется вносить изменений в код. Очень удобно.[/quote]
удобно )
а как можно получить путь к дирректории где находится документ?
или может есть список всех ServerVariables'ов?


выживут тока параноики ©
Сообщ. #890012
03.02.2006 17:42
Supreme Being

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("" & vbCrlf)
Next
%>
" & HttpVar & " " & Request.ServerVariables(HttpVar) & "


[quote="MasterDzen"]а как можно получить путь к дирректории где находится документ?[/quote]
Сткроковыми функциями можно его выделить (получив позицию последнего \) или методом GetParentFolderName объекта Scripting.FileSystemObject.
Сообщ. #890028
06.02.2006 11:33


Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum 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..


выживут тока параноики ©
Сообщ. #890080
06.02.2006 11:46
Supreme Being

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, в будущем для новых вопросов создавай отдельную тему.
Сообщ. #890084
« пред. тема | след. тема »

««12

Эту тему читают Expand / Collapse
Посетители: 1 (1 гость, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 5:40