php - 创建邮件列表 (PHP)

标签 php

我有一个网站,其中有两个用于信息输入的文本框。我的“提交”按钮命令一个 PHP 文件获取两个文本框中的信息,并将其复制/粘贴到名为“Members.txt”的文本文件中。目的是从文本框中获取信息并创建邮件列表。现在我的问题是我知道 PHP 文件正在调用文本文件,因为每次我点击提交时,我都可以在我的 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());
}
?>

最佳答案

使用 $_POST['email'] 而不是 $email

您的服务器已禁用注册全局变量,这意味着表单输入(和 GET 变量)不会以 $formFieldName 的形式自动可用,因此您必须使用 $_POST/GET/COOKIE/...

并且不要更改此设置,如果启用寄存器全局变量,这是一个巨大的安全漏洞。

关于php - 创建邮件列表 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156291/

相关文章:

php - Laravel - 在登录时销毁现有 session

php - 使用 PHP 服务器的 Android 聊天应用程序

php - 创建一个 GZipped tar 文件并通过 PHP 动态流式传输它?

php - 如何连续运行 PHP 脚本?

php - 如何在 Twig 中使用 PHP 模板引擎而不是 Silex 中的 Twig 语法

PHP 警告 : exec(): Unable to fork

php - 在数据库中保留电子邮件格式

php - 如何检查 PHP 变量是否包含非数字?

php - mysql 事件调度程序每天上午 8 点安排事件

javascript - 如何将 getElementById 传递给可以将数据存储到数据库的 PHP