虽然post成功,但php表单仍会转到空白页
我是php新手,尝试将这两个变量从另一个页面的表单添加到csv文件中虽然post成功,但php表单仍会转到空白页,php,forms,csv,Php,Forms,Csv,我是php新手,尝试将这两个变量从另一个页面的表单添加到csv文件中 <?php $email = $_POST['Email_Address']; $full_name = $_POST['Full_Name']; $entry = $full_name; $entry .= ","; $entry .= $email; $file = fopen("contacts.csv","w"); fputcsv($file,explode(',',$entry)); fclose($fil
<?php
$email = $_POST['Email_Address'];
$full_name = $_POST['Full_Name'];
$entry = $full_name;
$entry .= ",";
$entry .= $email;
$file = fopen("contacts.csv","w");
fputcsv($file,explode(',',$entry));
fclose($file);
?>
此脚本确实运行并且文件确实被写入,但存在两个问题:
<form method="post" action="php-forms/subscribeform.php">
<input placeholder="Name" type="text" name="Full_Name" id="Full_Name" required />
<input placeholder="Email" type="email" name="Email_Address" id="Email_Address" required />
<input class="formBtn" type="submit" />
<input class="formBtn" type="reset" />
</form>
我看不到任何错误(我启用了错误检查)
如何完成此操作?您在
fopen()
中使用的是'w'
而不是'a'
,这就是文件总是被覆盖的原因。然后,您可以使用数组来使用fputcsv()
,而不是创建字符串并将其分解,因为如果字符串包含逗号,您将写入三个值,而不是两个值
从文件:
a只供写作使用;将文件指针放在文件末尾。如果文件不存在,请尝试创建它。在此模式下,fseek()无效,写入操作始终附加。
w
只供写作使用;将文件指针放在文件的开头,并将文件截断为零长度。如果文件不存在,请尝试创建它
请注意,在写入和使用这些值之前,您应该检查发布值的内容。您在
fopen()
中使用的是'w'
而不是'a'
,这就是文件总是被覆盖的原因。然后,您可以使用数组来使用fputcsv()
,而不是创建字符串并将其分解,因为如果字符串包含逗号,您将写入三个值,而不是两个值
从文件:
a只供写作使用;将文件指针放在文件末尾。如果文件不存在,请尝试创建它。在此模式下,fseek()无效,写入操作始终附加。
w
只供写作使用;将文件指针放在文件的开头,并将文件截断为零长度。如果文件不存在,请尝试创建它 请注意,在写入和使用发布的值之前,您应该检查它们的内容。1)要追加,请使用“a”标志() 2) 提交后您会被重定向到一个空白页面,因为当您发布到该url时,您会执行php文件中的逻辑。因为它可能不输出任何html,所以它是一个空白页。为此,可以使用javascript异步发布。请看这里,使用“a”标志()
2) 提交后您会被重定向到一个空白页面,因为当您发布到该url时,您会执行php文件中的逻辑。因为它可能不输出任何html,所以它是一个空白页。为此,可以使用javascript异步发布。请看这里使用javascript覆盖表单的默认行为,并通过ajax发送。或在发布后重定向回上一页。您可以使用带有file\u APPEND标志的
file\u put\u contents()
。使用javascript覆盖表单的默认行为,并通过ajax发送。或在发布后重定向回上一页。您可以使用带有file\u APPEND标志的file\u put\u contents()
。
// first, check the existance of your variables:
if (isset($_POST['Email_Address']) && isset($_POST['Full_Name']))
{
$email = $_POST['Email_Address'];
$full_name = $_POST['Full_Name'];
// create an array with your values
$entry = [$full_name, $email];
// use 'a' to Append.
$file = fopen('contacts.csv', 'a');
fputcsv($file, $entry);
fclose($file);
}
// then redirect
header("Location: /");
exit;
$file = fopen("contacts.csv","a");