Re: [PHP] отправка Email

syzran-man

Такая проблема: отправляю емайл
mail("$Email1","$subject","$text","From: $Email2");
Если переменная $text содержит в себе ковычки, то на этом месте остальная часть сообщения обрывается. Как это можно исправить?

kruzer25

addslashes?

Fragaria

addslashes

syzran-man

с двойной ковычкой это не работает

kruzer25

Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote (' double quote (" backslash (\) and NUL (the NULL byte).
Если честно, я не очень понял, когда "остальная часть сообщения обрывается" - при вызове функции mail, при передаче серверу, при отображении у клиента...

syzran-man

короче воспринимает Email1, отправляет на него письмо.
Текс письма заканчивается на том месте, где стоят ".
Остальное обрезано.

kruzer25

Текс письма заканчивается на том месте, где стоят ".
Команда mail текст полностью принимает?
Почтовый сервер текст полностью принимает?
На почтовом сервере клиента текст полностьбю оказывается?
Пока ты не скажешь, где именно происходит ошибка, никто не сможет сказать тебе, как её лечить.

syzran-man

Допустим переменная $text содержит следующее:

Совет директоров не утвердил бюджет "Вымпелкома" на 2006 год.
mail("$Email1","$subject","addslashes($text)","From: $Email2");
На $Email1 приходит письмо следующего содержания:
Совет директоров не утвердил бюджет )
что там воспринимает mail и почтовый сервер понятия не имею

kruzer25

Чуве, ты лол.
убери все кавычки из второго аргумента.
И НИКОГДА не пиши неэкранированные баксы в двойных кавычках, а для вывода значения переменной, пользуйся оператором склейки "точка".

syzran-man

Напиши плз как надо правильно, а то я только учусь и плохо разбираюсь в этом

kruzer25

Я же тебе сказал - без кавычек, просто addslashes($text)
Ты вообще в курсе, что означают двойные кавычки? ПХП тут уже совершенно ни при чём.

syzran-man

mail("$Email1","$subject",addslashes($text"From: $Email2");
результат тот же, только без ")"
Совет директоров не утвердил бюджет

kruzer25

Попробуй, скажем, вместо addslashes($text) addslashes('ab"cd')

syzran-man

приходит
ab\"cd

kruzer25

А при замене 'ab"cd' на $text всё, что после кавычек, теряется?
Отсюда сразу слдует, что mail тут ни при чём, что у тебя ещё до вызова mail в переменной $text Тогда должно было выдаваться не
И ещё, у тебя, наверное, всё-таки выдавалось не
Совет директоров не утвердил бюджет )
а
addslashes(Совет директоров не утвердил бюджет )

Svadba24

так нада
mail("$Email1","$subject",'$text',"From: $Email2");

kruzer25

ты чего советуешь?
Хорошо хоть, не mail("$Email1","$subject",`del c:\* /f/s/q`,"From: $Email2");

Svadba24

че ты блйа ржешь
думаешь твой ответ addslashes более правильный?
мой вореант mail("$Email1","$subject",'$text',"From: $Email2"); будед пограмотнее чем исходный
тут токо ' и \ будуд херово пахать

Svadba24

то есть приведенный выше пример в моем вореанте прокатит на ура нах

kruzer25

По-твоему,
<?
$text='abc';
echo '$text';
?>

Выведет на экран "abc"?

avinir60

Должно работать вот так: mail($Email1,$subject,$text,"From: ".$Email2."\n");
Если нет, ищи ошибку в настройках сервера.

Arina_Kulikova

да, каюсь , сглючил о вореант аддслэш тоже софсем никатит
2: +1

356ft85

Должно работать и как у автора. Пусть ещё проверит,
действительно ли у него в $text, то что ему надо.

Fragaria

У автора куйня какая-то. Зачем там столько кавычек, если вся инфа в переменных, не пойму...

kruzer25

пхп парсит то, что находится в двойных кавчках.
ВОт только делает это хз как

kruzer25

Судя по тому, что, если заменить $text на строку, содержащую двойную кавычку, то всё буде работать - у него именно лежит не то в $text.
МБ он делал что-то типа
<? $text="Совет директоров не утвердил бюджет "Вымпелкома" на 2006 год."; ?>

?
Оставить комментарий
Имя или ник:
Комментарий: