如何在没有数据库的情况下收集数据

时间:2012-08-10 05:53:24

标签: php html5

我正在为我的网站制作一个即将推出的页面,它包括用于名称和电子邮件的文本框我正在使用asp,但现在我需要php或html5编码,因为我完成了我的项目。

我想在csv文件中插入数据,并且还可以使用php在用户电子邮件地址上发送自动生成的邮件,是否有人可以帮助我解决这个问题。  有两个文本框名称和电子邮件。 你可以给我代码,因为我是php的新手吗?

我在谷歌上找到的代码:

if($_POST['formSubmit'] == "Submit")
{
    $errorMessage = ""; 
    if(empty($_POST['name']))
    {
        $errorMessage .= "<li>without name how can we send you invitation</li>";
    }
    if(empty($_POST['email']))
    {
        $errorMessage .= "<li>i think email id is required</li>";
    }

    $name = $_POST['name'];

    $email = $_POST['email'];
        if(empty($errorMessage)) 
    {
        $fs = fopen("mydata.csv","a");
        fwrite($fs,$name . ", " . $email . "\n");
        fclose($fs);

        header("Location: werememberyou.html");
        exit;

2 个答案:

答案 0 :(得分:2)

您当前的代码中存在两个问题

  1. 通过电子邮件发送到特定条目。

    您可以使用php的直接邮件功能。或者您可以使用PHP Mailer(对于localhost测试最佳)

  2. 将条目添加到CSV文件。

    此处您可能会遇到一个问题,即在当前文件中添加新条目。所以我添加了一些你可以使用的代码。

    if($_POST['formSubmit'] == "Submit")
    {
        $errorMessage = ""; 
        if(empty($_POST['name']))
        {
            $errorMessage .= "<li>without name how can we send you invitation</li>";
        }
        if(empty($_POST['email']))
        {
            $errorMessage .= "<li>i think email id is required</li>";
        }
    
        $name = $_POST['name'];
        $email = $_POST['email'];
    
        function array_insert($array, $pos, $val)
        {
            $array2 = array_splice($array, $pos);
            $array[] = $val;
            $array = array_merge($array, $array2);
            return $array;
        } 
    
        if(empty($errorMessage)) 
        {
    
            $DataToInsert = $name.','.$email;
            $PositionToInsert = 1;
    
            //Full path & Name of the CSV File
            $FileName = 'mydata.csv';
    
            //Read the file and get is as a array of lines.
            $arrLines = file($FileName);
    
            //Insert data into this array.
            $Result = array_insert($arrLines, $PositionToInsert, $DataToInsert);
    
            //Convert result array to string.
            $ResultStr = implode("\n", $Result);
    
            //Write to the file.
            file_put_contents($FileName, $ResultStr);
    
            $to      = $email;
            $subject = 'Thank You';
            $message = 'We will soon contact you';
            $headers = 'From: youremail@gmail.com' . "\r\n" .
                       'Reply-To: youremail@gmail.com' . "\r\n" .
                       'X-Mailer: PHP/' . phpversion();
    
            mail($to, $subject, $message, $headers);
    
    
            header("Location: werememberyou.html");
            exit;
        }
    

答案 1 :(得分:1)

您应该阅读fputcsv,此函数将为csv文件的结构准备正确的数据。只需创建一个包含收集数据的数组并将其作为参数传递。我看到你已经用“a”参数打开了你的文件,所以你很好。

如果您的服务器配置正确,发送邮件很容易,请使用mail功能。

您会在php.net找到所需的一切(带示例),我强烈建议您将其作为第一个信息来源。