1 Commits

Author SHA1 Message Date
e639aa892c StringCheck 1~4段階完了 2026-10-16 15:00:54 +09:00
2 changed files with 40 additions and 24 deletions

View File

@@ -24,31 +24,33 @@
<body> <body>
<?php <?php
// ここにPHPのコードを記述してください // ここにPHPのコードを記述してください
// POSTリクエストがあった場合に処理を実行 // POSTリクエストがあった場合に処理を実行
$message = "";
$errorMessage = ""; // POSTリクエストがあった場合、
$successMessage = ""; if ($_SERVER["REQUEST_METHOD"] === "POST") {
if ($_SERVER['REQUEST_METHOD'] === 'POST') { // POST変数を用いて、送信されたデータを取得して、$topic変数に代入する
$inputResult = inputCheck($_POST['topic']); // 送信されたデータを取得した$topic変数に含まれたホワイトスペースを取り除く
$errorMessage = $inputResult["???"]; $topic = trim($_POST["topic"]);
$message = $inputResult["???"];
//$topicの情報が空欄ではない場合、
if (!empty($topic)) {
// 投稿が成功した場合、
$successMessage = "投稿成功しました。";
//$topicの情報が空欄の場合、
} else if (empty($topic)) {
$errorMessage = "入力がありません。";
// 文字数が21字以上の場合、
// 文字列から配列に変換できる関数(explode)を使用
} }
$words = explode("\n", $topic);
function inputCheck($checkValue) // 一行ずつ取り出す
{ foreach ($words as $line) {
// 以下の変数はローカルスコープ。30行目の$errorMessageとは別物だよ。あれはグローバルスコープ。 // カウント(mb_strlenを用いる)して21字以上の場合、
$errorMessage = ""; if (mb_strlen($line, 'UTF-8') >= 21)
$inputValue = null; $errorMessage = "21文字を超えています:対象行の内容";
if (!empty($checkValue)) {
// 以下に文字列チェックの処理を記述してください
} }
return array(
"errorMessage" => $errorMessage,
"message" => $inputValue
);
} }
?> ?>
@@ -69,7 +71,9 @@
src="image/itc.png" width="40" height="40"></label> src="image/itc.png" width="40" height="40"></label>
<div class="col-xs-10"> <div class="col-xs-10">
<textarea name="topic" id="topic" rows="2" <textarea name="topic" id="topic" rows="2"
placeholder="いまなにしてる?" class="form-control"></textarea> placeholder="いまなにしてる?" class="form-control">
</textarea>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -98,10 +102,22 @@
</div> </div>
<div class="panel-body"> <div class="panel-body">
<?php <?php
if (!empty($message)) { // 変数topicがなにも入ってない場合
if (!empty($topic)) {
// 投稿メッセージをここで表示 // 投稿メッセージをここで表示
// explodeで改行ごとに分割する
$topics = explode("\n", $topic);
// 一行ずつ取り出す
foreach ($topics as $line) {
// 出力
echo htmlspecialchars($line, ENT_QUOTES, 'UTF-8') . "<br>";
}
} else { } else {
echo $err_msg; echo "まだ投稿はありません。";
// テキストエリアに何も入力せず投稿した場合、
// 「入力がありません。」 とエラーメッセージを表示させてください
} }
?> ?>
</div> </div>