質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

解決済

WEBサイトでのお問い合わせフォームの作り方が分かりません。

oyu
oyu

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

3回答

-1評価

1クリップ

18閲覧

投稿2019/08/27 01:18

編集2022/01/12 10:58

前提・実現したいこと

WEBサイトでのお問い合わせフォームの作り方が分かりません。
1 入力フォームから必須項目を入れ確認画面へのボタンを押せばアクセスでき
2 入力内容のご確認のページにアクセスできますが
3 最後の送信完了ページにアクセスできません。

complete.phpの中にログファイル設定 DEFAULT_LOGはサーバに合わせること
とネットでググたのですが理解できません。

発生している問題・エラーメッセージ

Can't open /virtual/ikeno-derma/public_html/_demo/company_inquiry/log/contact.csv!

php

<?php session_start(); session_unset(); session_destroy(); ?> <?php include("phpmailer.inc.php"); //edit(メールアドレスのみ。例えば携帯メールアドレスが必須のような場合「if($_POST['email']!="" && $_POST['email_mobile']!=""){」と記述する。) //only for mailaddress if($_POST['email']!=""){ $files = glob('uploads/*'); //edit(ファイル添付がある場合、その分だけ用意する。この項目が無かったらコメントアウトすること)if the image exists. you must commentout when this column is nothing. //$my_path = "uploads/".$_POST['img']; //$my_path2 = "uploads/".$_POST['img2']; //edit(自動返信メール(管理者、複数指定可))reply mail for admin (you can specify multiple) $items[] = array('subject' => '【】ホームページよりお問い合わせがありました。', 'header_mail' => $_POST['name'].' 様より、以下のお問い合わせがありました。<br><br><br>', 'footer_mail' => '', 'send_fromname' => $_POST['name'], 'send_from' => $_POST['email'], 'send_to' => array('support@netoption.co.jp'), ); //edit(自動返信メール(エンドユーザ) ※「send_fromname」「send_from」にエンドユーザ向けのFROM表記・メアドを入力する。)reply mail for enduser (input to "send_fromname" & "send_from) $items[] = array('subject' => '【】お問い合わせありがとうございます。', 'header_mail' => $_POST['name'].' 様<br><br> お問い合わせありがとうございます。<br> このメールは自動送信メールです。<br> 翌営業日を過ぎましてもお問い合わせに対する対応がない場合は、<br> お手数をおかけしますがまで<br> ご連絡くださいますようお願い申し上げます。<br><br><br>', 'footer_mail' => '', 'send_fromname' => '', 'send_from' => '', 'send_to' => array($_POST['email']), ); foreach($items as $item) { //////////////header_mail//////////// $data= $item['header_mail']; //////////////////////////////////// //edit(管理者・エンドユーザ共通、メールの中心部分)reply mail body for admin & enduser $data.= " 氏名:<br>".$_POST['name']."<br><br> フリガナ:<br>".$_POST['kana']."<br><br> 郵便番号:<br>〒".$_POST['postcode']."<br><br> ご住所:<br>".$_POST['add1'].$_POST['add2']."<br><br> 電話番号:<br>".$_POST['tel1']."-".$_POST['tel2']."-".$_POST['tel3']."<br><br> FAX番号:<br>".$_POST['fax1']."-".$_POST['fax2']."-".$_POST['fax3']."<br><br> メールアドレス:<br>".$_POST['email']."<br><br> お問い合わせ内容:<br>".$_POST['message']."<br><br> "; //////////////footer_mail//////////// $data.= $item['footer_mail']; //////////////////////////////////// $fromname = $item['send_fromname']; ////////////// Subject //////////// $subject = $item['subject']; //////////////////////////////////// $send_from = $item['send_from']; $body = $data; $mailBody = $body; $objMail = new PHPMailer(); $objMail->ContentType = "text/html"; $objMail->CharSet = "utf-8"; $objMail->Mailer = "mail"; $objMail->Priority = 3; $objMail->From = $send_from; $objMail->FromName =$fromname; $objMail->Subject = $subject; //edit(ファイル添付がある場合↑と合わせる。)if the image exists. (same ↑.) if($_POST['img']!=""){ $objMail->AddAttachment($my_path); } if($_POST['img2']!=""){ $objMail->AddAttachment($my_path2); } $objMail->Body = $mailBody; //////////////Send to//////////// foreach($item['send_to'] as $send_to){ $objMail->AddAddress($send_to); } //////////////////////////////////// $objMail->Send(); } // get all file names foreach($files as $file){ // iterate files if(is_file($file)) unlink($file); // delete file } /** * Logging class: * - contains lfile, lwrite and lclose public methods * - lfile sets path and name of log file * - lwrite writes message to the log file (and implicitly opens log file) * - lclose closes log file * - first call of lwrite method will open log file implicitly * - message is written with the following format: [d/M/Y:H:i:s] (script name) message */ //$msg = str_replace("<br>",",",$datalog); /*--Start Config Log----------------------------------------------------------------*/ // Filename of log to use when none is given to write_log , and log folder change permission to 777 //edit(ログファイル設定 DEFAULT_LOGはサーバに合わせること)logfile (DEFAULT_LOG is setting for server) define("DEFAULT_LOG","/virtual/ikeno-derma/public_html/_demo/company_inquiry/log/contact.csv"); $datalog.='氏名:'.$_POST['name'].''; $datalog.=","; $datalog.='フリガナ:'.$_POST['kana'].''; $datalog.=","; $datalog.='郵便番号:'.$_POST['postcode'].''; $datalog.=","; $datalog.='ご住所:'.$_POST['add2'].''; $datalog.=","; $datalog.='電話番号:'.$_POST['tel'].''; $datalog.=","; $datalog.='FAX番号:'.$_POST['fax'].''; $datalog.=","; $datalog.='メールアドレス:'.$_POST['email'].''; $datalog.=","; $datalog.='お問い合わせ内容:'.$_POST['message'].''; /*--END Config Log----------------------------------------------------------------*/ $msg = $datalog; class Logging { // declare log file and file pointer as private properties private $log_file, $fp; // set log file (path and name) public function lfile($path) { $this->log_file = $path; } // write message to the log file public function lwrite($message) { // if file pointer doesn't exist, then open log file if (!is_resource($this->fp)) { $this->lopen(); } // define script name $script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME); // define current time and suppress E_WARNING if using the system TZ settings // (don't forget to set the INI setting date.timezone) $time = @date('[d/M/Y:H:i:s]'); // write current time, script name and message to the log file // fwrite($this->fp, "$time ($script_name) $message" . PHP_EOL); fwrite($this->fp, "$time , $message" . PHP_EOL); } // close log file (it's always a good idea to close a file when you're done with it) public function lclose() { fclose($this->fp); } // open log file (private method) private function lopen() { $log_file_default = DEFAULT_LOG; // define log file from lfile method or use previously set default $lfile = $this->log_file ? $this->log_file : $log_file_default; // open log file for writing only and place file pointer at the end of the file // (if the file does not exist, try to create it) $this->fp = fopen($lfile, 'a') or exit("Can't open $lfile!"); } } // Logging class initialization $log = new Logging(); // set path and name of log file (optional) $log->lfile(DEFAULT_LOG); // write message to the log file $log->lwrite($msg); // close log file $log->lclose(); }else{ header("Location: index.php"); } ?>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。