フォームデータをデータベースに登録します

データベースの準備

MySQLにてデータベース名:mydb、テーブル:formを作成します。

 

formテーブルのカラムデータを作成

1 id int(11) AUTO_INCREMENT PRIMARYキー

2 name VERCHAR(20)

3 email VERCHAR(50)

4 blood VERCHAR(10)

5 message VERCHAR(400)

 

ここまで準備したら、実際にデータを登録するプログラムを作成します。

以下がそのソースファイルです。

 

ソースファイル

======================
フォームへの入力 input.php
======================

<!DOCTYPE HTML>
<html lang ="ja">
<head>
<meta charset="utf-8">
<title>ユーザー登録フォーム</title>
<style>
h1 {
  margin-left: 50px;
}
th {
  width: 200px;
  margin: 10px 0;
}
input#send {
  margin-left: 100px;
  margin-top: 30px;
}
</style>
</head>

<body>
<h1>ユーザー登録フォーム</h1>
<form action="confirm.php" method="post">
<table>
<tr><th>お名前</th>
<td><input type="text" name="name" size="20" maxlength="10" placeholder="山田太郎" required></td></tr>
<tr><th>メールアドレス</th><td><input type="email" name="email" size="50" maxlength="50" required></td></tr>
<tr><th>血液型</th>
<td>
<input type="radio" name="kata" value="O型" id="o" checked><label for="o">O型</label>
<input type="radio" name="kata" value="A型" id="a"><label for="a">A型</label>
<input type="radio" name="kata" value="B型" id="b"><label for="b">B型</label>
<input type="radio" name="kata" value="AB型" id="ab"><label for="ab">AB型</label>
</td></tr>
<tr><th>お問い合わせ</th><td><textarea name="message" cols="50" rows="4"></textarea></td></tr>
</table>
<input id="send" type="submit" value="送信する">
</form>

</body>
</html>

 

=======================
入力内容の確認 confirm.php
=======================

<?php
// セッションの開始
session_start();

$name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
$email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
$blood = $_POST['kata'];
$message = htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8');

// 入力値をセッション変数に格納
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
$_SESSION['blood'] = $blood;
$_SESSION['message'] = $message;
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ユーザー登録フォーム(confirm)</title>
<style>
h1 {
  margin-left: 50px;
}
th {
  width: 200px;
  margin: 10px 0;
}
input#send {
  margin-left: 100px;
  margin-top: 30px;
}
</style>
</head>

<body>
<h1>ユーザー登録フォーム(confirm)</h1>
<form action="submit.php" method="post">
<table>
<tr><th>お名前:</th><td><?php echo $name; ?></td></tr>
<tr><th>メールアドレス:</th><td><?php echo $email; ?></td></tr>
<tr><th>血液型:</th><td><?php echo $blood; ?></td></tr>
<tr><th>お問い合わせ:</th><td><?php echo $message; ?></td></tr>
</table>
<input id="send" type="submit" value="登録">
</form>
</body>
</html>

 

===========================
データベースへの登録 submit.php
===========================

<?php

// セッションの開始
session_start();

$name = htmlspecialchars($_SESSION['name'], ENT_QUOTES, 'UTF-8');
$email = htmlspecialchars($_SESSION['email'], ENT_QUOTES, 'UTF-8');
$blood = $_SESSION['blood'];
$message = htmlspecialchars($_SESSION['message'], ENT_QUOTES, 'UTF-8');

// 接続設定
$user = 'root';
$pass = '';

// データベースに接続
$dsn = 'mysql:host=localhost;dbname=mydb;charset=utf8';
$conn = new PDO($dsn, $user, $pass); //「$conn」は、任意のオブジェクト名

// データの追加
$sql = 'INSERT INTO form(name, email, blood, message) VALUES("'.$name.'","'.$email.'","'.$blood.'","'.$message.'")';
$stmt = $conn -> prepare($sql);
$stmt -> execute();
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ユーザー登録フォーム・登録ページ</title>
<style>
p {
  margin-left: 50px;
}
</style>
</head>

<body>
<p>ご登録ありがとうございました。</p>
<p><a href="input.php">入力画面に戻る</a></p>
</body>
</html>

 

実行画面

======================
フォームへの入力 input.php
======================

f:id:develog:20161221193502p:plain

 

=======================
入力内容の確認 confirm.php
======================= 

f:id:develog:20161221193508p:plain

 

===========================
データベースへの登録 submit.php
===========================

f:id:develog:20161221193512p:plain

データベースへの登録を確認

テーブルformの最後の行に、

id:18 name:山田太郎 email:taro@gmail.com blood:O型 message:はじめまして。よろしくおねがいします。

と登録されていることが確認できます。

f:id:develog:20161221193517p:plain

 

 

セッションとは?

サーバー側に一時的にデータを保存する仕組みのことです。

クッキーと似ていますが、クッキーはブラウザ側、セッションはサーバー側にデータを保存します。

 

PHP Data Object(PDO)とは?

MySQLPostgreSQLSQLiteなどのデータベースの違いを吸収して、共通の関数で複数のデータベースを操作することができます。

 

 

バナー模写

LCCジェットスターのバナーをPhotoshopで模写しました。

 

f:id:develog:20161221000243j:plain 元バナー

 

f:id:develog:20161221000227p:plain 模写したバナー

 

Photoshopのレイヤー

f:id:develog:20161221001019p:plain

 

Photoshopで旅客機を切り抜き

f:id:develog:20161221001233p:plain

 

使用した旅客機の画像(Google画像検索にて)

f:id:develog:20161221000514p:plain

 

 

職業訓練講習 面接編

面接に臨む前に「緊張しない心構え」と「想定質問」について考えました。

緊張しない心構え

練習したんだから

しょうがないよ

やる事はやったんだから

面白いことを考える

感謝

気合

自信を持つ

誠意を持つ

チャンス

身だしなみ

マナー、笑顔

自分を営業する

良い意味で開き直る

時間に余裕を持つ

集中する

楽しむ

 

想定質問

志望動機

前職は?

ウチで何をやりたい?

残業できる?

業界の将来?

あなたのメリット?

なぜこの職業?

うちの会社にどう貢献できる?

辞めた理由?

XXはできますか?

最近読んだ本

気になるニュース

長所と短所

得意と不得意

空白期間は何を

家族構成

結婚? 出産? (聞くのは法律違反)

自己PR/客観的に自分のこと

条件=>与えられどう対処する?

ミスしたときの立ち直り方

ストレスの解消法

業界を変える場合は なぜ?

作品説明をしてください

キャリアビジョン/5年後10年後/夢

 

robots.txtのDisallowでもクロールはされている

Disallowはクロールを禁止する場合に用います。しかし、インデックスに登録されないだけで情報の取得は行われているようです。

 

テスト用のサーバーに/monicaというディレクトリを作り、そこにWebページ一式を置いておきました。robots.txtを設置してDisallow:/monicaとしておきましたので、クローラーにサイトの内容は見られていないだろうと思っていました。

このWebページ一式を本サーバーにアップした後、本サーバーのサイトはクロールして欲しいため、サイトマップをSearch Consoleから送信してサイトの存在を明らかにしました。テストサーバーの/monicaのWebサイトは、本サーバーにWebサイトを立ち上げた後もそのまま残しておきました。

 

本サーバー運用から数日後、Search Consoleを見ると、プロパティ登録をしていないのにもかかわらず、テストサーバーのサイトが本サーバーと並んでプロパティとして表示されました。

テストサーバーのサイトは削除しましたが、このことからrobots.txtで/Disallowの指定をしていても、インデックスに登録されないだけで内容は見られていると考えられます。