ブログシステムの構築(2)

登録画面を作る

  1. 「admin」フォルダーを作成
  2. 新規PHPファイル作成
  3. ファイル名を「input.php」とする


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>記事登録画面</title>
<link href="../css/base.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<h1>Blogシステム管理画面</h1>
<h2>記事登録画面</h2>
<p><a href="index.php">一覧画面にもどる</a></p>
<p>記事の内容を入力して、[登録]ボタンをクリックしてください。</p>
<form id="formMain" name="formMain" method="POST" action="">
<p class="formtitle">タイトル</p>
<p><input name="subject" type="text" id="subject" size="50" maxlength="255" /></p>
<p class="formtitle">内容</p>
<p><textarea name="digest" cols="50" rows="5" id="digest"></textarea></p>
<p class="formtitle">続き</p>
<p>※ここに「続き」を追加</p>
<p><input type="submit" name="Submit" value="登録" /></p>
</form>
</body>
</html>
@charset "UTF-8";

*{
	margin: 0;
	padding: 0;
	font-style: normal;
	font-weight: normal;
}
body{
  color: #333;
	margin: 25px;
}
h1 {
	font-size: 1em;
	font-weight: bold;
	border-left: 5px solid #09C;
	padding-left: 8px;
	margin-bottom: 25px;
}
h2 {
	font-size: 1em;
	font-weight: bold;
	margin-bottom: 25px;
}
p,form {
	font-size: 0.9em;
	margin: 0 0 15px 12px;
}
p.formtitle {
	padding-left: 8px;
	border-left: 5px solid #CCC;
	margin-bottom: 2px;
}
input {
	font-size: 0.8em;
	padding: 1px 4px;
}
table,th,td {
	border: solid 1px #999999;
	border-collapse: collapse;
}
th {
	font-weight: bold;
	background-color: #F0F0F0;
	padding: 5px;
}
td {
	padding: 5px;
	text-align: center;
}
dl.comment {
	margin-bottom: 2em;
}
dl.comment dt {
	margin-top: 1em;
}

テキストフィールの追加

  • テキストフィールド名:document_text
  • 文字数:50
  • ライン数:20
  • タイプ:マルチライン
  • 折り返し:初期設定
<p class="formtitle">続き</p>
<p>
<textarea name="document_text" cols="50" rows="20" id="document_text"></textarea>
</p>

データベースの登録

  • 「サーバービヘイビア」パネルで、「レコードの挿入」



documentフィールドの送信形式を変更

  • 値:FORM.document_text
  • 送信方式:テキスト
  • 更新後の移動先:index.php

<?php require_once('../Connections/MyBlogDatabase.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formMain")) {
  $insertSQL = sprintf("INSERT INTO entry_table (subject, digest, `document`) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['subject'], "text"),
                       GetSQLValueString($_POST['digest'], "text"),
                       GetSQLValueString($_POST['document_text'], "text"));

  mysql_select_db($database_MyBlogDatabase, $MyBlogDatabase);
  $Result1 = mysql_query($insertSQL, $MyBlogDatabase) or die(mysql_error());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>記事登録画面</title>
<link href="../css/base.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<h1>Blogシステム管理画面</h1>
<h2>記事登録画面</h2>
<p><a href="index.php">一覧画面にもどる</a></p>
<p>記事の内容を入力して、[登録]ボタンをクリックしてください。</p>
<form id="formMain" name="formMain" method="POST" action="<?php echo $editFormAction; ?>">
<p class="formtitle">タイトル</p>
<p>
<input name="subject" type="text" id="subject" size="50" maxlength="255" />
</p>
<p class="formtitle">内容</p>
<p>
<textarea name="digest" cols="50" rows="5" id="digest"></textarea>
</p>
<p class="formtitle">続き</p>
<p>
<textarea name="document_text" cols="50" rows="20" id="document_text"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="登録" />
</p>
<input type="hidden" name="MM_insert" value="formMain" />
</form>
</body>
</html>
動作確認


登録した文字が文字化けした場合の対処法

mysql_query("SET NAMES UTF8");


を追加します。