PHP入門

お問い合わせフォームを作る2

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
前のレッスンで、確認画面まで作成しました。ここでは、セッションに値を保持して、電子メールとして送信するところまで作成し、お問い合わせフォームを仕上げていきます。実際にメールが受信できるかどうか、確認をしてみましょう。
講師:
11:46

字幕

ここでは「お問い合わせフォームを作る」の2番めとして1つ前のレッスンで作ったお問い合わせフォームの確認画面までの続きを作っていきたいと思います。これはひとつ前のレッスンの続きとなりますので素材などもそのまま使っていきます。もしまだひとつ前のレッスンを見ていないという場合にはまずはそちらの手順を行ってからこのレッスンをご覧ください。では、今回はlesson04-08 という前回作ったフォルダをこれをコピーして作っていきたいと思います。名前を lesson04-09 と変更しindex.php とcheck.php というファイルがありますのでその内の check.php を編集していきます。check.php では、POST で受け取った値を使って確認画面を作りました。そして、次の画面としてその電子メールを送信する画面にこの内容を受け渡していきたいと思います。では、電子メールを送信する画面として新しい画面をつくりましょう。ページタイプは PHP でレイアウトはなしとしてドキュメントタイプは適当で結構です。ファイルを作成して今作ったcheck.php の内容をそのままコピーします。そして、content の内容を全て削除し代わりにここでは「電子メールを送信しました。 お問い合わせありがとうございました。」という形でお礼のメッセージを表示しておきたいと思います。そしてこの画面で電子メールを管理者に向けて送信するわけなんですがこの check.php と今作ったファイルを接続してうまく値を受け渡していかなくてはなりません。まずは、このファイルをlesson04-09 の中にsend.php という名前で保存します。そして、send.php をこちらの 23 行目check.php の 23 行目のフォームの action 属性にsend.php と指定し2つの画面を接続します。この時 POST の値というのは1つ次の画面までしか受け渡せないのというのはご紹介しました。実際に画面を見ながら改めて解説しましょう。MAMP を起動し、Apache が起動していることを確認したらWeb ブラウザでlesson04-09 にアクセスをします。フォームが出てきますのでここでは名前とメールアドレスそして、内容を記入し送信するボタンをクリックします。そして、次にこの送信ボタンをクリックするとこのように send.php にリンクをするわけですけれどもこのとき、check.php の画面まではPOST の値が渡されていますけれども送信するボタンをクリックした先のsend.php にはフォームの値は受け渡されていません。 そこでどうするかといいますとcookie または session を使って値を一時的に保持しておかなければいけないわけです。ここでは、session を使うのがより適切ですのでsession を使って今のお問い合わせの内容を保持しておきたいと思います。ではまず編集するのはcheck.php の内容です。session を使うときはファイルの先頭にsession_start というファンクションを記述しなければならないというのは既にご紹介しました。check.php にまずはこの内容を記述しどこでそのセッションをセットするかと言いますと24 行目にある else の次です。なぜかと言いますとその myname もしくはemail の内容が空の場合これは session にその値を保持してしまうと異常な値が保持されてしまうことになります。そのため、ここでは、myname やemail が空の場合はエラーメッセージを表示して処理を終了しなければなりません。名前それからメールアドレスが両方正しく入力されている場合つまり、else の後にsession にその値を保持するという動きがここでは正しい順番です。 ではここに $_session としてmynameこれを $_post の myname としましょう。同じく $_session の emailここに post の email の値を保持します。最後に message として$_POST のmessage の内容を保持しましょう。そして確認画面を表示するという手順になります。これでこのお問い合わせフォームにいる間はsession にこの各情報が記録されていますので次の画面に行ってもその session の情報を使うことができます。それでは send.php の方を作り込んでいくことにしましょう。send.php はファイルの先頭の部分でまずは session を使うという事でsession_start と記述します。そして、電子メールを送信するための準備としてまずは、mb_language というファンクションに jaJapanese である ja を指定します。更に mb_internal_encoding として UTF-8 を指定します。これで電子メールを送信する準備が整いましたのでここに Subject としてここでは「お問い合わせが到着しました」というメッセージを表示しましょう。 更に Body としてお問い合わせ内容確認のための名前やメールアドレス、内容をメールの本文に記述するんですが少し文章を組み立てるのが複雑になります。新しい知識も出てきますのでじっくりとご覧ください。まず、「名前」としてここに名前を表示するようにします。この時ここで . (ドット)という記号を使うんですがまずは続きを書いてみましょう。$_session の myname とします。これでこの Body という変数には名前という固定された文章と$_session の myname の内容がくっつきます。これのことを文字列連結といってこういった固定された文字とそれから変数などを組み合わせて1つの変数に入れる時に使います。この . という記号文字列連結と言いますのでぜひここで覚えておいてください。続いてさらに文字列連結をして" に \n と打ちます。これは改行を表す記号です。難しい言葉でエスケープシーケンスと言うのですけれどもここでは特にその言葉を覚える必要はありません。とにかくこの "\n" この様に書くことで電子メール上で改行する事ができると覚えておくと便利でしょう。続けて、更に . を打ちます。 そして次の行に改行をしてここではメールアドレスとします。同じように session の email としましてまた "\n" と打ちます。後はこの繰り返しで 内容としてmessage とし最後にこのように"\n" で最後に; を打ちます。これで電子メールの本文が出来上がりました。かなり複雑な書き方になりますのでよく整理しながら書くようにしてください。名前という label があってそれを . 文字列連結の記号でつないでsession の内容を表示しています。その後改行をしてここに . と . がありますが次の行のこれとこれをつないでいます。そして、メールアドレスというlabel に対して同じく session のメールアドレスを表示し改行した後内容を表示して終わるという形です。最後にそのメールを送信します。mb_send1_mail に送信先のメールアドレスを指定してここはおそらく管理者のメールアドレスになりますので皆さんが確認をできるアドレスを入力してください。そして、Subject と Body を指定します。これでこのスクリプトは完成です。では流れに沿って説明していきましょう。まず、MAMP を起動し、Apache が起動していることを確認したらこのように Web ブラウザでlesson04-09 にアクセスします。 そして、名前それからメールアドレスそして内容を記入し送信するボタンをクリックします。すると、まずは確認画面に移動します。この時戻って書き直すこともできます。ここですね。また名前、又はメールアドレスが正しく記入されていない場合はこのように「名前またはメールアドレスが正しく入力されていません」というメッセージを出すこともできます。すべて正しく記入されていれば送信するで 確認画面に行きますので更に送信するボタンをクリックする事で電子メールを送ることができるようになります。もしも正しく電子メールが受信できている場合こちらの画面の様にメールが届いているかと思います。お問い合わせが到着しましたという subject に対して名前とメールアドレスそして内容が表示されています。このように少し簡単なスクリプトではありますけれどもお問い合わせフォームの原型が出来上がりました。後はデザインを整えたりですとか入力のチェックをもう少し厳密に例えばメールアドレスがきちんとした書式で出来上がっているかどうかなども詳しくチェックをしてお問い合わせフォームを作り上げるとかなり実用的なスクリプトになりますのでぜひ、この内容を基にPHP の学習を更に進めて様々な実用的なスクリプトを作れるようになっていきましょう。

PHP入門

このコースでは動きのあるWebサイトでショッピング、友人との写真を共有、キーワードによる情報検索など便利な仕組みを作るための技術であるPHPについて解説します。これまでプログラミングに触れたことがない方でも、ちょっとしたプログラムを自分で作ることができるようになります。

4時間56分 (29 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月29日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。