Помогите с mail
Вот исходник мой:
============================================
<?php
$to = "Пользователя <User1@online.ua>, " ;
$to .= "Резервная копия <User1@online.ua>";
$subject = "Заголовок";
$message = '
<html>
<head>
<title>Заголовок</title>
</head>
<body>
<p>Вот сюда нужно вставить переменную 1 (всего 9)</p>
</body>
</html>
';
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: Тестер 1 <tester1@online.ua>\r\n";
$headers .= "Bcc: [email]tester1@online.ua[/email]\r\n";
mail($to, $subject, $message, $headers);
=====================================
Помогите, очень нужно !!!
Каким образом передается форма, ГЕТ/ПОСТ? Предположим ПОСТ переменная c именем someVar_1
<html>
<head>
<title>Заголовок</title>
</head>
<body>
<p>'.$_POST['someVar_1'].'</p>
</body>
</html>
';
$to = "Пользователя <User1@online.ua>, " ;
$to .= "Резервная копия <User1@online.ua>";
$subject = "Заголовок";
$message = '
<html>
<head>
<title>Заголовок</title>
</head>
<body>
<p>'.$_REQUEST['edName'].'</p>
</body>
</html>
';
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: Тестер 1 <tester1@online.ua>\r\n";
$headers .= "Bcc: [email]tester1@online.ua[/email]\r\n";
mail($to, $subject, $message, $headers);
В данном случае дело ваше, НО я не вижу смысла в использовании массива $_REQUEST, там, где заранее известен метод отправки данных и не предусмотрены различные варианты.
Или вам необходима возможность создания закладки на скрипт отправки для предоставления большего комфорта самым ленивым СПАМерам? :)
Что ж, в созданном топике этого не оговаривалось.
Чуть было не забыл. Помимо того, что по статистике [COLOR="Gray"](взято с "потолка", по личным наблюдениям) [/COLOR] 90% форм используют метод ПОСТ, не стоит забывать о его исключтельном применении в случае отправки неопределенно большого кол-ва данных (тут ведь, как понимаю, текст письма также будет введен из формы) из-за ограничения на длину строки запроса метода ГЕТ.
И теперь поясните мне, в связи с чем возникла необходимость обращаться к ассоциативному массиву $_REQUEST, который содержит ВСЕ переданные пользователем данные вне зависимости от метода (ПОСТ, ГЕТ,...), вместо того, чтобы взять их оттуда, откуда положено?
$_REQUEST солержит в себе POST и GET (без разбора)
А если register_globals=On, то вообще можно к каждой переменной обращаться, как к глобальной, только нафиг надо.
При GET - переменные, грубо говоря, и есть в адресной строке (строке запроса QUERY_STRING);
При POST они передаются "скрытно" в "шапке" с заголовками, отсылаемыми браузером;
Т.е. методы кардинально отличаются, и ПОСТ в отличии от ГЕТ не имеет ограничения (в случае ГЕТ на длину всей QUERY_STRING в целом, а не каждой переменной по отдельности, как думает один мой знакомый) на обьем передаваемых данных.
В принципе на данный момент в голову лезет лишь один распространенный случай оправданного использования метода ГЕТ - когда необходимо оставить возможность сохранения линков на страницу, т.е. параметры выборки, влияющие на содержимое контента, как например на этой странице t=38823, что наверняка означает "выбрать топик с id'ом равным...", если бы не ссылки правили Веб'ом, все <A href...> давно можно было бы заменить кнопками отправляющими параметры методом ПОСТ по нажатию (из вредности :) ), ну и конечно же ГЕТ методом передаются данные из формы в поисковиках (по тем же причинам "сцылябильности" на страницу с результатами).
В самой ХТМЛ форме отправки какой метод указан?
<FORM action="" method="[COLOR="Gray"]POST или GET[/COLOR]">
Например? Как здесь с отображением промежуточного экрана "ваше сообщение отправлено", или моментально?
Если средствами ПХП (моментально), то:
где путь может быть и относительным.
Или что бы нельзя отсылать подряд несколько сообщений, только через определенное время, как на rapidshare !
Благодарю Вас за поддержку !
<head>
<script type="text/javascript">
<!--
function exec_refresh()
{
window.status = "Переадресация...";
var timerID = setTimeout("exec_refresh();", 100);
if (timeout > 0)
{
timeout -= 1;
}
else
{
clearTimeout(timerID);
window.status = "";
window.location = "http://forum.codenet.ru/search.php?searchid=69294";
}
}
var timeout = 20;
exec_refresh();
//-->
</script>
<title>CodeNet Forum</title>
</head>
<body>
Переадресация...
</body>
</html>
Согласно начальному значения глобальной переменной timeout ф-я exec_refresh() будет вызывать сама себя (рекурсивно) 20 раз, при этом для каждого вызова определен таймаут в 100 милесекунд (1000 = 1 секунда). Т.е. вообщем перенаправление произойдет через 2 секунды + накладные расходы на выполнение. Возможно черезчур запутано, тогда минимальный функциональный код, выглядел бы как:
<!--
setTimeout("window.location='http://forum.codenet.ru/search.php?searchid=69294'", 2000);
//-->
</script><title>CodeNet Forum</title></head>
<body>Переадресация...</body>
</html>
Или что бы нельзя отсылать подряд несколько сообщений, только через определенное время, как на rapidshare !
Благодарю Вас за поддержку !
Извини, но во первых где-то тут это уже обговаривалось, во вторых (если не найдешь), лучше создать отдельную тему, т.к. тыкая по 20 разных вопросов в одну, рискуешь быть забаненым :)
Спасибо за помощь !
Насчёт переадресации: а не проще ли будет использовать meta -refresh?
После нажатия кнопки "отправить сообщение", обновляется страница (все поля чистые), и выводит в окошке (стандартном) сообщение "Успешно отправлено или ошибка".
Вставлять в "голову":
<meta http-equiv="refresh" content="2">
Хотя лично предпочитаю ЖС реализацию, meta тэги юзать то ли религия не позволяет, то ли мне не нравится точность таймера, возможно реализация в различных браузерах, честно - уже не помню...
И, в чем проблема? Не значешь как вывести/"отловить" сообщение?
Sub clickme()
Alert "Сообщение"
End Sub
</script>
<button onclick="clickme()">Кнопка</button>
Т.е. "стандартное окошко", это типа "пердупредюшка" со значком?
Тогда:
alert("Message here...");
</script>
или переписывая твой вариант с сообщением по клику:
function clickme() { alert("Message here..."); }
</script>
<button onclick="clickme()">Кнопка</button>
..........
mail($to, $subject, $message, $headers);
echo "<script type=\"text/javascript\" language=\"JavaScript\">alert(\"Сообщение успешно отправлено !\");</script> ";
header("Location: http://usb-softik.ho.com.ua/");
}
else {
..................
Если надо что-то вывести перед переходом, то ПХПшными средствами уже никак не сделать, юзай ЖабаСкрипт, или МЕТА-тег... Т.к. все хидеры ОБЯЗАНЫ быть отправлены до любого вывода в браузер, в твоем случае header вызывается после echo