电子邮件通讯php不工作

时间:2015-05-05 02:57:38

标签: php newsletter

我正在使用模板而我的简报不起作用。我已经在网上有这个网站。

if($_POST){

    $fileName = 'newsletter.txt'; //set 777 permision for this file. 
    $error = false;

    $email = $_POST['email'];

    if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) 
        $error = true;


    //If all ok, save emali adress in file
    if($error == false){
        $file = fopen($fileName, a);
        fwrite($file, "$email,");
        fclose($file);
        echo 'OK';
    }
}

那是html and the php part

<div class="span7">
    <form class="inline-form">
        <input type="email" name="email" id="nlmail" class="span8" placeholder="Ingresá tu email" required />
        <button id="subscribe" class="button button-sp">Suscribite!</button>
    </form>
    <div id="err-subscribe" class="error centered">Por favor dejá un mail valido </div>
</div>

2 个答案:

答案 0 :(得分:1)

您需要在POST内明确设置<form>才能使其正常工作:

<form class="inline-form" method="POST">

请注意,省略时默认为GET

旁注:如果这是一个拼写错误,你应该修改这一行:

$file = fopen($fileName, a); // missing quotes on "a"

这些模式需要以字符串形式传递:

$file = fopen($fileName, 'a');

答案 1 :(得分:0)

嗯,在这里,HTML表单将数据作为GET发送,而php正在等待POST。

更改HTML表单以将数据作为POST发送。

 <form class="inline-form">

应该是

 <form class="inline-form" method="POST">

另外,如果电子邮件变量为空,请尝试调试。多数民众赞成你怎么找错了。

而且,fopen模式应该在引号中,除非它是变量。

$file = fopen($fileName, "a");

干杯!