繁体   English   中英

PHP Post方法不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM