Web アプリケーション
PHP と言えば Web アプリケーションのイメージがありますね。
現在の時刻を取得する
index.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの学習</title> </head> <body> <?php require("greeting.php"); ?> </body> </html>
greeting.php
<?php $hour = date('H'); echo "$hour 時です。"; if (5 <= $hour && $hour < 10) { echo "おはようございます。"; } else if (10 <= $hour && $hour < 18) { echo "こんにちは"; } else { echo "こんばんは"; }
なんか実際の時間とずれているんですが、設定の違いだと思います。
入力フォーム
入力した名前を表示します。
index.php
<body> <?php require("greeting.php"); ?> <?php require("form.php"); ?> <form action="index.php" method="get"> <p> 名前を入力してください: <input type="text" name="name" /> <input type="submit" value="送信" /> </p> </form> </body>
form.php
<?php if (isset($_GET["name"]) && strlen($_GET["name"]) > 0) { echo "<p>", htmlspecialchars($_GET["name"], ENT_QUOTES, "UTF-8"),"</p>"; }
htmlspecialchars() というメソッドは安全に HTML 文字列に変換するためでしょうか。
https://www.php.net/manual/ja/function.htmlspecialchars.php
ひとこと掲示板
N予備校で似たようなことをやりましたが、PHPの方が簡易に記述できると思います。
データベース作成
環境は XAMPP を使っています。DB は phpMyAdmin を使います。
bbs_online というデータベースに次の SQL 文を実行します。
CREATE TABLE `post` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `name` VARCHAR(40), `comment` VARCHAR(200), `created_at` DATETIME, PRIMARY KEY(id) ) ENGINE = INNODB;
bbs.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>ひとこと掲示板</title> </head> <body> <h1>ひとこと掲示板</h1> <form action="bbs.php" method="post"> 名前: <input type="text" name="name" /><br /> ひとこと: <input type="text" name="comment" size="60" /><br /> <input type="submit" name="submit" value="送信" /> </form> </body> </html> <?php require("save_mysql.php");
save_mysql.php
本の環境は PHP5 ですが、僕の環境はPHP7なので、mysqli を使います。
<?php // phpMyAdmin に接続 $url = "localhost"; $user = "root"; $pass = ""; $db = "online_bbs"; $mysqli = new mysqli($url, $user, $pass, $db); if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } $mysqli->set_charset('utf8'); $errors = array(); // POSTならDBに保存 if ($_SERVER["REQUEST_METHOD"] === "POST") { // 名前のチェック $name = null; if (!isset($_POST["name"]) || !strlen($_POST["name"])) { $errors["name"] = "名前を入力してください"; } else if (strlen($_POST["name"]) > 40) { $errors["name"] = "名前は40文字以内で入力してください"; } else { $name = $_POST["name"]; } // ひとことが正しく入力されているかチェック $comment = null; if (!isset($_POST["comment"]) || !strlen($_POST["comment"])) { $errors["comment"] = "ひとことを入力してください"; } else if (strlen($_POST["comment"]) > 200) { $errors["comment"] = "ひとことは200字以内で入力してください"; } else { $comment = $_POST["comment"]; } // エラーがなければDBに保存する if (count($errors) === 0) { // 保存するためのSQL文 $sql = "INSERT INTO `post` (`name`, `comment`, `created_at`) VALUES ('" . $mysqli->real_escape_string($name) . "', '" . $mysqli->real_escape_string($comment) . "', '" . date("Y-m-d H:i:s") . "')"; $mysqli->query($sql); } else { echo $errors["comment"], PHP_EOL; } $mysqli->close(); }
本

- 作者: 小川雄大,柄沢聡太郎,橋口誠
- 出版社/メーカー: 技術評論社
- 発売日: 2014/10/31
- メディア: Kindle版
- この商品を含むブログを見る