[英]PHP Post Method Not Working
我肯定已经问过这个问题,对此我深表歉意。
就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 Digital Ocean VPS上具有PHP 5.5.9版
我还编辑了php.ini文件以启用register_globals,但这无济于事,因此,在我阅读到这是一个安全问题后,我将其关闭。
任何帮助将不胜感激,非常感谢。
这个答案是在另一个上下文中然后是一个问题,因为我是在这里检查解决方案的。
我正在发布( method="post"
)表单,但未发布数据。 当我用print_r($_POST)
检查数据时,我得到的是空白数组。 我在服务器上多次感觉到此问题。
导致此错误的原因是从.htaccess
文件重定向。
有时我们的网站运行在http://www.example.com/ *上,并且我们在.htaccess中创建了规则,以将对http://example.com/ *的所有请求重定向到http:// www。 example.com/ *,反之亦然。
如果邮寄请求到其他位置,则会发生此问题。 因此,请确保发布url的起始字符串应该相同(www或不带www的url) 。
我在同一问题上花了很多时间,但是在stackoverflow的任何地方都找不到解决方案。 所以我给出了解决方案。
尝试在与save-email.php
相同的目录中创建一个名称submitted-emails.txt
的文件, save-email.php
所有用户的文件权限更改为+w
。
好吧,您确定发帖不起作用吗,请检查发帖方法是否包含数据,或者通过使用。
var_dump($_POST); and var_dump($_REQUEST);
如果您在帖子中未找到电子邮件ID,则将在请求中,如果是,则您的请求是通过get方法提交的。
如果它显示一个数组,并且在帖子中输入了电子邮件,则说明您的帖子方法正在工作,并且问题是由于安全问题/路径错误或文件许可而导致文件文件无法打开。 因此,请检查并告知我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.