Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 8

Нужно вставить функцию в mail()

06.02.2017, 18:48. Показов 936. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня такая проблема:
Я отправляю сообщение на майл в котором через html вставляю таблицу.
Столбцы и строки таблицы вставляются при помощи массива.
Суть в том что у меня есть документ в котором в каждой строке записано имя, я через file(имя_файла) записываю каждую строку документа как элемент массива и получается что в каждом элементе массива находится имя.
Когда я отправляю сообщение функцией mail() я вставляю функцию foreach() которая пройдясь по каждой строке массива выводит ее и получается что строка столбца который я отправляю содержит имя, foreach() должен пройтись по каждой строке и вывести ее и в отправленном письме должна быть таблица в которой некоторое количество строк с разными именами, имена те же что и в массиве, получается что строка столбца это элемент массива.
Проблема в том что у меня не получается записать foreach() в mail().
Вот код.
Очень надеюсь на помощь.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$filename = "$id_ses.txt";
$lines = file($filename);
 
$message = "
        <html>
        <head>
        </head>
        <body>
        <h4 align='center'>Empire_iPhone</h4>
        <hr>
        <p>Здравствуйте $name</p>
        <p>Вами был оформлен заказ на сайте Empire_iPhone</p>
        <p>E-mail: $mail<br>Телефон: $number<br>Адрес проживания: $adres<br>Способ оплаты: $oplata<br><br>
        <table>
        <tr><td>№</td><td>Фото</td><td>Название</td><td>Цена</td></tr>
        /*Вот тут начало проблемы*/
        foreach ($lines as $line_num => $line) {
        $echo = $line; 
        $echoh = explode(':', $echo); 
        echo '<tr><td>№</td><td>Фото</td><td>$echoh[0]</td><td>Цена</td></tr>';
        }
        /*Тут конец*/
        </table>
        <br></p>
        <p>Благодарим за ваш заказ</p>
        <hr>
        <p>С уважением интернет магазин Empire_iPhone</p>
        <h4>8(999)965-93-95</h4>
        </body>
        </html>
        ";
mail($mail, "Покупка товара на сайте Empire_iPhone", /*Вот тут он ту функцию которую я написал так и отправляет как просто текст*/$message, "Content-Type: text/html; charset=UTF-8\r\n");
?>
Мне кажется я что-то не правильно делаю с кавычками и с обозначением языка на котором пишу.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2017, 18:48
Ответы с готовыми решениями:

Используя функцию mail() не приходят письма
всем привет, столкнулся с такой проблемой , что используя функцию mail() не приходят письма, но функция сама отрабатывает $headers =...

Стоит ли использовать функцию mail() в цикле?
Вот здесь: http://php.net/manual/ru/function.mail.php пишут, что для отправки большого количества писем эту функцию не стоит использовать....

Не отправляется почта используя функцию mail()
Поривет всем! Настраиваю сервер на linux, Проблема собственно вот в чём не отправляется почта из скрипта! В настройках php.ini, по...

6
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
06.02.2017, 18:59
Где начало проблемы, завершите строку (закройте кавычку и поставьте точку с запятой).

В цикли дописывайте к той же строке фрагменты при помощи операции .= и после цикла так же допишите завершающую часть.

Добавлено через 3 минуты
В одинарных кавычках подстановка $echoh[0] работать не будет. Нужно либо объединять конкатенацией со строками слева и справа, либо заключать всю строку в дв. кавычки, а подстановку в фиг. скобки.
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 8
06.02.2017, 18:59  [ТС]
А вы можете скопировать мой код, внести правки и вставить в комментарий, пожалуйста
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
06.02.2017, 19:04
Лучший ответ Сообщение было отмечено alexey_big_47 как решение

Решение

Ну конечно Вы пишете код в строке сообщения, Вам нужно сначала сформировать список и не выводить его(echo), а записать в переменную которую потом вставить в сообщение т.е. вот так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$filename = "$id_ses.txt";
$lines = file($filename);
 
/*проблемы больше нет )))*/
$message_list = '';
foreach ($lines as $line_num => $line) {
    $echo = $line; 
    $echoh = explode(':', $echo); 
    $message_list.='<tr><td>№</td><td>Фото</td><td>'.$echoh[0].'</td><td>Цена</td></tr>';
}
 
$message = "
<html>
<head>
</head>
<body>
<h4 align='center'>Empire_iPhone</h4>
<hr>
<p>Здравствуйте $name</p>
<p>Вами был оформлен заказ на сайте Empire_iPhone</p>
<p>E-mail: $mail<br>Телефон: $number<br>Адрес проживания: $adres<br>Способ оплаты: $oplata<br><br>
<table>
<tr><td>№</td><td>Фото</td><td>Название</td><td>Цена</td></tr>".$message_list."
</table>
<br></p>
<p>Благодарим за ваш заказ</p>
<hr>
<p>С уважением интернет магазин Empire_iPhone</p>
<h4>8(999)965-93-95</h4>
</body>
</html>
";
mail($mail, "Покупка товара на сайте Empire_iPhone", /*Вот тут он ту функцию которую я написал так и отправляет как просто текст*/$message, "Content-Type: text/html; charset=UTF-8\r\n");
?>
Добавлено через 2 минуты
Цитата Сообщение от miketomlin Посмотреть сообщение
В одинарных кавычках подстановка $echoh[0] работать не будет. Нужно либо объединять конкатенацией со строками слева и справа, либо заключать всю строку в дв. кавычки, а подстановку в фиг. скобки.
Да это тоже верно
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
06.02.2017, 19:05
Цитата Сообщение от Igsit Посмотреть сообщение
PHP
1
$message_list.='<tr><td>№</td><td>Фото</td><td>$echoh[0]</td><td>Цена</td></tr>';
Цитата Сообщение от Igsit Посмотреть сообщение
Да это тоже верно
PHP
1
$message_list.="<tr><td>№</td><td>Фото</td><td>$echoh[0]</td><td>Цена</td></tr>";
0
142 / 142 / 63
Регистрация: 18.07.2014
Сообщений: 473
06.02.2017, 19:08
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Почему эта строка не сработает, знаете?
Поправил уже в коде

Добавлено через 2 минуты
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
PHP
1
$message_list.="<tr><td>№</td><td>Фото</td><td>$echoh[0]</td><td>Цена</td></tr>";
так тоже можно, но я предпочитаю одинарные кавычки и переменные выводить из строки текста, так их виднее и меньше проблем
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 8
06.02.2017, 19:16  [ТС]
Сделал вот так, все работает, большое спасибо!!!

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
foreach ($lines as $line_num => $line) {
    $echo = $line; 
    $echoh = explode(":", $echo); 
    $message_list.='<tr><td>№</td><td>Фото</td><td>'.$echoh[0].'</td><td>Цена</td></tr>';
}
                
$message = "
    <html>
    <head>
    </head>
    <body>
    <h4 align='center'>Empire_iPhone</h4>
    <hr>
    <p>Здравствуйте $name</p>
    <p>Вами был оформлен заказ на сайте Empire_iPhone</p>
    <p>E-mail: $mail<br>Телефон: $number<br>Адрес проживания: $adres<br>Способ оплаты: $oplata<br><br>
    <table>
    <tr><td>№</td><td>Фото</td><td>Название</td><td>Цена</td></tr>"
    .$message_list.
    "</table>
    <br></p>
    <p>Благодарим за ваш заказ</p>
    <hr>
    <p>С уважением интернет магазин Empire_iPhone</p>
    <h4>8(999)965-93-95</h4>
    </body>
    </html>
";
mail($mail, "Покупка товара на сайте Empire_iPhone", $message, "Content-Type: text/html; charset=UTF-8\r\n");
?>
 Комментарий модератора 
Оформляйте код в тэги форматирования: [PHP]Ваш код[/PHP].
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2017, 19:16
Помогаю со студенческими работами здесь

Отправка писем через функцию mail();
всем привет!... встал вопрос отправки писем по базе зарегистрированных пользователей которые имеются на сайте. создал код - все...

Отправка писем через функцию mail();
всем привет!... столкнулся с такой проблемой то, что не могу отправить письма по всей базе данных! в базе 10 348 электронных ящиков....

Отправка писем через функцию mail(); и решения с ЧС
всем привет! столкнулся с такой проблемой как отправка писем через функцию mail(); и с черным списком. у меня есть база клиентов - со...

Настройка отправки почты через функцию mail
Добрый день! Не могу настроить отправку сообщений Подключение к БД есть, проверял значение переменных, все впорядке. Сообщение на мейл не...

При отправке почты через функцию mail() письма попадают в спам
код отправки писем $to = &quot;web-d0y4h@mail-tester.com&quot; ; $subject = $_POST; $text=''; if (isset($_POST)) {$text.='Имя:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru