学園物(仮)

学園物(仮)

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

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

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

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


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

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

物語を紹介

イベントの紹介

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

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


写真/画像の紹介

開発スケジュール

要求・質問


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

<?
//フォームの設定パスを読み取る
$form_path = "form_style.php";

function form($form_path){

    include($form_path);

    //送信された内容を取得する
    $name = $_POST{"name"};
    $mail = $_POST{"mail"};
    $comment = $_POST{"comment"};
    $write = $_POST{"write"};

    //書き込みフラグが有効ではない場合
    if($write!=1){

        //入力フォームを出力する
        print "<form action=\"\" method=post>";
        print "<table>";
        print "<tr><td class=form>名前</td><td><input type=\"text\" name=\"name\" size=\"$name_num\" value=$name></tr>";
        print "<tr><td class=form>メールアドレス</td><td><input type=\"text\" name=\"mail\" size=\"$mail_num\" value=$mail></tr>";
        print "<tr><td class=comment>コメント</td><td><textarea name=\"comment\" cols=\"$comment_cols\" rows=\"$comment_rows\">$comment</textarea></tr>";
        print "<tr><td colspan=2><input type=\"submit\" NAME=\"send\" VALUE=\"送信する\" $form_style></td>";

        //送信されたかどうかフラグを立てる
        print "<input type=\"hidden\" name=\"write\" value=1>";
        print "</table>";
    }
    else{
        //ログ情報の取得
        //現在の日付を取得
        $time = gmdate("Y/m/d",time()+60*60*9);

        //現在の時刻を取得
        $time2 = gmdate("H:i",time()+60*60*9);

        //日付の取得
        $time3 = date("D",time());

        //IPアドレスを取得
        $ip=getenv("REMOTE_ADDR");

        //ホスト情報を取得
        $host = getenv("REMOTE_HOST");
        if (!$REMOTE_HOST){
         $host = gethostbyaddr($ip);
        }

        //直前のURLを取得
        $url=getenv("HTTP_REFERER");

        //ブラウザ情報を取得
        $brw=getenv("HTTP_USER_AGENT");

        $log = "IP:".$ip."\nホスト:".$host."\nリファラー:".$url."\nブラウザ:".$brw."\n\n";

        //内容チェック
        $comment2=strip_tags($comment);
        $comment2=str_replace("\n","",$comment);
        $comment2=trim($comment);

        $mail2=strip_tags($mail);
        $mail2=str_replace("\n","",$mail);
        $mail2=trim($mail);

        $name2=strip_tags($name);
        $name2=str_replace("\n","",$name);
        $name2=trim($name);

        //名前が何もない場合
        if($name2=="" && $default_name==1){
            $error=1;
            $name_error = "名前が記載されていません!<br>";
            $error_contents = $error_contents . $name_error . "<br>";
        }

        //メールアドレスの記述が何もない場合
        if($mail2=="" && $default_mail==1){
            $error=1;
            $mail_error = "メールアドレスが記載されていません!<br>";
            $error_contents = $error_contents . $mail_error . "<br>";
        }

        //コメントの記述が何もない場合
        if($comment2=="" && $default_comment==1){
            $error=1;
            $comment_error = "コメントが記載されていません!<br>";
            $error_contents = $error_contents . $comment_error . "<br>";
        }

        //エラーによる場合分け
        if($error==1){
            //エラーが存在する場合は、エラー内容を表示する
            print $error_contents;
            //戻るフォームを出力する
            print "<form action=\"\" method=post>";
            print "<input type=\"hidden\" name=\"name\" value=$name2>";
            print "<input type=\"hidden\" name=\"mail\" value=$mail2>";
            print "<input type=\"hidden\" name=\"comment\" value=$comment2>";

            print "<input type=\"submit\" NAME=\"send\" VALUE=\"戻る\" $form_style>";

        }
        else{
            //エラーがない場合
            print $thanks."<br><br>";
            
            //戻るフォームを出力する
            print "<form action=\"\" method=post>";
            print "<input type=\"hidden\" name=\"write\" value=0>";

            print "<input type=\"submit\" NAME=\"send\" VALUE=\"戻る\" $form_style>";
            

            //メールを送信するかどうか
            if($mail_flag==1){
                
                //メールのタイトル
                $mail_title = $time." " . $time2 . "の書き込みです";
                $mail_contents = $time." " . $time2 . "の書き込み\n\n" . "名前:" . $name2 ."\nメールアドレス:" .$mail."\n内容:".$comment."\n\n".$log;
                $from_mailaddress = "From:".$from_mailaddress;
                mail($to_mailaddress,$mail_title,$mail_contents,$from_mailaddress);
            }

            //ログファイルに書き込み
            $log_contents = $time."\t".$time2."\t".$name2."\t".$mail."\t".$comment."\t".$ip."\t".$host."\t".$url."\t".$brw."\n";
            file_mode($log_path,"aa",$log_contents);

        }

    }

}

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{
            
            //ファイルの内容を読みこんでおく
            $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;

}
?>





【設定ファイル】form_style.php
<?
//フォームの色を変更する
$form_style = "STYLE=\"color:black;background-color:white;border:1px solid black\"";

//フォーム入力の幅を変更する
$name_num = 20;//名前
$mail_num = 20;//メールアドレス
$comment_cols = 20;//コメントの横幅
$comment_rows = 5;//コメントの縦幅

//名前がエラーの時のコメント
$name_error = "・名前が不正です";

//メールがエラーの時のコメント
$comment_error = "・メールアドレスが不正です";

//コメントがエラーの時のコメント
$comment_error = "・コメント内容が不正です";

//メッセージ書き込み時のコメント
$thanks = "メッセージ有難う御座います!!";

//必須項目を設定する(1で必須)
$default_name = 1;//名前が必須かどうか
$default_mail = 0;//メールが必須かどうか
$default_comment = 1;//コメントが必須かどうか


//メールを送信するか(1で送信)
$mail_flag = 1;
//送信するメールアドレス
$to_mailaddress = "admin@aineko.com";
//送信元のメールアドレス
$from_mailaddress = "admin@aineko.com";

//書き込み内容を保存するファイルパス
$log_path = "log.txt";
?>