我很抱歉提出这个问题,我确信之前已经完成了。
就PHP而言,我并不知情,所以我对此所做的研究毫无结果。
我购买并使用了一个HTML模板,底部有一个电子邮件订阅表单。该表单应该捕获输入的电子邮件并将其添加到文本文件中,其中包含我所理解的已提交电子邮件列表。
以下是页脚中html的摘录:
<form action="save-email.php" method="post" style="margin-top: 0px;">
<input type="text" name="email" placeholder="Get email updates...">
</form>
以下是相应的save-email.php文件的内容:
<?php
$email = $_POST['email'];
$fp = fopen('submitted-emails.txt', 'a');
$savestring = $email . '
';
fwrite($fp, $savestring);
fclose($fp);
header('Location: ' . $_SERVER['HTTP_REFERER']);
?>
我已经联系过几位告诉我的创作者,以确保我的PHP版本是最新的,这是一个服务器配置错误,所以他们不会帮助我进一步...
我在Ubuntu 14.04数字海洋VPS上有PHP版本5.5.9
我还编辑了php.ini文件以打开register_globals,但这没有用,所以我把它关掉了,因为我读过这是一个安全问题。
非常感谢任何帮助,非常感谢。
答案 0 :(得分:2)
这个答案在另一个背景下然后问题因为我来这里检查解决方案。
我发布了(method="post"
)表单,但没有发布数据。当我用print_r($_POST)
检查数据时,我得到了空白数组。
我在服务器上多次感受到这个问题。
此错误的原因是从.htaccess
文件重定向。
有一段时间我们的网站正在http://www.example.com/ *上运行,我们在.htaccess中创建了规则,将所有请求重定向到http://example.com/ *到http://www.example.com/ *,反之亦然。< / p>
如果发布请求位于不同位置,则会出现此问题。所以确保帖子网址起始字符串应该相同(www或没有www检查网址)。
我花了很多时间在同一个问题上,但无法在stackoverflow中找到任何解决方案。所以我给出了解决方案。
答案 1 :(得分:0)
尝试在submitted-emails.txt
的同一目录中创建名为save-email.php
的文件,并将文件权限更改为+w
所有用户。
答案 2 :(得分:0)
嗯,你确定发帖不起作用,请查看发布方法是否包含数据。
var_dump($_POST); and var_dump($_REQUEST);
如果您没有在帖子中找到电子邮件ID,那么它将在请求中,如果是,那么您的请求是通过get方法提交的。
如果它显示一个数组,其中包含邮件中输入的邮件,那么您的邮政方法正在工作,问题是文件文件由于安全问题/错误路径而无法打开,或者可能是由于文件权限。所以检查并告诉我。