ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
PHP シンプル掲示板
日時: 2007/09/14 11:12
名前: lightbox



拡張子:
CREATE TABLE `board` (
  `board_id` bigint not null auto_increment,
  `board_title` varchar(50),
  `board_name` varchar(20),
  `board_pass` varchar(40),
  `board_body` mediumtext,
  `board_create` datetime,
  PRIMARY KEY (`board_id`)
)
1) フォームは、投稿用に一つ、アーティクル表示毎に一つ作成する。 2) 以下のコードは、Lacoocan サーバ対応ですが、通常サーバーでも稼動します
拡張子:
ini_set( 'display_errors', "1" );
function inc( $path ) {
	$inc = @file( $path );
	array_shift($inc);
	array_pop($inc);
	$GLOBALS['inc_eval_txt'] = implode( "", $inc );
	eval($GLOBALS['inc_eval_txt']);
}
メンテナンス

コード ( レベル1 ) ( No.1 )
日時: 2018/02/04 19:19
名前: lightbox


日時: 2018/02/04 19:19
名前: lightbox
拡張子:
<?
ini_set( 'display_errors', "1" );
function inc( $path ) {
	$inc = @file( $path );
	array_shift($inc);
	array_pop($inc);
	$GLOBALS['inc_eval_txt'] = implode( "", $inc );
	eval($GLOBALS['inc_eval_txt']);
}
$conf_client_charset = "euc-jp";
$conf_db_type = 1;
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Content-Type: text/html; Charset=$conf_client_charset" );
# **********************************************************
# 外部ファイル
# **********************************************************
inc( "http://lightbox.in.coocan.jp/gen/db.txt" );

?>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=<?= $conf_client_charset ?>">
<TITLE>シンプル掲示板</TITLE>
<STYLE type="text/css">
* {
	font-family: "MS Pゴシック";
	font-size: 12px;
}
BODY {
	background-color: white;
	color: black;
}
.honbun {
	padding:10px;
	width:100%;
	height:100%;
	border-color:black;
	border-style:solid;
	border-width:1px;
}

</STYLE>

<SCRIPT language="javascript" type="text/javascript">

// *********************************************************
// フォームのチェック
// *********************************************************
function CheckData() {

	var str = document.getElementsByName("title")[0].value;
	var obj = document.getElementsByName("title")[0];

	if ( Trim(str) == "" ) {
		alert( "タイトルを入力して下さい  " );
		obj.focus();
		return false;
	}

	str = document.getElementsByName("body")[0].value;
	obj = document.getElementsByName("body")[0];

	if ( Trim(str) == "" ) {
		alert( "本文を入力して下さい  " );
		obj.focus();
		return false;
	}

	return true;
}

function Trim( strValue ) {

	// 以下[]内の空白に見えるのは漢字スペース
	var regL = /^[ \s]+/;
	var regR = /[ \s]+$/;

	strValue = strValue.replace(regL,"");
	strValue = strValue.replace(regR,"");

	return strValue;

}


</SCRIPT>
<BODY style='text-align:center'>

<FORM
	onSubmit='return CheckData()'
>

<TABLE border=1>
	<TR>
		<TD>タイトル</TD>
		<TD><INPUT type=text name=title value="<?= $_GET['title'] ?>"></TD>
	</TR>
	<TR>
		<TD>名前</TD>
		<TD><INPUT type=text name=name value="<?= $_GET['name'] ?>"></TD>
	</TR>
	<TR>
		<TD>本文</TD>
		<TD><TEXTAREA name=body cols=80 rows=10></TEXTAREA></TD>
	</TR>

	<TR>
		<TD colspan=2><INPUT type=submit name=send value="送信"></TD>
	</TR>
</TABLE>

</FORM>
<HR>
<?

if ( $_GET['debug'] == 'y' ) {
	print "<PRE>";
	print_r($_GET);
	print "</PRE>";
}

# **********************************************************
# 接続
# **********************************************************
$SQL = new DB( "localhost", "********", "********", "********"  );

# **********************************************************
# 更新
# **********************************************************
if ( $_GET['send'] != '' ) {
	$Query = " insert into board (board_title,board_name,board_pass,board_body,board_create) ";
	$Query .= " values('{$_GET['title']}','{$_GET['name']}',null,'{$_GET['body']}',now()) ";
	$SQL->Execute( $Query );
}


$Query = "select * from board order by `board_create` desc";

$Column = $SQL->QueryEx( $Query );

print "<TABLE border=0 style='table-layout:fixed;width:80%'>\n";
while( $Column ) {

	print "<TR>\n";
	print "<TD style='line-height:20px;'>【{$Column['board_title']}】: {$Column['board_create']}\n";
	print "<br>発言者 : {$Column['board_name']}\n";
	print "</TD>\n";
	print "</TR>\n";
	print "<TR>\n";
	print "<TD valign=top><PRE class=honbun>{$Column['board_body']}</PRE></TD>\n";
	print "</TR>\n";

	$Column = $SQL->QueryEx( );
}
print "</TABLE>\n";

# **********************************************************
# 接続解除
# **********************************************************
$SQL->Close();

?>
<br>
</BODY>
</HTML>
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
画面状態初期化ボタン ( No.2 )
日時: 2007/09/14 10:50
名前: lightbox
拡張子:
print "<INPUT type=button value='戻る' onClick='location=\"board.php\"'>";
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
削除チェック ( No.3 )
日時: 2007/09/14 11:06
名前: lightbox
拡張子:
function CheckDelete( no ) {

	var str = document.getElementsByName("password")[no].value;
	var obj = document.getElementsByName("password")[no];

	if ( Trim(str) == "" ) {
		alert( "パスワードを入力して下さい  " );
		obj.focus();
		return false;
	}

	return true;
}
拡張子:
$row = 1;
print "<TABLE border=0 style='table-layout:fixed;width:80%'>\n";
while( $Column ) {

	print "<TR>\n";
	print "<TD style='line-height:20px;'>【{$Column['board_title']}】: {$Column['board_create']}\n";
	print "<br>発言者 : {$Column['board_name']}\n";
	print "</TD>\n";
	print "</TR>\n";
	print "<TR>\n";
	print "<TD valign=top><PRE class=honbun>{$Column['board_body']}</PRE></TD>\n";
	print "</TR>\n";
	print "<TR>\n";
	print "<TD valign=top>\n";
		print "<FORM onSubmit='return CheckDelete( $row )'>\n";
		print "<INPUT type=submit name=send value='削除'>\n";
		print "削除パスワード\n";
		print "<INPUT type=password name=password>\n";
		print "<INPUT type=hidden name=board_id value='{$Column['board_id']}'>\n";
		print "</FORM>\n";
		print "<br><br><br><br><br>";
	print "</TD>\n";
	print "</TR>\n";

	$Column = $SQL->QueryEx( );
	$row++;
}
print "</TABLE>\n";
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
削除パスワード投入用画面定義の追加 ( No.4 )
日時: 2007/09/14 11:15
名前: lightbox
拡張子:
<TABLE border=1>
	<TR>
		<TD>タイトル</TD>
		<TD><INPUT type=text name=title value="<?= $_GET['title'] ?>"></TD>
	</TR>
	<TR>
		<TD>名前</TD>
		<TD>
			<INPUT type=text name=name value="<?= $_GET['name'] ?>">
			削除パスワード
			<INPUT type=password name=password>
		</TD>
	</TR>
	<TR>
		<TD>本文</TD>
		<TD><TEXTAREA name=body cols=80 rows=10></TEXTAREA></TD>
	</TR>

	<TR>
		<TD colspan=2><INPUT type=submit name=send value="送信"></TD>
	</TR>
</TABLE>
以下、更新処理の変更
拡張子:
if ( $_GET['send'] != '' ) {
	$Query = " insert into board (board_title,board_name,board_pass,board_body,board_create) ";
	$pass = sha1($_GET['password']);
	$Query .= " values('{$_GET['title']}','{$_GET['name']}','$pass','{$_GET['body']}',now()) ";
	$SQL->Execute( $Query );
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
削除用サーバー側入り口 ( No.5 )
日時: 2007/09/14 11:09
名前: lightbox
拡張子:
if ( $_GET['send'] == '削除' ) {

	# 処理

	print "<INPUT type=button value='戻る' onClick='location=\"board.php\"'>";
	exit();
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス