0

私は自分のウェブサイトの近日公開のページを作成しています。名前とメールアドレスのテキストボックスが含まれています。aspに取り組んでいますが、プロジェクトを完了したので、phpまたはhtml5コーディングが必要になりました。

データをcsvファイルに挿入し、自動生成されたメールをphpを使用してユーザーの電子メールアドレスに送信したいのですが、それは可能です。2つのテキストボックス名とメールアドレスを用意します。私は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

現在のコードには 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;
        }
    
于 2012-08-10T06:07:50.460 に答える
1

fputcsvについて読む必要があります。この関数は、csv ファイルの構造に正しいデータを準備します。収集したデータで配列を作成し、それをパラメーターとして渡すだけです。すでに「a」パラメーターを使用してファイルを開いているようです。問題ありません。

サーバーが適切に構成されていれば、メールの送信は簡単です。メール機能を使用してください。

必要なものはすべて (例とともに) php.netにあるので、最初の情報源として強くお勧めします。

于 2012-08-10T06:02:30.460 に答える