0

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

2 回答 2

2

您当前的代码中有两个问题

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

    您可以使用 php 的 Direct Mail 功能。或者您可以使用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;
        }
    
于 2012-08-10T06:07:50.460 回答
1

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

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

你会在php.net上找到你需要的一切(带有示例) ,我强烈推荐它作为第一信息来源。

于 2012-08-10T06:02:30.460 回答