Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2011, 10:29   #1
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию Отправка переменной через функцию mail ()

Все привет.

Столкнулся недавно с проблемой отправки содержания переменной на email.
Имеется функция:

Цитата:
function complete_mail() {

mail($to, $subject, $mess, $header);
}

Email,на который должно уйти письмо, хранится в базе SQL.

Когда вытаскиваю email из базы и пытаюсь запихнуть его в $to письмо не отправляется.

Как заставить скрипт отправлять письмо на тот емаил, который я вытаскиваю из базы?
zmey1 вне форума Ответить с цитированием
Старый 01.09.2011, 10:59   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ваша функция complete_mail() не получает ни одного параметра, не видно также объявления глобальных переменных.
С какой радости она будет что-либо отправлять?

Читаем про функции.
Andkorol вне форума Ответить с цитированием
Старый 01.09.2011, 11:05   #3
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию

Я не стал закидывать весь код, параметры там заданы. Сама отправка работает если в $to='email@email.ru' я пишу мыло напрямую. А если к примеру $to='$email' то не работает.
zmey1 вне форума Ответить с цитированием
Старый 01.09.2011, 11:07   #4
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

Цитата:
Сообщение от zmey1 Посмотреть сообщение
Я не стал закидывать весь код, параметры там заданы.
закиньте таки, вдруг у Вас код неверный...

а нафига $to = '$email', а не $to = $email ?
Minus_yu вне форума Ответить с цитированием
Старый 01.09.2011, 11:15   #5
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию

И так пробовал - не работает.

Цитата:
<?
include("../config/conf.php");

$number=$_GET['number'];

$db_link = mysql_connect($sql_serveur,$sql_use r,$sql_passwd);
$sql_bdd="atak";
$result=mysql_db_query($sql_bdd,"SE T NAMES 'utf8'",$db_link);

$sql_req = "select famil,email,number,name from zapros where number = $number";

$requete=mysql_db_query($sql_bdd,$s ql_req,$db_link);

$famil = mysql_result($requete, 0, 0);
$email = mysql_result($requete, 0, 1);

$number = mysql_result($requete, 0, 2);
$name = mysql_result($requete, 0, 3);


echo $famil."<br/>";
echo $name."<br/>";
echo $number."<br/>";


if (!$famil) {
echo $text_error;
exit;
}

if (!$email) {
echo $text_error;
exit;
}

?>
<?

function show_form()
{
?>



<form name="forma zakaza" action="" method="POST">


<input type="submit" value="Отправить" name="submit">

</form>


<?
}

function complete_mail() {


$_POST['mail'] = substr(htmlspecialchars(trim($_POST['mail'])), 0, 50);

$mail=$_POST['mail'];

$to = $mail;
// $from - от кого
$subject="Запрос на отпуск";
$header="Content-Type: text/html; charset=utf-8";

mail($to, $subject,

//Фамилия, имя, отдел, дата.
"
Привет

"
, $header);


}


if (!empty($_POST['submit'])) complete_mail();
else show_form();



?>
zmey1 вне форума Ответить с цитированием
Старый 01.09.2011, 11:19   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

echo $to; перед функцией mail() что выведет у вас?
Andkorol вне форума Ответить с цитированием
Старый 01.09.2011, 11:20   #7
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

ну все правильно...

только вот так, наверное было бы лучше

PHP код:
function complete_mail($post) {
$post['mail'] = substr(htmlspecialchars(trim($post['mail'])), 050);
$mail=$post['mail'];
$to $mail;
// $from - от кого
$subject="Запрос на отпуск";
$header="Content-Type: text/html; charset=utf-8";
mail($to$subject,
//Фамилия, имя, отдел, дата.
"
Привет
"
$header);

/*...*/
if (!empty($_POST['submit'])) complete_mail($_POST);
else 
show_form(); 
Minus_yu вне форума Ответить с цитированием
Старый 01.09.2011, 11:37   #8
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию

Я много способов перепробовал, самый первый это просто тупо из базы в переменную а из переменной в $to, потом попробовал через POST, в $_POST['mail'] находится значение из инпута, в который в свою очередь вставляется значение из базы, но всеравно ниче не вышло.

Вот я немного отредактировал, чтобы было понятней:

Цитата:
<?
include("../config/conf.php");

$number=$_GET['number'];

$db_link = mysql_connect($sql_serveur,$sql_use r,$sql_passwd);
$sql_bdd="atak";
$result=mysql_db_query($sql_bdd,"SE T NAMES 'utf8'",$db_link);

$sql_req = "select famil,email,number,name from zapros where number = $number";

$requete=mysql_db_query($sql_bdd,$s ql_req,$db_link);

$famil = mysql_result($requete, 0, 0);
$email = mysql_result($requete, 0, 1);

$number = mysql_result($requete, 0, 2);
$name = mysql_result($requete, 0, 3);


echo $famil."<br/>";
echo $name."<br/>";

echo $number."<br/>";


if (!$famil) {
echo $text_error;
exit;
}

if (!$email) {
echo $text_error;
exit;
}

?>
<?
function show_form()
{
?>
<form name="forma zakaza" action="" method="POST">


<input type="text" name="mail" value="<?=$email?>" size="30">
<input type="submit" value="Отправить" name="submit">

</form>
<?
}

function complete_mail() {




$_POST['mail'] = substr(htmlspecialchars(trim($_POST['mail'])), 0, 40);

$to = $_POST["mail"];
// $from - от кого
$subject="Запрос на отпуск";




$header="Content-Type: text/html; charset=utf-8";



mail($to, $subject,

//Фамилия, имя, отдел, дата.
"
Привет

"

, $header);



}


if (!empty($_POST['submit'])) complete_mail();
else show_form();



?>
zmey1 вне форума Ответить с цитированием
Старый 01.09.2011, 11:39   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Повторяем ещё раз:
Цитата:
Сообщение от Andkorol Посмотреть сообщение
echo $to; перед функцией mail() что выведет у вас?
Andkorol вне форума Ответить с цитированием
Старый 01.09.2011, 12:12   #10
zmey1
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 30
По умолчанию

Если я делаю так
$to=$email;

а потом

echo $to."<br/>";

То появляется емаил выдернутый из базы.
Но дальше идет функция mail() и она не видит $to или еще чето
zmey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка e-mail сообщения с форматированием через SMTP chandrasecar Работа с сетью в Delphi 1 10.09.2014 21:29
Отправка на e-mail romanzi Работа с сетью в Delphi 18 08.03.2014 14:09
Отправка e-mail через JavaScript Gambler Общие вопросы по Java, Java SE, Kotlin 1 30.05.2007 14:03