学園物(仮)

学園物(仮)

本ウェブページでは、新しくウェブゲームを作るにあたって、完成までの設計・及びゲームアプリを構築する為のプログラムのノウハウをブログ形式にて紹介していきたいと思います。

未だ作成途中でもありますので、皆様のアイデア・プログラムを提供頂けるのでしたら、是非、ご提案お願い致します。

(C)あいねこの館
学園物(仮)

TOPページ
▼スポンサードリンク


関数を紹介
携帯電話製造番号の取得
コメントフォーム
チャット
チャット(自動リロード)
◆アイテム売買
◆オークション
◆データベース系
◆2人でお出かけ
◆アイテム登録・削除・使用
◆クイズ
◆2択・3択から特性決定
◆ユーザID登録
◆パスワード変更機能
◆ログインフォーム
◆Q&Aフォーム

ミニゲーム
◆ビンゴゲーム
◆為替トレード
◆株トレード
◆宝くじ

物語を紹介

イベントの紹介

設定項目
ステイタス
アイテム
ロケーション
年間カレンダー

テーブル設計
ユーザアカウント
ユーザ情報
ユーザアイテム
フレンドリスト


写真/画像の紹介

開発スケジュール

要求・質問


実際の動作

【関数名】form(設定パス)  戻り値なし
【関数内容】チャットフォームを出力する

<?

//########################################
//##### 元々取得しておく項目 #####
//########################################
$user_name = "test";
include("config.php");
require("function.php");

//チャットを記述するパスを設定
$chat_path = "main.txt";

//チャットの記述かどうかフラグを立てる
$chat_write = $_POST["chat_write"];
if($chat_write==""){
    $chat_write = 0;
}

//チャットフォームの呼び出し
chat($chat_path,$user_name,$chat_write);

//チャットを呼び出し・書き込みする関数
function chat($chat_path,$user_name,$chat_write){

    //送信ボタンのインタフェース
    global $chat_form;

    //チャットを記述する場合は書き込みする
    if($chat_write == 1){

        //書き込みメッセージを取得する
        $chat_message = $_POST["chat_message"];

        //入力情報をチェックする
        $chat_message = strip_tags($chat_message);
        $chat_message = str_replace("\n","",$chat_message);
        $chat_message = trim($chat_message);

        if($chat_message==""){
            //空欄の場合は処理を中止する
            $chat_error = "メッセージを記述して下さい。";
        }
        else{

            //ログ情報を取得する
            include("time.php");
            $chat_time = $time1 . "(" . $time2 . ")";

            //ログ情報を纏める
            $chat_message = $user_name."\t".$chat_time."\t".$chat_message."\t".$ip."\t".$host."\n";

            //書き込み内容を保存する
            file_mode($chat_path,"aa",$chat_message);
        }
    }

    //チャット画面の生成
    print "<table><tr><td>";

    print "<form action=\"\" method=\"POST\">
    メッセージ:<input type=\"text\" name=\"chat_message\" size=\"40\">
    <input type=\"hidden\" name=\"chat_write\" value=\"1\">
    </td><td>
    <input type=\"submit\" name=\"send\" value=\"送信\" $chat_form> <a href=\"chat.php\">更新</a></td>
    
    <tr><td colspan=2>".
    $chat_error."
    <hr class=chat></td></tr>";
    
    //チャットファイルがあれば表示する
    if(!file_exists($chat_path)){}
    else{
        $i=0;
        $templog = file($chat_path);

        //最新の30メッセージを表示する
        while($templog[$i]!="" && $i<30){

            //チャットのログを読み取る
            list($name,$zikan,$message,$ip,$host)=explode("\t",$templog[$i]);

            //チャットの内容を纏める
            $chat_contents = $chat_contents .$name.":".$message."<br>";
            $i=$i+1;
        }
    }
    print "</form>";

    print "<tr><td colspan=2>".$chat_contents."</td></tr></table>";

}

//config.php
<?
    //##########################################
    //##### チャットの色を変更する #####
    //##########################################

    //書き込みの色の変更
    $comment_form = "STYLE=\"color:black;background-color:white;border:1px solid black\"";
?>

//function.php
<?



//ファイル入出力を制御する関数
function file_mode($file_path,$file_mode,$write_data){

    //最後の出力結果
    $data = "";

    //ファイルを読み込む場合
    if($file_mode=="r" || $file_mode=="r+"){
        
        //ファイルが存在するか調べる
        if(file_exists($file_path)){
            $data = file_get_contents($file_path);
        }
        else{
            $data = "読み込むファイルが存在しません。";
        }
    }
    //ファイルを書き込む場合
    elseif($file_mode=="w" || $file_mode=="w+"){

        $fp = fopen($file_path,$file_mode);

        if (!$fp) {
            $data= "ファイルポインタのオープンに失敗しました。";
        }
        if (!flock($fp,2)) {
            $data = "ファイルロックに失敗しました。";
        }
        if (!fputs($fp,$write_data)) {
            $data = "書き込みに失敗しました。";
        }
        if (!flock($fp,3)) {
            $data = "ファイルロックの解放に失敗しました。";
        }

        //ファイルに正常に書きこめた場合の戻り値を1にする
        if($data==""){
            $data = 1;
        }

        fclose($fp);

    }
    //ファイルモードがa系の場合
    elseif($file_mode=="a" || $file_mode=="a+" || $file_mode=="aa" || $file_mode=="aa+"){


        //ファイルの最後に書き込む場合
        if($file_mode=="a" || $file_mode=="a+"){

            $fp = fopen($file_path,$file_mode);

            if (!$fp) {
                $data= "ファイルポインタのオープンに失敗しました。";
            }
            if (!flock($fp,2)) {
                $data = "ファイルロックに失敗しました。";
            }

            if (!fputs($fp,$write_data)) {
                $data = "書き込みに失敗しました。";
            }
            if (!flock($fp,3)) {
                $data = "ファイルロックの解放に失敗しました。";
            }

            fclose($fp);

        }
        //ファイルの最後に書き込む場合
        else{
            if(file_exists($file_path)){
                //ファイルの内容を読みこんでおく
                $data = file_get_contents($file_path);
            }

            //書き込む内容を戦闘にする
            $write_data = $write_data . $data;

            $fp = fopen($file_path,"w");

            if (!fputs($fp,$write_data)) {
                $data = "書き込みに失敗しました。";
            }
            if (!flock($fp,3)) {
                $data = "ファイルロックの解放に失敗しました。";
            }

            fclose($fp);

            $data = 1;

        }

        if($data==""){
            $data = 1;
        }

    }
    else{
        $data = "ファイルモードが不正です。";
    }

    return $data;

}

?>