0

署名者が請願書に署名し、サイトのバックオフィスに表示できるようにする PHP スクリプトを使用して請願書 Web サイトを作成しました。私が達成しようとしているのは、スクリプトにメール機能を追加して、署名者情報だけでなく、タイムスタンプ、IP アドレス、およびユーザー エージェント ID を私の電子メール アドレスに電子メールで送信することです。これに関するご支援をいただければ幸いです。私はPHPが初めてで、コードの作成方法を独学しています。

<?php
include('database/config.php');
include('database/database.php');

$err = '';

if(isset($_POST['submit'])){        

    $first = addslashes(trim($_POST['first'])); 

    $last = addslashes(trim($_POST['last']));   

    $glvar = addslashes(trim($_POST['glvar']));

    $ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; 
    //echo $ip;

     if(($first!='')&& ($last!='')&& ($glvar!='')){ 

        $database = new Database(HOST, DATEBASE, USERNAME, PASSWORD);   

        $allUsers = $database->select('user','glvar_id','*',"glvar_id = '".$glvar."'");
        //echo $ip;     

        $checkglvar = 0;            
    $checkglvar = count($allUsers); 

        $userData = array(              
            'first_name' => $first, 
            'last_name' => $last,               
            'glvar_id' => $glvar,       
            'ip' => $ip,        

        );      

        if(!$checkglvar) {          

            $database->insert('user',$userData);

            mail("info@mysite.com", "Subject", "message");

            header('location:thank-you.html');      

        }    else  $err.='<p style="color:red">Ooops! You have already signed the petition</p>';        

    } else {    

        if($first=='') $err.='<p style="color:red">Your First Name is empty</p>';   

        if($last=='') $err.='<p style="color:red">Your Last Name is empty</p>'; 

        if($glvar=='') $err.='<p style="color:red">Your GLVAR ID is empty</p>'; 

    }

}
4

3 に答える 3

0

ヘッダーを添付してメール機能を使用する方法は次のとおりです。ヘッダーは\r\n

 $to      = 'nobody@example.com';
 $subject = 'the subject';
 $message = 'hello';
 $headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Originating-IP: ' . $_SERVER['REMOTE_ADDR'] . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>
于 2013-06-21T03:52:21.620 に答える
0

mail("users_email@site.com", "Whatever subject you want", "Thanks, blah blah blah\nIP Address: " . $_SERVER['REMOTE_ADDR'] . "\nDate" . date("M j Y @ H:i:s") . "\nUser Agent: " . $_SERVER['HTTP_USER_AGENT'], "From: you@yoursite.com");

人間が読める日付または UNIX タイムスタンプが必要かどうかは不明です。タイムスタンプが必要な場合は、 date()関数の代わりに time() に置き換えてください。さまざまなフォーマットについては、date() のドキュメントを参照してください。また、「\n」は改行文字です (念のため)。

あなたのコードで、ヘッダーを送信していないことに気付きました。上記のコードの 4 番目のパラメーター ("From: you@yoursite.com") は、メールに From フィールドを追加し、受信トレイでの見栄えを良くします。

于 2013-06-21T04:01:06.620 に答える