Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
虽然post成功,但php表单仍会转到空白页_Php_Forms_Csv - Fatal编程技术网

虽然post成功,但php表单仍会转到空白页

虽然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新手,尝试将这两个变量从另一个页面的表单添加到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($file);
?>

此脚本确实运行并且文件确实被写入,但存在两个问题:

  • 它似乎覆盖了现有的文件,而不是附加

  • 单击submit会将我带到一个空白页面,其中Url=此php的位置 剧本

  • 表单在弹出窗口中,我只想单击一次关闭该窗口,而不是将我带到其他地方

    以下是表格:

    <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");