![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Вот опять столкнулся с проблемами:
Вроде скрипт работает, выводит параметры, но почту не отсылает, в чем может быть дело?
--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
а точно путь /usr/sbin/sendmail
где ты его взял? |
|||
|
||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Да, я в супорте своего хоста спросил, они сказали /usr/sbin/sendmail К тому же у меня работает другой скрипт отправки почты, у него тот же путь...
--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Добавь ключи:
-t - Поля заголовка берутся из входных данных, а не из командной строки -oi - Символ точки не считать признаком конца сообщения -odq - Ставит сообщения в очередь, а не пытается отправить его немедленно, этот ключ можно убрать, но без него sendmail становится уязвим при атаке "Отказ от обслуживания". -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Спасибо
![]() ![]() Последний шаг это редирект после выполнения скрипта... Я как понял он осуществляется print "Location: http://www.mysite.ru/\n\n"; когда выполняю скрипт, все просто выводится на экран, и никуда не переходит... --------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Для того, что бы работал редирект, им нужно заменить заголовок:
print "Content-type: text/html\n\n"; Т.е. строку заголовка нужно заменить следующей:
Если используешь CGI.pm, то заголовок:
Нужно заменить на такой
Если нужно просто перенаправить пользователя через определённое кол-во секунд, то вставляешь в код страницы, с которой будет осуществляться перенаправление, такую строку в раздел <HEAD></HEAD>:
Другими словами, в HTML коде это будет выглядеть примерно так:
В последнем примере, перенаправление произойдёт через 5 секунд. Удачи. Это сообщение отредактировал(а) korob2001 - 18.4.2005, 19:02 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||||
|
|||||||||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
В принципе все понятно... только вот что менять?, нужно же оставить print header( -charset => 'Windows-1251');(чтоб русские буквы отображал)??? А если дописывать пишет Status: 302 Moved Location:http://yandex.ru
Кстати редирект будет осуществлятся после отправки письма?
--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
redirect() - это и есть хеадер, только с перенаправлением.
charset - указывай на той странице, куда перенаправляешь пользователя, можешь ещё указать прямо в redirect'e.
Если используешь redirect, то header не нужен.
Удачи. ЗЫ: если используешь CGI.pm объектно ориентированно, то не нужно указывать qw( :standard ). Просто пиши так use CGI; , создавай объект и орудуй всеми методами и свойствами этого, чудного, модуля. Это сообщение отредактировал(а) korob2001 - 18.4.2005, 23:46 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Большое спасибо
![]() --------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Разбей программу на подпрограммы, там геде нужен redirect, юзай redirect, там где нужен header, юзай header.
Структура примерно такая:
Получается такая последовательность, когда запускается программа, она пропускает все подпрограммы. Когда доходит до условного выражения if ...else она проверяет был ли передан программе параметр send - это может быть имя кнопки SUBMIT. Если параметр определён, то значит пользователь нажал кнопку SUBMIT и нам нужно сделать проверку данных если подпрограмма user_controll вернула истенное значение, то значит данные проверены и готовы к отправке. Запускаем подпрограмму send_mail. Далее подпрограмма send_mail отправляет данные и из неё запускается подпрограмма enjoy, которая и перенаправляет пользователя на нужную тебе страницу. Вообще-то я упростил код и условия для наглядности, для удобства можно было бы передавать параметры из одной подпрограммы, в другую. Не мешало бы ещё создать подпрограмму, которая выводила бы ошибки, если подпрограмма user_controll их опеределит. Но это уже лирика, цель была объяснить принцип и удобство работы программы, которая разбита на несколько подпрограмм. Вроде понятно изложил. Удачи. Это сообщение отредактировал(а) korob2001 - 19.4.2005, 21:09 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Спасибо за программу, я вчера в ней разбирался весь вечер с книгой (вернее в использовании процедур
![]() Пытаюсь вызвать процедуру с конца, но че-то не пашет...
--------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Ну, а где переменная $LastName получает параметр??? Вобщем замени строку:
На такую:
Естественно измени lastName на сой параметр. ЗЫ: Только этот код очень опасен, я надеюсь ты понимаешь почему. Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Да, я просто не все скопировал...
Все равно ошибки не возникает, редирект проходит, а письмо не отсылается:
А на счет опасности догадываюсь... типа можно ящик завалить письмами кликая по ссылке, но я пока только начинающий... так что эту проблему оставлю на будущее. --------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Только что проверил, всё работает только строку:
нужно убрать. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Digo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 30.9.2004 Где: Ростов на Дону Репутация: нет Всего: нет |
Да, верно просто у меня сервер тормозит только сейчас письмо дошло
![]() Пришло: Переданный параметр и все... --------------------
640кб оперативной памяти хватит миру по самые уши (Билл Гейтс ) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |