Создание списка рассылки (PHP) - PullRequest
2 голосов
/ 28 января 2010

У меня есть веб-сайт, где у меня есть два текстовых поля для ввода информации. Моя кнопка «Отправить» приказывает PHP-файлу взять информацию в двух текстовых полях и скопировать / вставить ее в текстовый файл с именем «Members.txt». Цель состоит в том, чтобы взять информацию из текстовых полей и создать список рассылки. Теперь моя проблема в том, что я знаю, что PHP-файл вызывает текстовый файл, потому что каждый раз, когда я нажимаю на submit, я вижу на своем ftp, что текстовый файл был отредактирован в то же время, когда я пытаюсь отправить его отдельно , Кроме того, текстовый файл пытается поместить информацию в текстовый файл, поскольку я вижу, что каждый раз, когда нажимается кнопка «Отправить», строки ввода текстовых файлов становятся все ниже и ниже. Другими словами, вводится полная строка. но без текста. И нет, текст не белый. Что я делаю не так?

<h2>Join our Mailing List</h2>
   <form method="post" action="add.php" name="signup">
   <input type="hidden" name="pommo_signup" value="true" />
   <table border="0" bordercolor="#000000"
    bordercolordark="#000000" bordercolorlight="#000000">
     <tr>
       <td width="203" bgcolor="#FFFFFF">&nbsp;</td>
       </tr>
     <tr>
       <td bgcolor="#FFFFFF"> NAME:  <font size="4">
         <input name="name"
            type="text" size="20" maxlength="100" />
       </font></td>
       </tr>
     <tr>
       <td height="26" bgcolor="#FFFFFF"> EMAIL: <font size="4">
         <input name="email"
            type="text" size="20" maxlength="100" />
         </font></td>
       </tr>
     <tr>
       <td height="31" bgcolor="#FFFFFF"><span style="text-align: left"></span><p align="middle">
         <input type="image" src="ok.jpg" />
       </p></td>
       </tr>
     </table>
   </form>

THEN BELOW IS THE FORM THAT IS SUPPOSED TO ADD TO THE TEXT BOX.

<?php
$filename = "members.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);
if(strstr($contents,$email)) { 
print "You're already subscribed to this mailing list.";
}
else {
echo "Thank you $email for joining the mailing list";
if (!$save = fopen("members.txt","a")) {
exit;
}
fwrite($save,"$email\r\n");
fclose($save);
if (!$save = fopen("names.txt","a")) {
exit;
}
fwrite($save,"$name\r\n");
fclose($save);
mail("$email", "Fairview HiFi News Letter", "Welcome to the Fairview HiFi mailing list. Your exclusive source for product and promotional news and events.",
     "From: Newsletter@FairviewHiFi.com\r\n"
    ."Reply-To: NOREPLY@FairviewHiFi.com\r\n"
    ."X-Mailer: PHP/" . phpversion());
}
?>

Ответы [ 3 ]

3 голосов
/ 28 января 2010

Используйте $_POST['email'], а не $email.

Ваш сервер отключил глобальные переменные регистров, что означает, что входные данные форм (и переменные GET) не доступны автоматически в виде $formFieldName, поэтому вы должны использовать $ _POST / GET / COOKIE /...

И не меняйте этот параметр, это огромная дыра в безопасности, если вы включите глобальные регистры.

1 голос
/ 28 января 2010

На опубликованные переменные нужно ссылаться через $_POST. Таким образом, ваш адрес электронной почты будет:

print $_POST["email"];

И не просто $email. Кроме того, поскольку вы добавляете новые строки, вы можете найти менее подробное решение, которое будет привлекательным. См. file_put_contents() с флагом FILE_APPEND:

<?php
  $file = 'people.txt';
  // The new person to add to the file
  $person = "John Smith\n";
  // Append the contents of $person to the file named by $file.
  file_put_contents($file, $person, FILE_APPEND);
?>
0 голосов
/ 31 мая 2012

Есть несколько альтернатив с открытым исходным кодом для создания собственного списка рассылки. Создание приложения для списка рассылки в промышленном масштабе - нетривиальная задача. Если вам нужны скрипты списка рассылки php, вы можете воспользоваться одним из следующих вариантов. PHPList (http://www.phplist.com) отождествлялась • Он имеет встроенные шаблоны электронной почты с мощным редактором WYSIWYG, который делает создание и развертывание приложений новостной рассылки легким делом даже для тех, кто не имел опыта программирования на php. • Кроме того, он также поддерживает такие функции, как RSS, сегментация списка, отслеживание кликов, управление отказами вложений и т. Д. Cons- • Багги и трудно настроить пользовательский интерфейс • Сложно настроить внешний вид интерфейса в соответствии с существующим веб-сайтом

poMMO (http://www.pommo.org) Pros • Очень просто сопоставить внешний вид формы подписки с существующим веб-сайтом или встроить форму подписки в существующую веб-страницу. • WYSIWYG HTML редактор рассылки • Он также предоставляет лимит отправки писем и предоставляет возможность ограничения по часам, байтам или ограничениям домена. • Обеспечивает локализацию и поддержку 10 других языков, кроме английского

OpenEMM (http://www.openemm.org)

Pros • Сложные функции, которых нет в других менеджерах списков подписчиков электронной почты с открытым исходным кодом, такие как управление отказов, отслеживание ссылок, статистика в реальном времени и поддержка сценариев. • Использует и поддерживает ведущие Java-инфраструктуры, такие как Hibernate, Spring и Struts.

Cons- • Огромная база кода, которая может привести к снижению времени загрузки страницы. • Может считаться излишним, если требуется только базовое управление рассылкой по электронной почте. • Может поддерживаться не всеми веб-серверами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...