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


How to collect data without a database

>我正在为我的网站制作一个即将推出的页面,其中包括名称和电子邮件的文本框,我正在研究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;

当前代码中存在两个问题

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

    您可以使用 php 的直邮功能。或者你可以使用PHP Mailer(对于本地主机测试它最好的)

  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;
        }
    

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

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

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

相关文章: