Скрипт отправки писем не работает. прошу помочь

12 3
S
На сайте с 30.09.2009
Offline
116
1332

Вечер добрый. Прошу помочь.

Скрипт отправки писем работает на одном сайте, на втором не хочет (хостинг другой).

Пишет ошибку, не могу разобраться. спасибо заранее

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /var/www/alex216/data/www/site.ru/kontakt/sendmail/index_mail.php on line 42

путь инклуд писал так

include ("http://www.site.ru/kontakt/sendmail/config.inc");

Перелинковку сделал. Теперь думаю куда потратить денежки - сапа, мира или блоги :)
NZ
На сайте с 20.09.2009
Offline
12
#1

Сто раз все повторяли: тут нет телепатов.

Код в студию.

Ghost Bear
На сайте с 01.07.2009
Offline
28
#2

Скорее всего у вас отключён в allow_url_fopen в php.ini

Вообще по урлу обращаться к самому себе очень неправильно.

Исходя из путей в ошибке, я думаю что ваш мейл скрипт лежит в data? Если да, то вот так вот должно быть:

include ("../kontakt/sendmail/config.inc");
Пишу продвинутый веб-софт и автоматизирую сео-задачи на партнёрских условиях. Ваша тема + Мой код = Совместный успех. Велком в ЛС.
dkameleon
На сайте с 09.12.2005
Offline
386
#3

include ("config.inc");

Дизайн интерьера (http://balabukha.com/)
S
На сайте с 30.09.2009
Offline
116
#4

спасибо. а можно здесь код выложить? или кто то может в личке помочь?

проблема в том что на другом нашем сайте скрипт работает, а вот на 2-й ставим и не работает! пути все теже (естественно под соответствующий домен подогнали).

спасибо

S
На сайте с 28.10.2005
Offline
319
#5

Выкладывайте, будем посмотреть

S
На сайте с 30.09.2009
Offline
116
#6

прямо кодом можно выложить? вставить код в сообщение?

stroydomen добавил 31.10.2009 в 13:39


<?

function checkmail($str)
{
$badchars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";

return (eregi($badchars,$str));
}

function headerconv ($str)
{
$str = trim($str);
$str = stripslashes($str);

return $str;
}

function htmlconv ($str)
{

if (get_magic_quotes_gpc):

$str = stripslashes($str);

endif;

$str = str_replace("\"", "&quot;", $str);
$str = str_replace("<","&lt;",$str);
$str = str_replace(">","&gt;",$str);
$str = str_replace("\r\n", "\n", $str);
$str = str_replace("\r", "\n", $str);
$str = str_replace("\n", "<br>", $str);
$str = str_replace("\$", "&#36;", $str);
$str = str_replace("|", "/", $str);
$str = eregi_replace("(<br>*){2,}","<br><br>",$str);
$str = eregi_replace("[ ]{2,}", " ", $str);
$str = trim($str);

return $str;
}

include ("sendmail/config.inc");

if ($config[inc_headers] == "on"):

include ($config[header]);

endif;

if ($action != "send"):

include ("sendmail/form.inc");

else:

if ($form[name] == "" || $form == "" || $form[subject] == "" || $form[message] == ""):

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Небыли заполнены следующие обязательные поля:</p>";
$errormessage .= "<ol>";

if ($form[name] == ""): $errormessage .= "<li><p class=\"T\">Ваши Ф.И.О. или юр.название:</p></li>"; endif;
if ($form == ""): $errormessage .= "<li><p class=\"T\">Ваш E-Mail</p></li>"; endif;
if ($form[subject] == ""): $errormessage .= "<li><p class=\"T\">Тема сообщения</p></li>"; endif;
if ($form[message] == ""): $errormessage .= "<li><p class=\"T\">Текст сообщения</p></li>"; endif;

$errormessage .= "</ol>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";

include ("sendmail/error.inc");

else:

$header[subject] = headerconv($form[subject]);
$header[name] = headerconv($form[name]);

$form[name] = htmlconv($form[name]);
$form = htmlconv($form);
$form[subject] = htmlconv($form[subject]);
$form[message] = htmlconv($form[message]);

if (!(eregi("([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9_\-\.])+",$form)) || checkmail($form)):

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Введенный вами адрес E-Mail (".$form.") содержит
недопустимые символы или имеет неправильный формат.</p>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";

include ("sendmail/error.inc");

else:

$contents = file($config[recip_file]);
$numlines = sizeof($contents);

for ($i=0;$i<$numlines;$i++) {
$contents[$i] = explode("|",$contents[$i]);
}

$form[send_to] = $contents[$form[recip]-1][1]."<".$contents[$form[recip]-1][0].">";

if ($form[sendcopy] == "on"):

$form[send_to] = $form[send_to] . ", ";
$form[send_to] .= $header[name]."<".$form.">";

endif;

$sendmessage = "<html>
<head>
<title>".$form[subject]."</title>
</head>
<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">
<tr>
<td><font face=\"Verdana\" size=\"2\">".$form[message];

if ($config[features] == "on"):

$sendmessage .= "<br><br>----------------------
<br>Обозреватель: $HTTP_USER_AGENT
<br>Адрес IP: $REMOTE_ADDR";

endif;

$sendmessage .= "</font></td>
</tr>
</table>
</body>
</html>";

$headers = "MIME-Version: 1.0\n";
$headers .= "From: ".$header[name]."<".$form.">\n";
$headers .= "Content-Type: text/html; charset=".$config[charset]."\n";
$headers .= "X-Mailer: PHP/" . phpversion();

{
set_time_limit(30);

if (mail($form[send_to], $header[subject], $sendmessage, $headers)):

$okheader = "<p class=\"T\"><b>СООБЩЕНИЕ ОТПРАВЛЕНО!</b></p>";
$okmessage = "<p class=\"T\">Спасибо, ".$form[name].", ваше сообщение успешно отправлено.
Мы постараемся вам ответить в течение нескольких часов.";

if ($sendcopy == "on"):

$okmessage .= "<p class=\"T\">На ваш E-Mail (".$form.") послана копия письма. Через
несколько минут вы можете проверить свой почтовый ящик, чтобы убедиться, что отправка прошла успешно.</p>";

endif;

include ("sendmail/ok.inc");

else:

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Произошла непредвиденная ошибка при попытке
отправить сообщение.</p>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.
Если ошибка будет повторяться, обратитесь к <b><a href=\"mailto:".$config[admin_email]."\">Вебмастеру</a></b>.</p>";

include ("sendmail/error.inc");

endif;
}
endif;

endif;

endif;

if ($config[inc_headers] == "on"):

include ($config[footer]);

endif;

?>

ФАЙЛ config.inc выглядит так
<?

// *************************************************************************************
// Пожалуйста прочитайте файл readme.txt перед тем как что-либо здесь редактировать!
// Внимание! В данных настройках при изменинии параметров нужно изменять только то, что
// взято в кавычки. Если производится удаление значения, то сами кавычки нужно оставить!
// *************************************************************************************

// Главный URL вашего сайта. На него будут ссылаться окошки с сообщениями об отправке или ошибках.
// Допускается использование относительных ссылок, например, "/", "./folder/", "/folder/index.htm".
$config[main_url] = "http://www.site.ru";

// Адрес администратора или вебмастера сайта. Появляется при появлении сообщений об ошибках.
$config[admin_email] = "links@site.ru";
//

// Кодировка писем - в большинстве случаев подходит уже установленная.
$config[charset] = "windows-1251";
//

// Путь к файлу, содержащий список ваших адресов e-mail. О нем дополнительно написано в файле
// readme.txt.
$config[recip_file] = "sendmail/recip.txt";
//

// По умолчанию в письме приходят данные об IP адресе и обозревателе отправившего сообщение
// человека. Если это лишнее, то очистите значение в кавычках, иначе оставьте "on".
$config[features] = "on";
//

// Получатель, который выводится по умолчанию в списке получателей.
// Значение - это номер строки в файле recip.txt.
$config[select_recip] = 1;
//

// Если установлено значение "on", включаются заголовки header.inc и footer.inc.
// Вы можете испрользовать свои заголовки, например header.htm и footer.htm, однако
// в этом случае рекомендуется хотя-бы сохранить настройки стиля, которые содержатся
// в файле header.inc. Для отлючения заголовков просто удалите значение "on", в этом
// случае настройки путей к заголовкам и описания тегов не будут иметь значения
// поэтому их можно не трогать.
$config[inc_headers] = "";
//

// Путь к заголовкам.
$config[header] = "sendmail/header.inc";
$config[footer] = "sendmail/footer.inc";
//

// Описания тегов заголовка. Название (tittle) и описание (description) вашего сайта.
$config[tittle] = "отправить письмо с сайта";
$config[description] = "отправка письма с сайта site.ru";
//

// Если установлено значение "on", показывается маленькая ссылка на наш сайт. Вы можете
// удалить это значение, но если эта ссылочка не будет вам мешать, то большая просьба
// ее оставить. :)
$config[copyshow] = "";
//

// ***********************************************************************
// На этом все! Теперь вгружайте это все на свой сервер и пробуйте. Удачи!
// ***********************************************************************

?>

S
На сайте с 28.10.2005
Offline
319
#7


<?

function checkmail($str)
{
$badchars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";

return (eregi($badchars,$str));
}

function headerconv ($str)
{
$str = trim($str);
$str = stripslashes($str);

return $str;
}

function htmlconv ($str)
{

if (get_magic_quotes_gpc):

$str = stripslashes($str);

endif;

$str = str_replace("\"", "&quot;", $str);
$str = str_replace("<","&lt;",$str);
$str = str_replace(">","&gt;",$str);
$str = str_replace("\r\n", "\n", $str);
$str = str_replace("\r", "\n", $str);
$str = str_replace("\n", "<br>", $str);
$str = str_replace("\$", "$", $str);
$str = str_replace("|", "/", $str);
$str = eregi_replace("(<br>*){2,}","<br><br>",$str);
$str = eregi_replace("[ ]{2,}", " ", $str);
$str = trim($str);

return $str;
}

include ("sendmail/config.inc");

if ($config[inc_headers] == "on"):

include ($config[header]);

endif;

if ($action != "send"):

include ("sendmail/form.inc");

else:

if ($form[name] == "" || $form == "" || $form[subject] == "" || $form[message] == ""):

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Небыли заполнены следующие обязательные поля:</p>";
$errormessage .= "<ol>";

if ($form[name] == ""): $errormessage .= "<li><p class=\"T\">Ваши Ф.И.О. или юр.название:</p></li>"; endif;
if ($form == ""): $errormessage .= "<li><p class=\"T\">Ваш E-Mail</p></li>"; endif;
if ($form[subject] == ""): $errormessage .= "<li><p class=\"T\">Тема сообщения</p></li>"; endif;
if ($form[message] == ""): $errormessage .= "<li><p class=\"T\">Текст сообщения</p></li>"; endif;

$errormessage .= "</ol>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";

include ("sendmail/error.inc");

else:

$header[subject] = headerconv($form[subject]);
$header[name] = headerconv($form[name]);

$form[name] = htmlconv($form[name]);
$form = htmlconv($form);
$form[subject] = htmlconv($form[subject]);
$form[message] = htmlconv($form[message]);

if (!(eregi("([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9_\-\.])+",$form)) || checkmail($form)):

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Введенный вами адрес E-Mail (".$form.") содержит
недопустимые символы или имеет неправильный формат.</p>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.</p>";

include ("sendmail/error.inc");

else:

$contents = file($config[recip_file]);
$numlines = sizeof($contents);

for ($i=0;$i<$numlines;$i++) {
$contents[$i] = explode("|",$contents[$i]);
}

$form[send_to] = $contents[$form[recip]-1][1]."<".$contents[$form[recip]-1][0].">";

if ($form[sendcopy] == "on"):

$form[send_to] = $form[send_to] . ", ";
$form[send_to] .= $header[name]."<".$form.">";

endif;

$sendmessage = "<html>
<head>
<title>".$form[subject]."</title>
</head>
<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">
<tr>
<td><font face=\"Verdana\" size=\"2\">".$form[message];

if ($config[features] == "on"):

$sendmessage .= "<br><br>----------------------
<br>Обозреватель: $HTTP_USER_AGENT
<br>Адрес IP: $REMOTE_ADDR";

endif;

$sendmessage .= "</font></td>
</tr>
</table>
</body>
</html>";

$headers = "MIME-Version: 1.0\n";
$headers .= "From: ".$header[name]."<".$form.">\n";
$headers .= "Content-Type: text/html; charset=".$config[charset]."\n";
$headers .= "X-Mailer: PHP/" . phpversion();

{
set_time_limit(30);

if (mail($form[send_to], $header[subject], $sendmessage, $headers)):

$okheader = "<p class=\"T\"><b>СООБЩЕНИЕ ОТПРАВЛЕНО!</b></p>";
$okmessage = "<p class=\"T\">Спасибо, ".$form[name].", ваше сообщение успешно отправлено.
Мы постараемся вам ответить в течение нескольких часов.";

if ($sendcopy == "on"):

$okmessage .= "<p class=\"T\">На ваш E-Mail (".$form.") послана копия письма. Через
несколько минут вы можете проверить свой почтовый ящик, чтобы убедиться, что отправка прошла успешно.</p>";

endif;

include ("sendmail/ok.inc");

else:

$errorheader = "<p class=\"T\"><b>СООБЩЕНИЕ НЕ ОТПРАВЛЕНО!</b></p>";
$errormessage = "<p class=\"T\">Произошла непредвиденная ошибка при попытке
отправить сообщение.</p>";
$errormessage .= "<p class=\"T\">Пожалуйста, вернитесь назад и попробуйте снова.
Если ошибка будет повторяться, обратитесь к <b><a href=\"mailto:".$config[admin_email]."\">Вебмастеру</a></b>.</p>";

include ("sendmail/error.inc");

endif;
}
endif;

endif;

endif;

if ($config[inc_headers] == "on"):

include ($config[footer]);

endif;

?>

ФАЙЛ config.inc выглядит так
<?

// *************************************************************************************
// Пожалуйста прочитайте файл readme.txt перед тем как что-либо здесь редактировать!
// Внимание! В данных настройках при изменинии параметров нужно изменять только то, что
// взято в кавычки. Если производится удаление значения, то сами кавычки нужно оставить!
// *************************************************************************************

// Главный URL вашего сайта. На него будут ссылаться окошки с сообщениями об отправке или ошибках.
// Допускается использование относительных ссылок, например, "/", "./folder/", "/folder/index.htm".
$config[main_url] = "http://www.site.ru";

// Адрес администратора или вебмастера сайта. Появляется при появлении сообщений об ошибках.
$config[admin_email] = "links@site.ru";
//

// Кодировка писем - в большинстве случаев подходит уже установленная.
$config[charset] = "windows-1251";
//

// Путь к файлу, содержащий список ваших адресов e-mail. О нем дополнительно написано в файле
// readme.txt.
$config[recip_file] = "sendmail/recip.txt";
//

// По умолчанию в письме приходят данные об IP адресе и обозревателе отправившего сообщение
// человека. Если это лишнее, то очистите значение в кавычках, иначе оставьте "on".
$config[features] = "on";
//

// Получатель, который выводится по умолчанию в списке получателей.
// Значение - это номер строки в файле recip.txt.
$config[select_recip] = 1;
//

// Если установлено значение "on", включаются заголовки header.inc и footer.inc.
// Вы можете испрользовать свои заголовки, например header.htm и footer.htm, однако
// в этом случае рекомендуется хотя-бы сохранить настройки стиля, которые содержатся
// в файле header.inc. Для отлючения заголовков просто удалите значение "on", в этом
// случае настройки путей к заголовкам и описания тегов не будут иметь значения
// поэтому их можно не трогать.
$config[inc_headers] = "";
//

// Путь к заголовкам.
$config[header] = "sendmail/header.inc";
$config[footer] = "sendmail/footer.inc";
//

// Описания тегов заголовка. Название (tittle) и описание (description) вашего сайта.
$config[tittle] = "отправить письмо с сайта";
$config[description] = "отправка письма с сайта site.ru";
//

// Если установлено значение "on", показывается маленькая ссылка на наш сайт. Вы можете
// удалить это значение, но если эта ссылочка не будет вам мешать, то большая просьба
// ее оставить. :)
$config[copyshow] = "";
//

// ***********************************************************************
// На этом все! Теперь вгружайте это все на свой сервер и пробуйте. Удачи!
// ***********************************************************************

?>

Ошибку выдает или просто ничего не отправляет?

ewg777
На сайте с 04.06.2007
Offline
225
#8
semenov:

Ошибку выдает или просто ничего не отправляет?

На

include ("sendmail/config.inc"); пишет Warning: include() [function.include]: URL file-access is disabled in the server configuration in /var/www/alex216/data/www/site.ru/kontakt/sendmail/index_mail.php on line 42

Верно?

S
На сайте с 28.10.2005
Offline
319
#9

ewg777, ты кто? 😂

S
На сайте с 30.09.2009
Offline
116
#10

ошибку выдает

вот сорри за ссылку

http://www.kontaktstroy.ru/contacts/sendmail/index_mail.php

но это я уже в файлах (код что выше) поменял пути к файлам

убрал

sendmail/file.php

и сделал просто путь file.php

причем что странно на другом домене этот код работает. там все пути прописаны так "http:// ит.д."

т.е. полный путь к файлу. тут и с полным путем не работает

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий