- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ситуация следующая: есть 2 страницы с формами, каждая из которых отправляет письмо на мыло после заполнения соответственно приходят 2 разных письма. Реально ли сделать, чтобы из этих двух форм формировалось одно письмо?
Процесс происходит так:
Заходим на страницу с первой формой, заполняем, жмем submit, php отправляет письмо на мыло и редиректит на страницу со второй формой, далее аналогично - заполнение, отправка письма - спасибо.
Заносите первое письмо в базу данных (или даже в файл сохраняйте).
После заполнения второй формы - объедините.
Только страная схема отправки писем - никак в одну форму не объединить?
Реально ли сделать, чтобы из этих двух форм формировалось одно письмо?
Реально.
Но, если заполнена только первая форма, письмо, отправляемое после заполнения второй просто не дойдёт.
Заносите первое письмо в базу данных (или даже в файл сохраняйте).
После заполнения второй формы - объедините.
Только страная схема отправки писем - никак в одну форму не объединить?
не моя причуда)
а если сохранить данные из первого письма в file.txt, то как эти данные передать в file.php, который обрабатывает вторую форму, и как эти данные сразу после отправки оттуда удалить?
Вот первый файл, который заносит данные в .txt
$data1=$_POST["data11"];
$data2=$_POST["data22"];
$log = fopen("database.txt","at");
fwrite($log,"Данные 1:$data1\nДанные2:$data2\n");
fclose($log);
а если сохранить данные из первого письма в file.txt, то как эти данные передать в file.php, который обрабатывает вторую форму, и как эти данные сразу после отправки оттуда удалить?
Ну если уж совсем криво, но быстро - хоть в сессии сохраняйте и оттуда берите.
С файлами не работал бы, лучше в базу данных.
Реализация от вас зависит, делайте как проще.
Ну если уж совсем криво, но быстро - хоть в сессии сохраняйте и оттуда берите.
С файлами не работал бы, лучше в базу данных.
Реализация от вас зависит, делайте как проще.
в том то и дело, что в БД не вариант, только в файл
---------- Добавлено 19.02.2014 в 09:19 ----------
без БД никак?
в БД не вариант
почему? 100 рублей на хостинг нет? или религия не позволяет?
без БД никак?
Выше подсказал вариант - хоть в сессию пишите.
Можно в файл.
Но я же не знаю ваших потребностей и важности сохранности данных.
почему? 100 рублей на хостинг нет? или религия не позволяет?
Выше подсказал вариант - хоть в сессию пишите.
Можно в файл.
Но я же не знаю ваших потребностей и важности сохранности данных.
БД - тут не в хостинге дело, в заказчике)))
А как в сессию записать данные из txt-файла не подскажете?
Помимо создания сессии и сохранения её данных при переходах между страницами существует еще одна очень полезная возможность. Что если мы могли бы сохранить данные одной сессии для использования в другой, возвращаясь к информации, которая была сохранена несколько дней назад? PHP предоставляет эту возможность, позволяя сохранять данные сессии в файле.
Особенно полезным примером применения этой возможности является получение и использование имени пользователя и пароля. Например, можно создать страницу авторизации, где посетитель вводит свой идентификатор (например, адрес электронной почты) и пароль, на основе этого идентификатора вы извлекаете сохраненные данные прошлой сессии и выводите остальные страницы сайта, настроенные на основе данных сессии, которые получены из файла. Конечно, в таком проекте понадобится гораздо больше кода, чем показано в данной статье, но методы, которые используются для сохранения и извлечения данных сессии, описаны здесь.
Еще одним хорошим примером является использование этой функции в сочетании с корзиной. Предположим, у вас есть корзина, которая создает заказ на основе выбора пользователя и сохраняет эту информацию под уникальным идентификатором где-либо в виде сочетания идентификатора пользователя и номера сессии.
Теперь предположим, что связь обрывается, и данные сессии потеряны. Если вы сохранили исходные данные сессии, тогда при повторном подключении и авторизации пользователей вся информация будет в сохранности и останется только вывести незаконченный заказ. Это очень обрадует покупателя!
Итак, перейдем к методике, которая достаточно проста: мы будем использовать функцию fopen для открытия файла, функцию session_encode для перекодировки данных сессии в строку, функции fputs и fclose для записи и закрытия файла. Далее приведен пример:
Как вы видите, мы создаем три переменные сессии для хранения информации, которая нам понадобится, и в данном примере просто заполняем эти переменные строковыми данными. Вам придется вспомнить работу с файловой системой при использовании функций, показанных в этом примере. Здесь мы видим, что внутри команды fputs используется функция session_encode, чтобы получить данные сессии (которые включают в себя все переменные сессии, кроме номера сессии) и перекодировать их в строку, которая будет записана в файл с помощью функции fputs.
Теперь, когда мы благополучно спрятали данные, нам понадобится метод для извлечения этих данных по мере необходимости. Для этого будем использовать функцию fgets, чтобы прочитать запись, и session_decode для извлечения данных сессии из записи:
Здесь кое-что следует отметить. Сначала создается новая сессия (вызов функции session_start находится перед всем остальным кодом), поскольку активная сессия нужна чтобы создать переменные session_variables, что и делает функция session_decode.
Затем вы заметите, что инструкции session_encode и session_decode записаны наоборот по отношению друг к другу в соответствующих функциях fputs и fgets. Считайте, что при записи функция fputs содержит session_encode; при чтении, чтобы расшифровать результат fgets, функция session_decode содержит fgets. (Технически это может быть не совсем верно говорить, что одна функция "содержит" другую, но в данном случае это очень удобно).
Другой важный момент, который не стоит упускать из виду, это область видимости переменных. В первом из вышеприведенных примеров, у нас есть конкретные операторы для определения переменной сессии, так что их область видимости может быть более очевидной, но во втором примере, переменная будет определена функцией session_decode, поэтому область видимости не так просто определить сразу. В любом случае, если определение переменной происходит внутри функции (то есть, вы написали эту инструкцию внутри некоторой функции) область видимости session_variables будет локальной для этой функции. Если это не то, что вы хотите, вы должны добавить параметр "global". Во втором примере выше, это будет означать определение глобальной области видимости для переменных до вызова функции session_decode, например:
Наконец, вы можете изменить имя используемого файла. В данных примерах мы использовали файл под названием "sessionfile.txt". Гораздо удобнее было бы использовать в качестве имени файла идентификатор пользователя или комбинацию имени пользователя и приложения (например, "vincebarnesorders.txt"), чтобы было понятно, из какого файла брать информацию, если пользователь вернется обратно.
БД - тут не в хостинге дело, в заказчике)))
Программу пишет заказчик? 😮
Или его слово БД пугает? Он его ни с чем не путает?..
А как в сессию записать данные из txt-файла не подскажете?
Блин, наймите программиста.
а что мешает в новую форму передать данные просто через POST ?
т.е. первая форма вызывает страницу в которой:
- сначала из данных POST отправляется 1-е письмо
- потом формируется вторая форма с использованием тех же данных
всякие валидаторы и коллбеки это технические детали...