Files
StringChecker/StringCheck.php

141 lines
4.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel=stylesheet type="text/css" href="css/bootstrap.min.css">
<link rel=stylesheet type="text/css" href="css/bootstrap-theme.min.css">
<link rel=stylesheet type="text/css" href="css/styleSheet.css">
<link
href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css"
rel="stylesheet">
<link href="css/pnotify.custom.min.css" media="all" rel="stylesheet"
type="text/css" />
<title>StringCheck</title>
<style>
/* テキストエリアがパネルをはみ出さないようにする */
.panel-body .form-control {
max-width: 100%;
box-sizing: border-box;
}
</style>
</head>
<body>
<?php
// ここにPHPのコードを記述してください
// POSTリクエストがあった場合に処理を実行
// POSTリクエストがあった場合、
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// POST変数を用いて、送信されたデータを取得して、$topic変数に代入する
// 送信されたデータを取得した$topic変数に含まれたホワイトスペースを取り除く
$topic = trim($_POST["topic"]);
//$topicの情報が空欄ではない場合、
if (!empty($topic)) {
// 投稿が成功した場合、
$successMessage = "投稿成功しました。";
//$topicの情報が空欄の場合、
} else if (empty($topic)) {
$errorMessage = "入力がありません。";
// 文字数が21字以上の場合、
// 文字列から配列に変換できる関数(explode)を使用
}
$words = explode("\n", $topic);
// 一行ずつ取り出す
foreach ($words as $line) {
// カウント(mb_strlenを用いる)して21字以上の場合、
if (mb_strlen($line, 'UTF-8') >= 21)
$errorMessage = "21文字を超えています:対象行の内容";
}
}
?>
<!-- main -->
<div class="container">
<div class="row">
<!-- 投稿 -->
<div class="col-xs-offset-3 col-xs-6">
<div class="panel panel-info">
<div class="panel-heading">
<h3 class="panel-title">投稿フォーム</h3>
</div>
<div class="panel-body">
<form action="StringCheck.php" name="topicForm" id="topicForm"
class="form-horizontal" method="POST">
<div class="form-group">
<label class="col-xs-2 control-label"><img class="img"
src="image/itc.png" width="40" height="40"></label>
<div class="col-xs-10">
<textarea name="topic" id="topic" rows="2"
placeholder="いまなにしてる?" class="form-control">
</textarea>
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<button type="submit" class="btn btn-info">投稿</button>
</div>
</div>
</form>
<!-- 以下のようにphpとhtmlを混ぜて書くことができます -->
<?php if (!empty($errorMessage)): ?>
<div class="alert alert-danger"><?php echo $errorMessage; ?></div>
<?php endif; ?>
<?php if (!empty($successMessage)): ?>
<div class="alert alert-success"><?php echo $successMessage; ?></div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<!-- 投稿メッセージの表示 -->
<div class="row">
<div class="col-xs-offset-3 col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">投稿メッセージ</h3>
</div>
<div class="panel-body">
<?php
// 変数topicがなにも入ってない場合
if (!empty($topic)) {
// 投稿メッセージをここで表示
// explodeで改行ごとに分割する
$topics = explode("\n", $topic);
// 一行ずつ取り出す
foreach ($topics as $line) {
// 出力
echo htmlspecialchars($line, ENT_QUOTES, 'UTF-8') . "<br>";
}
} else {
echo "まだ投稿はありません。";
// テキストエリアに何も入力せず投稿した場合、
// 「入力がありません。」 とエラーメッセージを表示させてください
}
?>
</div>
</div>
</div>
</div>
</div>
<script src="js/jquery-1.11.2.min.js"></script>
<script src="js/jquery.uploadThumbs.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/pnotify.custom.min.js"></script>
<script type="text/javascript">
// 各ダイアログサブミット
function executeTopic() {
$("#topicForm").submit();
}
</script>
</body>
</html>