1. 現在位置:
  2. トップページ
  3. HP作成tips
  4. PHP-掲示板B
掲示板B
スクリプトはPHP4で書かれております。
■ サンプル

「掲示板B」こちら
メールアドレスとURLの記入欄あり。
タグは使えないようになっています

掲示板本体 bbsb.php
ログファイル res.html(パーミッション666)
上記2つを同じ所において、bbsb.phpにアクセスして下さい。

■ ソース

bbsb.php  レイアウトはご自由に
<HTML>
<HEAD>
<META Http-Equiv="Content-Type" Content="text/html;charset=x-sjis">
<TITLE>掲示板</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#3333ff" VLINK="#000033" ALINK="#ffff00">
<CENTER>
<FORM METHOD="post" ACTION="<? echo $_SERVER['PHP_SELF']; ?>">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BGCOLOR="#ffffff">
<TR>
        <TD ALIGN="right"><FONT SIZE="2">NAME >></FONT><input type="text" name="name" size="20"></td>
        <TD ROWSPAN="3"><textarea rows="6" cols="40" name="comment"></textarea></TD></TR>
<TR>
        <TD ALIGN="right"><FONT SIZE="2">E-MAIL >></FONT><input type="text" size="20" name="mail" value=""></TD></TR>
<TR>
        <TD ALIGN="right"><FONT SIZE="2">URL >></FONT><input type="text" size="20" name="url" value=""></TD></TR>
<TR>
        <TD COLSPAN="2" ALIGN="right" VALIGN="top"><input type="submit" name="submit" value=" >> send "></td></tr>
</TABLE>
</FORM>

<?php
$count_max = 20;
$countlog_max = 100;

$comment = $HTTP_POST_VARS["comment"];
$name = $HTTP_POST_VARS["name"];
$mail = $HTTP_POST_VARS["mail"];
$url = $HTTP_POST_VARS["url"];

$submit = $HTTP_POST_VARS["submit"];
$daytime = date('Y/m/d/H:i');        // 日時の設定
$logfile="res.html";    //ログ書き込み用ファイル

//ファイルの存在チェック
$logfile = "res.html";        //ファイルへのパスを指定
if (!file_exists($logfile)) {
        print("ファイルがありません。<BR>\n");
        exit;
}

$lines = file($logfile);        //ファイルを配列に読み込む

//書き込みボタンが押されて呼出された後の処理
if ($submit == " >> send ") {

//入力のチェック
        if (!$name) {
                print("名前が入力されていません。<BR>\n");
                exit;
        }
        if (!$comment) {
                print("メッセージが入力されていません。<BR>\n");
                exit;
        }

        if (!$url) {
                $Aurl = $url;
                $Aurl = ""; //空
        }
                else{
                $Aurl = "<A HREF='$url' target='_blank'>URL</A>";
                }

        if (!$mail) {
                $Amail = $mail;
        $Amail = ""; //空
        }
                else{
                $Amail= "<A HREF='mailto:$mail'>MAIL</A>";
                }

//申などの特殊な決まった文字の後ろに\マークが入らないようにする
        $comment = stripslashes($comment);
        $name = stripslashes($name);

//「&,",<,>」を変換、タグ使用の場合は下記2行は消す
        $name = htmlspecialchars($name);
        $comment = htmlspecialchars($comment);

//"K" 「半角片仮名」を「全角片仮名」に変換
//"r"「全角」英字を「半角」に変換
//"V" 濁点付きの文字を一文字に変換。"K","H"と共に使用します。

        $pref = mb_convert_kana($name, "KVKV");
        $pref = mb_convert_kana($comment, "KVKV");
        $mail = mb_convert_kana($mail, "KVr");
        $url = mb_convert_kana($url, "KVr");

//改行を<BR>に変える
        $comment = nl2br($comment);

//ファイルに書き込む文字列の作成
        $message = "<TABLE CELLSPACING=1 CELLPADDING=0 WIDTH=500 bordercolor=#999999 border=0 bgcolor=#494949>";
        $message .= "<TR BGCOLOR=#ffffff><TD>";
        $message .= "<TABLE BORDER=0 CELLPADDING=7 CELLSPACING=0 BGCOLOR=#ffffff WIDTH=100%>";
        $message .= "<TR><TD BGCOLOR=#ffffff ALIGN=left><FONT COLOR=#494949 SIZE=2>$name   $Amail   $Aurl</FONT></TD>";
        $message .= "<TD BGCOLOR=#ffffff ALIGN=right><FONT COLOR=#494949 SIZE=2>$daytime</FONT></TD></TR>";
        $message .= "<TR><TD BGCOLOR=#ffffff COLSPAN=2 ALIGN=left><FONT COLOR=#797979 SIZE=2>$comment</FONT></TD></TR>";
        $message .= "</TABLE>";
        $message .= "</TD></TR></TABLE><BR>\n";

$fp = fopen ($logfile , "w");        //fopen=ファイルまたはURLをオープンする
        if ($fp == FALSE){
                print("ファイルポインタのオープンに失敗しました。<BR>\n");
                exit;
        }
        fputs ($fp, $message);        //fputs=ファイルポインタに書き込む
        for($i = 0; $i < $countlog_max; $i++)        //最大表示
                fputs($fp, $lines[$i]);
        fclose ($fp);        //ファイルクローズ
                echo $message;        //表示
        }

        for($i = 0; $i <= $count_max; $i++)
                echo $lines[$i];

?>

<TABLE CELLSPACING="0" CELLPADDING="3" BORDER="0" width="400" BORDERCOLOR="#ffffff">
<TR><TD COLSPAN="3" ALIGN="right" BGCOLOR="#ffffff"><A HREF="res.html"><FONT SIZE=2>100件までの書き込みはこちら</FONT></A></TD></TR>
</TABLE>
</CENTER>
</BODY>
</HTML>