143 lines
3.9 KiB
PHP
143 lines
3.9 KiB
PHP
<!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
|
|
// ノルマの回答になります!1~4段階目
|
|
|
|
function inputCheck($checkValue)
|
|
{
|
|
$errorMessage = "";
|
|
$inputValue = null;
|
|
|
|
// 入力が空かどうかをチェック
|
|
if (empty($checkValue)) {
|
|
$errorMessage = "入力がありません。";
|
|
} else {
|
|
// 改行で分割
|
|
$lines = preg_split('/\r\n|\r|\n/', $checkValue);
|
|
$valid = true;
|
|
|
|
// 各行をチェック
|
|
foreach ($lines as $line) {
|
|
if (mb_strlen($line) > 20) {
|
|
$valid = false;
|
|
$errorMessage = "21文字を超えています: " . htmlspecialchars($line);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ($valid) {
|
|
$inputValue = nl2br(htmlspecialchars($checkValue)); // 改行を <br> に変換
|
|
}
|
|
}
|
|
|
|
return ["error" => $errorMessage, "input" => $inputValue];
|
|
}
|
|
|
|
// POSTリクエストがあった場合に処理を実行
|
|
$message = "";
|
|
$errorMessage = "";
|
|
$successMessage = "";
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$inputResult = inputCheck($_POST['topic']);
|
|
$errorMessage = $inputResult["error"];
|
|
|
|
if (empty($errorMessage)) {
|
|
$message = $inputResult["input"];
|
|
$successMessage = "投稿しました。";
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!-- 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="stringCheckAnswer1.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 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 if (!empty($message)): ?>
|
|
<div class="list-group">
|
|
<?php echo $message;
|
|
?>
|
|
</div>
|
|
<?php else: ?>
|
|
<p>まだ投稿はありません。</p>
|
|
<?php endif; ?>
|
|
</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>
|