// mailform.php release 2 Copyright 2006 TAKEDA Hiroyuki // http://atashi.net/inu/ja/software/mailform.html // [基本仕様] // // PHPで書かれています // UTF-8で書かれています // METHOD="POST"専用です // http://captcha.jpのCAPTCHAサービスに対応しています // // [設置方法] // // PHPが実行可能なサーバで、以下のファイルを設置します。 // 括弧内の数字はパーミッションの値です。 // // /public_html/(任意のディレクトリ) // |-- mailform.php (644 or 604) // |-- des.php(644 or 604) // // mailform.php // スクリプト本体です。 // des.php // DES暗号化ライブラリです。 // // [履歴] // 2006-10-10 release 2 DES暗号化、captcha4.phpを使うように変更 // 2006-07-06 release 1 作った // //HTTP環境変数取得 $strServerName = $_SERVER["SERVER_NAME"]; $strGatewayInterface = $_SERVER["GATEWAY_INTERFACE"]; $strServerProtocol = $_SERVER["SERVER_PROTOCOL"]; $strRequestMethod = $_SERVER["REQUEST_METHOD"]; $strPathInfo = $_SERVER["PATH_INFO"]; $strScriptName = $_SERVER["SCRIPT_NAME"]; $strQueryString = $_SERVER["QUERY_STRING"]; $strRemoteAddr = $_SERVER["REMOTE_ADDR"]; $strRemoteHost = $_SERVER["REMOTE_HOST"]; $numContentLength = $_SERVER["CONTENT_LENGTH"]; $strHttpUserAgent = $_SERVER["HTTP_USER_AGENT"]; $strHttpReferer = $_SERVER["HTTP_REFERER"]; // --- 設定部 ------------------------------------------------------------------ // --- 必ず書き換える項目 ------------------------------------------------------ // --- メールの送信先 ---------------------------------------------------------- $mail_to = 'info@asama.ne.jp'; // --- 必要に応じて書き換える項目 ---------------------------------------------- // 送信完了ページを別ページにリダイレクトする場合はURLを書いてください。 // このスクリプトで送信完了ページを出力する場合は空欄です(デフォルト 空欄) $redirect = ''; // --- CAPTCHA関連 ------------------------------------------------------------ // captcha.jpによるロボットスパム防止を TRUE:使う FALSE:使わない $captcha = FALSE; // DESの秘密鍵 $key = ''; // captcha.jpのアカウントID $id = ''; // captchaの桁数 $captcha_length = 4; // --- プログラム部 ------------------------------------------------------------ // --- 初期化 ------------------------------------------------------------------ $release = '2'; $base = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $m = $n = 0; // --- captcha.phpに渡す文字列をランダムに生成し、DESで暗号化してURLエンコード - if ( $captcha ) { require( 'des.php' ); $auth = ''; $len = strlen( $base ) - 1; for ( $n = 0; $n < $captcha_length; $n ++ ) $auth .= substr( $base, rand( 0, $len ), 1 ); $auth = urlencode( des( $key, $auth, 1, 0, null ) ); } // --- 送信 -------------------------------------------------------------------- if ( $_POST['act'] == 'send' ) { // --- エラー処理 ---------------------------------------------------------- if ( $_POST['name'] == '' ) error( '名前が入力されていません' ); if(preg_match('/^[a-zA-Z0-9]+$/', $_POST['name'])) error ('文字コードが不正です'); if ( $_POST['email'] == '' ) error( 'メールアドレスが入力されていません' ); if ( $_POST['subject'] == '' ) error( '件名が入力されていません' ); if ( $_POST['tel'] == '' ) error( '電話番号が入力されていません' ); //if ( $_POST['inquiries'] == '' ) error( '本文が入力されていません' ); //if ( $_POST['body'] == '' ) error( '本文が入力されていません' ); // --- CAPTCHA ------------------------------------------------------------- if ( $captcha ) { $_POST['auth'] = trim( des( $key, urldecode( $_POST['auth'] ), 0, 0, null ) ); if ( strtoupper( $_POST['charenge'] ) != strtoupper( $_POST['auth'] ) ) error( 'CAPTCHAテストに失敗しました' ); } // --- 送信 ---------------------------------------------------------------- $_POST['name'] = mb_convert_encoding( $_POST['name'], 'JIS', 'UTF-8' ); $_POST['subject'] = mb_convert_encoding( $_POST['subject'], 'JIS', 'UTF-8' ); $_POST['body'] = mb_convert_encoding( $_POST['body'], 'JIS', 'UTF-8' ); $_POST['tel'] = mb_convert_encoding( $_POST['tel'], 'JIS', 'UTF-8' ); $_POST['ntt'] = mb_convert_encoding( $_POST['ntt'], 'JIS', 'UTF-8' ); $_POST['postal_code'] = mb_convert_encoding( $_POST['postal_code'], 'JIS', 'UTF-8' ); $_POST['address'] = mb_convert_encoding( $_POST['address'], 'JIS', 'UTF-8' ); $_POST['subject'] = '=?iso-2022-jp?B?' . base64_encode( $_POST['subject'] ) . '?='; $headers = 'From: =?iso-2022-jp?B?' . base64_encode( $_POST['name'] ) . '?= <' . $_POST['email'] . ">\r\n"; $body = '氏名 : ' . $_POST['name'] . "\r\n\r\n" . 'E-MAIL : ' . $_POST['email'] . "\r\n\r\n" . 'TEL : ' . $_POST['tel'] . "\r\n\r\n" . '〒 : ' . $_POST['postal_code'] . "\r\n\r\n" . '住所 : ' . "\r\n". $_POST['address'] . "\r\n\r\n" . 'NTT回線申込み : ' . "\r\n" . $_POST['ntt']. "\r\n\r\n" . '通信欄 : ' . "\r\n" . $_POST['body']. "\r\n\r\n" . 'SERVER_NAME = ' . $strServerName . "\r\n" . 'GATEWAY_INTERFACE = ' . $strGatewayInterface . "\r\n" . 'SERVER_PROTOCOL = ' . $strServerProtocol . "\r\n" . 'REQUEST_METHOD = ' . $strRequestMethod . "\r\n" . 'PATH_INFO = ' . $strPathInfo . "\r\n" . 'SCRIPT_NAME = ' . $strScriptName . "\r\n" . 'QUERY_STRING = ' . $strQueryString . "\r\n" . 'REMOTE_ADDR = ' . $strRemoteAddr . "\r\n" . 'REMOTE_HOST = ' . $strRemoteHost . "\r\n" . 'CONTENT_LENGTH = ' . $numContentLength . "\r\n" . 'HTTP_USER_AGENT = ' . $strHttpUserAgent . "\r\n" . 'HTTP_REFERER = ' . $strHttpReferer . "\r\n"; $body = mb_convert_encoding( $body, 'JIS', 'UTF-8' ); mail( $mail_to, $_POST['subject'], $body, $headers, $parameter ); if ( $_POST['copy'] != '' ) mail( $mail_to, $_POST['subject'], $body, $headers, $parameter ); // --- 送信完了ページ ------------------------------------------------------ if ( $redirect != '' ) { header( "Location: $redirect" ); exit; } else { ?>
exit; } } // --- エラーメッセージ出力 ---------------------------------------------------- function error( $message ) { ?>
|
|
サービスに関するお問い合わせはこちら アサマインターネット URL: http://www.asama.ne.jp/ mailto: info@asama.ne.jp |