ポリプロピレン

PHPを1からお勉強するブログ

Chapter3-12 さらに次のページへいこう!実践

今回は①index.htmlを編集し、②thanks.phpを作ります。

index.html

$ sudo vim index.html

iで編集モードに入り、サンクスページに飛ぶボタンを作ります。

}

print'<form method="post" action="thanks.php">';
print'<input type="button" onclick="history.back()" value="戻る">';
print'<input type="submit" value="OK">';
print'</form>';
?>

</body>

esc→:wqで保存・終了。localhost/phpkiso/index.htmlにアクセスして送信します。

ここで出てきたOKボタンをクリックすると、「Object not found」が出るはずです。(リンク先がまだ無いため)これから作っていきます。

thanks.php

$ sudo cp hina.html thanks.php
$ sudo vim thanks.php

iで編集モードに入り、サンクスメッセージを入力します。

<body>
    <p>
        <?php
        print'ご意見ありがとうございました';
        ?>
    </p>
</body>

esc→:wで保存。再びOKボタンをクリックしてみます。「ご意見ありがとうございました」と表示されていたら成功です。

Chapter3-11 入力データを消さないでページを戻る方法!実践

引き続きcheck.phpを編集します。

$ sudo vim check.php

iで編集モードに入り、PHPの終了タグの直前を以下の3行に書き換えます。

}

print'<form>';
print'<input type="button" onclick="history.back()" value="戻る">';
print'</form>';
?>

</body>

esc→:wで保存。localhost/phpkiso/index.htmlにアクセスして送信します。

今回は入力した内容が消されず、ボタンで戻るようにできたと思います。

この処理にはJavaScriptが使われています。

Chapter3-10 前ページに戻る機能をつけよう!実践

今回はcheck.phpを編集します。

$ sudo vim check.php

iで編集モードに入り、PHPの終了タグの直前に以下の一行を追記します。

}

print'<a href="index.html">戻る</a>';
?>

</body>

esc→:wで保存。localhost/phpkiso/index.htmlにアクセスして送信します。

しかし「戻る」をクリックすると入力内容が消えてしまいます。そうならないように次の記事でします。

Chapter3-9 アンケート項目を増やそう!実践

今回はindex.htmlとcheck.phpを編集します。

index.html

$ sudo vim index.html

iで編集モードにしたらコードを書いていきます。

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>PHP基礎</title>
</head>
<body>
   <form method="post" action="check.php">
       <lebel> ニックネームを入力してください。</lebel>
       <input type="text" id="nickname" name="nickname">
       <lebel>メールアドレスを入力してください。</lebel>
       <input type="text" id="email" name="email">
       <lebel>ご意見を一言でお聞かせください。</lebel>
       <input type="text" id="goiken" name="goiken">
       <input type="submit" value="送信">
   </form>
</body>
</html>

esc→:wqで保存・終了。

check.php

$ sudo vim check.php

iで編集モードにしたらコードを書いていきます。

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>PHP基礎</title>
</head>
<body>  
    <?php
    $nickname=$_POST['nickname'];
    $email=$_POST['email'];
    $goiken=$_POST['goiken'];

    if($nickname=='')
    {
        print'<p>ニックネームが入力されていません。</p>';
    }
    else
    {
        print'<p>';
        print'ようこそ';
        print $nickname;
        print'';
        print'</p>';
    }

    if($email=='')
    {
        print'<p>メールアドレスが入力されていません。</p>';
    }
    else
    {
        print'<p>';
        print'メールアドレス:';
        print $email;
        print'</p>';
    }

    if($goiken=='')
    {
        print'<p>ご意見が入力されていません。</p>';
    }
    else
    {
        print'<p>';
        print'ご意見『';
        print $goiken;
        print'』</p>';
    }
    ?>
</body>
</html>

esc→:wで保存。localhost/phpkiso/index.htmlにアクセス

  • フォームに入力しないで送信→◯◯が入力されていません。
  • フォームに入力して送信→ようこそ◯◯様等

と表示されていれば成功です。

Chapter3-7 入力チェック機能を付けよう!実践

if命令の動き、なんとなく分かったところで、さっそくいってみましょう!もしニックネームが入力されずに[アンケート送信]ボタンが押されて飛んできたら、「ニックネームが入力されていません。」と注意文を表示します。もしニックネームが何かしら入力されていたら、「ようこそ〇〇様」と表示します。

check.phpを編集します。

$ sudo vim check.php

iで編集モードに入ります。

<!DOCTYPE html>
<head>
	<meta charset="utf-8">
	<title>PHP基礎</title>
</head>
<body>
	<p>
		<?php
		$nickname=$_POST['nickname'];
		if($nickname=='')
		{
			print'ニックネームが入力されていません。';
		}
		else
		{
			print'ようこそ';
			print $nickname;
			print'';
		}
		?>
	</p>
</body>
</html>

esc→:wで保存。

これを声に出して読むと

もし$nicknameが''(空)なら「ニックネームが入力されていません。」もしそうでなければ「ようこそ〇〇様」と表示する

という意味になります。

localhost/phpkiso/index.htmlにアクセス

  • ニックネームを入力しないで送信→「ニックネームが入力されていません。」
  • ニックネームを入力して送信→「ようこそ〇〇様」

と表示されれば成功です。

余談:
columnにあるインデントですが、未だにつけ方がよく分かっておらず、Subline TextのEdit→Line→Reindentに頼っています。Vimでできるようにしていかないとなー。

Chapter3-6 コンピュータに考えさせよう!実践

この項は実際に作らなくてもいいよと書いてありますが、せっかくだから作ってみます。

$ sudo cp hina.html iftest.php
$ sudo vim iftest.php

iで編集モードに入り以下のコードを書いていきます。

<!DOCTYPE html>
<head>
	<meta charset="utf-8">
	<title>PHP基礎</title>
</head>
<body>
	<p>
		<?php
		print'本日は';
		$a='';
		$b='';
		if($a==$b)
		{
			print'晴れ。';
			print'暖かい一日';
		}
		else
		{
			print'雪。';
			print'寒い一日';
		}
		print'になるでしょう。';
		?>
	</p>
</body>
</html>

esc→:wで保存。

個人的には、実際にコードの意味を口に出すと覚えやすいと思いました。上記の場合なら

もしaとbが同じなら「本日は晴れ。暖かい一日になるでしょう。」
もしそうでなかったら「本日は雪。寒い一日になるでしょう。」

という風に。この場合$aも'あ'、$bも'あ'で同じなので、localhost/phpkiso/iftest.phpにアクセスして、「本日は晴れ。暖かい一日になるでしょう。」と表示されれば成功となります。

次にiftest.phpをこう書き換えます。

<!DOCTYPE html>
<head>
	<meta charset="utf-8">
	<title>PHP基礎</title>
</head>
<body>
	<p>
		<?php
		print'本日は';
		$a='';
		$b='';
		if($a==$b)
		{
			print'晴れ。';
			print'暖かい一日';
		}
		else
		{
			print'雪。';
			print'寒い一日';
		}
		print'になるでしょう。';
		?>
	</p>
</body>
</html>

esc→:wで保存。

先ほど$b='あ';だった部分が$b='い';に変わっただけですが、$aが'あ'、$bが'い'で異なるので、localhost/phpkiso/iftest.phpの表示結果は「本日は雪。寒い一日になるでしょう。」となるはずです。

Chapter3-5 変数ってなんでしょう!?実践

実践

check.phpを書き換えます。

$ sudo vim check.php

iで編集モードに入り追加・変更します。

<body>
	<p>
		<?php
		$nickname=$_POST['nickname'];
		print'ようこそ!';
		print $nickname;
		print'';
		?>
	</p>
</body>

esc→:wで保存します。プログラム全体は以下のようになります。

<!DOCTYPE html>
<head>
	<meta charset="utf-8">
	<title>PHP基礎</title>
</head>
<body>
	<p>
		<?php
		$nickname=$_POST['nickname'];
		print'ようこそ!';
		print $nickname;
		print'';
		?>
	</p>
</body>
</html>

localhost/phpkiso/index.htmlにアクセス、名前を入力し、「ようこそ◯◯様」と出ていれば成功です。

変数とは

  • 変数とは数字や文字をコピーしておける箱のようなもの
  • 変数は「$」で始まり、変数名は半角小文字で自由につけられる ※ただしinput要素のname属性でつけた名前と同じにしておくのが無難
  • プログラミングの世界で「=」は、右から左へコピーせよを意味する
  • コピーした後でprint $nickname;を実行すると入力した名前が表示される
  • 変数名はシングルクオーテーションで囲まない ※囲むとそのまま文字列として画面に出てしまう
  • $_POST['〜']は、一旦変数にコピーするクセをつける ※後々プログラムがスッキリしてくる