我正在使用模板而我的简报不起作用。我已经在网上有这个网站。
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';
}
}
<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>
答案 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");
干杯!