PHP入門

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

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
PHPで作りたいスクリプトの代表的な例としては、Webサイトを閲覧している人からお問い合わせの内容を受け付けるお問い合わせフォームがあげられます。ここでは、PHPの様々なファンクションを組み合わせて、お問い合わせフォームを作ってみましょう。まずは、確認画面の制作までの手順です。
講師:
12:30

字幕

ここではお問い合わせフォームを作るとして様々な PHP のファンクションやテクニックを組み合わせて1つ実用的なスクリプトを作ってみたいと思います。お問い合わせフォームを作る場合今画面に表示されているような手順が必要になります。まず HTML でフォームを作ります。そこにユーザーが入力した内容が正しいかどうかつまり必須項目が正しく入力されているかどうかなどを確認します。その後、もし正しく入力されていればその内容をセッションに記録して確認画面を表示します。その後、電子メールを送信するようにするという手順になります。それでは1つ1つ組み立てていきましょう。まずは HTML のフォームを作っていきます。ここでは MAMP のアップロード先フォルダーMAMP フォルダーの htdocs に対してフォルダーを1つ作ります。ここでは lesson04-08 としましてここにテンプレートの HTML ファイル群をコピーしましょう。今回は index.html をindex.php に名前を変更してこのファイルを編集します。それではタイトルを付けましてここに HTML のフォームを作っていきます。id が content となっているdiv タグの中にフォームを作っていきましょう。 action 属性は空にしてmethod 属性を post とします。ここでは table タグでフォームを構成していきましょう。まずお名前、これを必須項目とします。そしてテキストフィールドを作っていきましょう。name としては mynameそして、その他の項目を埋めていきます。続いて同じようにメールアドレスを入力する項目を作ります。こちらも必須項目にしましょう。今回は name を email とします。最後にお問い合わせの内容を記入できるようにしてこちらは textarea にします。最後にsubmit ボタンを設置しましょう。このように HTML を組み立てるとフォームが作られます。では、このフォームをまず確認してみましょう。MAMP を起動して Apache が起動して いることを確認したらWeb ブラウザからこのようにlesson04-08 にアクセスをします。そうすると、このようなフォームが出来上がっていることが確認できるかと思います。名前とメールアドレスそして内容を記入して送信するボタンがクリックできるようになっています。では、この送信するボタンをクリックした先の画面を作っていきましょう。 新しいファイルを1つ作ってPHP でレイアウトはなしドキュメントタイプは適当なままで結構なので作成してファイルの内容を削除します。そして今作ったファイルの内容をコピーしてまずは、この画面を確認画面にしていきましょう。つまり「お名前」と表示されているこの部分には今ユーザーが記入した情報が表示されるようにします。そのためにはどうするかと言うとtd の内容を print としてhtmlspecialcharsこれで入力された内容を無害化安全を保ちます。そして $_POST の myname としましょう。まずは一度これで動きを確認してみます。今作ったファイルは lesson04-08 の中に確認という意味でcheck.php という名前で保存したいと思います。そのため今回は index.php のaction 属性にも check.php と指定してこの2つの画面を接続します。それでは動きを確認しましょう。Web ブラウザでフォームを再読み込みして「名前」のところに名前を記入します。他の項目は適当に記入して送信するボタンをクリックします。すると次の画面では「お名前」ということで今記入した内容が表示されています。 今はこの画面何も名前に入力しない場合でも送信すると次の画面にジャンプしてしまいます。このままですと必須項目のチェックができていませんので次に、この必須項目のチェックを入れていきたいと思います。必須項目のチェックはこちらcheck.php のファイルのcontent div の中に書き込んでいきます。例えば、ここではまず名前だけチェックをしていきましょう。必須項目のチェックは if 構文というのを使っていきます。$_POST の myname の内容が入力されているかどうかの確認なので== でシングルクォーテーションを2つ重ねます。これでこの myname という POST の値が空文字、何も入力されてない状態であるという条件が作れますのでこれは正しく入力されていないという状態になります。では、この時どのようなことをおこしたいのかと言うとエラーメッセージを表示するようにします。そこで「名前が正しく入力されていません」というエラーメッセージを表示しました。そして確認のこちらのtable というのはその名前が正しく入力されている場合にのみ表示したいのでここでは else の中にこの form の表示を入れます。 endif は form タグが終わる所です。これによって myname が正しく入力されていなければこのようなエラーメッセージが表示され名前が正しく入力されていればelse でこの form が表示され今記入した内容が表示されるという仕組みになりました。実際に確認してみましょう。1つ前に戻ってフォームを再読み込みします。名前を正しく入力した状態で送信をすればこのように名前が表示されますが名前を入力しない状態で送信するをクリックするとこのように「名前が正しく入力されていません」と表示されるようになります。続いて電子メールの方も同じようにチェックをしましょう。今はメールアドレスが空白の場合名前に入力されていればこのように次の画面にジャンプしてしまいますがメールアドレスもキチンと入力されていなければ次の画面にはジャンプできないようにします。そのためにはこの if 構文を少し変化させる必要があります。どのように変化させるかと言うと名前または E メールが空白だった場合にエラーメッセージを出すというメッセージになりますのでここでは論理演算子のうち「または」を表す縦棒2つまたは or という記述を使っていきます。 ここでは縦棒2つを使っていきましょう。尚、縦棒は Shift キーを押しながらDelete キーの隣にある¥のマークが表示されたキーを押すことで縦棒2つを出すことができます。ではここで POST の今度は email が== でシングルクォーテーションが2つという記述にします。そしてエラーメッセージは「名前またはメールアドレスが正しく入力されていません」という項目になります。それでは動きを確認してみましょう。入力画面に戻って画面を再読み込みします。名前とメールアドレスが正しく記入されていれば送信するをクリックした時にこのように次の画面にジャンプします。しかし、メールアドレスや名前が正しく記入されていなければこのようにエラーメッセージが表示されるようになりました。今度はメールアドレスが入力されていて名前が入力されていない場合はどうでしょう。送信するをクリックすればやはり「名前またはメールアドレスが正しく入力されていません」と出てくれます。あとはこちらの確認画面を作り込んでいきましょう。メールアドレスの部分も先程の名前と同じようにprint htmlspecialchars で$_POST は email になります。 お問い合わせ内容も同じようにhtmlspecialchars として$_POST のメッセージを表示します。では、こちらで動きを確認してみましょう。フォームを再読み込みして名前とメールアドレスそしてお問い合わせの内容を入力します。送信するをクリックすると次の画面ではこのように今記入した内容が表示されています。尚この時、お問い合わせの内容に2行目という形で改行を入れて入力することができますが送信するをクリックするとここでは1行になってしまいます。これは何故かと言うとHTML 上では改行を入れてもそれは改行にはなりません。HTML で改行するためには BR というタグを使わなければならないんですがここで BR を入力するわけにはいきませんのでなぜなら今 htmlspecialchars をかけている為にこのように BR を入れてもそのままタグが出力されてしまいます。そこでこの BR というタグはPHP のプログラムの方で補ってあげる必要があります。ここで初めて出てくるファンクションですがBR を補うファンクションとしてはnl2br というファンクションがあります。これを htmlspecialchars の外側にかけてあげるようにしましょう。 すると、これは改行して送信するときちんとこのように改行されるようになりました。この nl2br というファンクションを使えば改行された内容を BR に変換してページ上でも改行できるようにするのでこのテクニックも1つ覚えておくと良いでしょう。ここまでで確認画面が作れました。

PHP入門

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

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

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

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

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