使用PHP将HTML表单中的数据保存到.CSV filve中

时间:2016-04-17 21:56:32

标签: php html forms csv

我正在努力从我的表单中获取数据并通过PHP将其保存为CSV文件。这段代码不起作用,我没有想法如何解决它。我将其保存到CSV文件的方式有什么问题吗?我很感激你的帮助。

代码应该以这种方式工作:我希望用户将一些数据输入到HTML表单。然后使用AJAX和PHP我想将它保存到csv文件。保存不起作用 - 文件保持为空。

 <!DOCTYPE html>
    <html>
    <body>

<h2>AJAX</h2>
<script>
<?php
if(isset($_POST['submit'])){

    //collect form data
    $name = $_POST['name'];
    $email = $_POST['email'];

    //check name is set
    if($name ==''){
        $error[] = 'Name is required';
    }

    //check for a valid email address
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
         $error[] = 'Please enter a valid email address';
    }

    //if no errors carry on
    if(!isset($error)){

        # Title of the CSV
        $Content = "Name, Email\n";

        //set the data of the CSV
        $Content .= "$name, $email\n";

        # set the file name and create CSV file
        $FileName = "sth.txt"//"formdata-".date("d-m-y-h:i:s").".csv";
       // header('Content-Type: application/csv'); 
      //  header('Content-Disposition: attachment; filename="' . $FileName . '"'); 
        echo $Content;
        exit();
    }
}

//if their are errors display them
if(isset($error)){
    foreach($error as $error){
        echo "<p style='color:#ff0000'>$error</p>";
    }
}
?> 
</script>
<form action='' method='post'>
<p><label>Name</label><br><input type='text' name='name' value=''></p> 
<p><label>Email</label><br><input type='text' name='email' value=''></p> 
<p><input type='submit' name='submit' value='Submit'></p> 
</form>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

您评论了;字符

变化:

$FileName = "sth.txt"//"formdata-".date("d-m-y-h:i:s").".csv";

要:

$FileName = "sth.txt";//"formdata-".date("d-m-y-h:i:s").".csv";

此外,我看不到您将数据保存到文件的位置。

所以使用这个例子:

$FileName = "sth.txt";
file_put_contents($FileName, $Content);