///////////////////////////////////////////////////////////////////////// //入力内容のチェック // //エラーフラグの初期化 $errorflag = 0; $errormsg[0] = ''; //タイトル //既存の占いから、管理モードへ(confirmation==4)の場合。 if ($confirmation == 4) { if ($uranai == '') { $confirmation = 99; $errormsg[0] = "不正なアクセスです。";} } //既存の占いから、管理モード。メールアドレス入力時(confirmation==5)。 //削除確認(confirmation==6)、削除実行時(confirmation==7) elseif ($confirmation == 5 || $confirmation == 6 || $confirmation == 7) { //DB読み込み $sql = "SELECT * FROM seibun_data where uranai='$uranai'"; $mysql->query($sql); $row = $mysql->fetch(); $title = $row["title"]; $initial = $row["initial"]; $content_file = $row["data"]; $email_db = $row["email"]; //改行を削除、トリミング $title = trim($title); $email_db = trim($email_db); $initial = trim($initial); $content_file = trim($content_file); //チェック if ($uranai == '') { $confirmation = 99; $errormsg[0] = "不正なアクセスです.";} elseif ($email == '') { $confirmation = 4; } elseif ($title == '') { $confirmation = 99; $errormsg[0] = "データエラー。";} } //thistimeパラメータがおかしい場合は、初期状態へ。 elseif ($thistime == '' || $thistime < 100000) { $confirmation = ''; } //メールアドレス入力時(confirmation==5)、メールアドレスチェック //削除確認(confirmation==6)、削除実行時(confirmation==7) if ($confirmation == 5 || $confirmation == 6 || $confirmation == 7) { //合致するかどうか if ($email != $email_db && $email != $masterpw ) { $confirmation = 99; $errormsg[0] = "メールアドレスに誤りがあります。"; } else { //マスターパスワードを表示しない $email = $email_db; } } //キャラクター入力時 if ($confirmation == 1 || $confirmation == 2 ) { //$thistime の文字列化、$uranaiの生成 $uranai_temp = base_convert($thistime, 10, 35); //重複チェック $sql = "SELECT * FROM seibun_data where title='$title' AND NOT uranai='$uranai_temp' LIMIT 0,1"; $mysql->query($sql); $row = $mysql->fetch(); if ($title == $row["title"]) { $errormsg[0] = "
既にこのタイトル名は利用されています。"; $errorflag = 1;} if ($title == "") { $errormsg[0] = "
タイトル名を入力してください"; $errorflag = 1;} if ($initial == "") { $errormsg[1] = "
タイトル名(ふりがな)を入力してください。"; $errorflag = 1;} if (preg_match("/[^あぁかがさざただなはばぱまやゃらわゎいぃきぎしじちぢにひびぴみりゐうぅくぐすずつづっぬふぶぷむゆゅるえぇけげせぜてでねへべぺめれゑおぉこごそぞとどのほぼぽもよょろをん1234567890ーう゛]/u",$initial)) // if (!preg_match("/^[ぁ-ゞー]+$/u",$initial)) { $errormsg[1] = "
タイトル名ふりがな)に平仮名以外の文字が含まれています。"; $errorflag = 1;} //分析名入力チェック $content_counter = 0; for ($i=1; $i<=$maxchara; $i++) { if ($content[$i] != "") { $content_counter++; } } if ($content_counter < 10) { $errormsg[3] = "
分析名が少なすぎます。10個以上の分析名を入力してください。"; $errorflag = 1;} //メールアドレスチェック if (preg_match("/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/",$email) ) { $errormsg[4] = ""; } else { $errormsg[4] = "
メールアドレスを入力していないか、入力に誤りがあります。"; $errorflag = 1;} //エラーがある場合はconfirmation=1 if ($errorflag == 1) { $confirmation == 1; } } //codeの確認 if ($confirmation == 2 || $confirmation == 7) { $time = ceil(time() / 1000); if (md5($code+$time) == $md5 || md5($code+$time-1) == $md5) {} else { $confirmation = 3; } } ///////////////////////////////////////////////////////////////////////// //初期状態 // if ($confirmation == '') { //現在の日付・時刻(秒単位) $thistime_r = gettimeofday(); $thistime = $thistime_r["sec"]; print <<自分で成分分析占いを作る

タイトル名

成分分析のタイトル名を入力してください。「○○成分分析」の○○だけで結構です。(例:スターバックス、逆転裁判)

タイトル名(ふりがな)

タイトル名のふりがなを、ひらがなで入力してください。(例:すたーばっくす、ぎゃくてんさいばん)

成分名

成分名を10個以上入力してください(多ければ多いほど成分分析占いの結果が面白くなります)。1マスにつき1成分を記載してください。
END; //キャラクター入力フォーム for ($i=1; $i<=$maxchara ; $i++) { $formname = sprintf("content%03d",$i); print <<  END; if ($i % 3 == 0) { print "
"; } } print <<

メールアドレス

あなたのメールアドレスを入力してください。(この項目は公開されませんが、今後修正して頂く際に必要となりますので、正確に入力してください。)

※あなたの作った占いは、基本的に公開されますので内容には十分注意してください。

END; } ///////////////////////////////////////////////////////////////////////// //データを入力しただけの状態 // elseif ($confirmation == '1') { ///////////////////////////////////////////////////////////////////////// //入力データが不完全な場合 // if ($errorflag != 0) { print <<

入力内容に誤りがあります。

タイトル名

成分分析のタイトル名を入力してください。「○○成分分析」の○○だけで結構です。(例:スターバックス、逆転裁判)$errormsg[0]

タイトル名(ふりがな)

タイトル名のふりがなを、ひらがなで入力してください。(例:すたーばっくす、ぎゃくてんさいばん)$errormsg[1]

成分名

成分名を10個以上入力してください(多ければ多いほど成分分析占いの結果が面白くなります)。1マスにつき1成分を記載してください。$errormsg[3]
END; //キャラクター入力フォーム for ($i=1; $i<=$maxchara; $i++) { $formname = sprintf("content%03d",$i); print <<  END; if ($i % 3 == 0) { print "
"; } } print <<

メールアドレス

あなたのメールアドレスを入力してください。(この項目は公開されませんが、今後修正して頂く際に必要となりますので、正確に入力してください。)$errormsg[4]

※あなたの作った占いは、基本的に公開されますので内容には十分注意してください。

END; } ///////////////////////////////////////////////////////////////////////// //入力データが完全な場合 // else { //md5 $time = ceil(time() / 1000); $random = rand(1000,9999); $md5 = md5($random+$time); $search = array ('/1/','/2/','/3/','/4/','/5/','/6/','/7/','/8/','/9/','/0/'); $replace = array ('一','二','三','四','五','六','七','八','九','〇'); $random = preg_replace($search, $replace, $random); print <<入力内容を確認してください

タイトル名

$title

タイトル名(ふりがな)

$initial

成分名

END; //成分名 for ($i=1; $i<=$maxchara; $i++) { $formname = sprintf("content%03d",$i); if ($content[$i] != "") { print "$content[$i]  "; } print << END; } print <<

メールアドレス

$email

確認コードの入力

投稿の確認のため、4桁の数字「${random}」を半角の数字(123456...等)で入力してください。

※あなたの作った占いは、基本的に公開されますので内容には十分注意してください。

END; } } ///////////////////////////////////////////////////////////////////////// //データ入力を受け付けて、書き込み。 // elseif ($confirmation == 2) { //$thistime の文字列化、この占いへのアクセス方法(10進数から35進数へ) $uranai = base_convert($thistime, 10, 35); //コンテンツ $fullcontent = ''; for ($i=1; $i<=$maxchara; $i++) { if ($content[$i] != "") { if ($fullcontent == '') { $fullcontent = $content[$i]; } else { $fullcontent .= "," . $content[$i]; } } } ///////////////////////////////////////////////////////////////////////// //入力データが完全な場合 // //emailの重複をチェック $sql = "SELECT uranai FROM seibun_data where uranai='$uranai'"; $mysql->query($sql); $row = $mysql->fetch(); //重複がある場合 if ($row["uranai"] == $uranai) { $sql = "UPDATE `seibun_data` SET `title` = '$title', `initial` = '$initial', `data` = '$fullcontent', `email` = '$email' WHERE `uranai` = '$uranai' LIMIT 1 ;"; $mysql->query($sql); } //重複の無い場合 else { //なんらかのチェックはされるべきだが、今回は省略 $sql = "INSERT INTO seibun_data (`uranai`, `title`, `initial`, `data`, `email`) VALUES('$uranai','$title','$initial','$fullcontent','$email')"; $mysql->query($sql); } //画面表示 print <<登録が正常に終了しました。

タイトル名

${title}成分分析

タイトル名(ふりがな)

$initial

成分名

END; for ($i=1; $i<=$maxchara; $i++) { $formname = sprintf("content%03d",$i); if ($content[$i] != "") { print "$content[$i]  "; } } print <<${title}成分分析占いで遊ぶ

リンク

アドレス(URL)

http://bluesnap.jp/seibun/{$uranai}.htm

END; //メールを送信 $to = 'bluesnap@gmail.com'; $subject = '[seibun] 成分分析占いに新規追加'; $message = "成分分析占いに新規追加\n"; $message .= "http://bluesnap.jp/seibun/{$uranai}.htm\n"; $message .= "$title\n"; $message .= $fullcontent; $headers = 'From: bluesnap@gmail.com' . "\n" . 'Reply-To: bluesnap@gmail.com' . "\n" . 'Content-Type: text/plain; charset="iso-2022-jp"' . "\n" . 'Content-Transfer-Encoding: 7bit' . "\n" . 'X-Mailer: kbbs php version'; $subject="=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($subject,"JIS","UTF-8,SJIS,EUC-JP,ASCII,JIS"))."?="; $message = mb_convert_encoding($message, "JIS", "UTF-8,SJIS,EUC-JP,ASCII,JIS"); //mail($to, $subject, $message, $headers); } ///////////////////////////////////////////////////////////////////////// //CODEエラー // elseif ($confirmation == 3) { print <<確認コードが違います。

確認コードが誤っているか、確認コードの有効期限が切れました。ブラウザの「戻る」ボタンを押して再度入力してください。

 

END; } ///////////////////////////////////////////////////////////////////////// //管理用 // elseif ($confirmation == 4) { print <<成分分析占い制作時のメールアドレスを入力してください。

メールアドレス

 

END; } ///////////////////////////////////////////////////////////////////////// //メールアドレス入力後 // elseif ($confirmation == 5) { //先頭のUを取る $uranai = preg_replace("/^U/", "", $uranai); //コンテンツを配列へ $content = preg_split("/,/", $content_file); //アクセス用コード(35進数)から、10進数に戻す。 $thistime = base_convert($uranai, 35, 10); //画面表示 print <<以下の内容を編集します。

タイトル名

成分分析のタイトル名を入力してください。「○○成分分析」の○○だけで結構です。(例:スターバックス、逆転裁判)$errormsg[0]

タイトル名(ふりがな)

タイトル名のふりがなを、ひらがなで入力してください。(例:すたーばっくす、ぎゃくてんさいばん)$errormsg[1]

成分名

成分名を10個以上入力してください(多ければ多いほど成分分析占いの結果が面白くなります)。1マスにつき1成分を記載してください。$errormsg[3]
END; //キャラクター名 for ($i=1; $i<=$maxchara; $i++) { //配列が0から始まっているので・・・ $i_minus1 = $i - 1; $formname = sprintf("content%03d",$i); print <<  END; if ($i % 3 == 0) { print "
"; } } print <<

メールアドレス

あなたのメールアドレスを入力してください。(この項目は公開されませんが、今後修正して頂く際に必要となりますので、正確に入力してください。)$errormsg[4]

※内容を編集すると占いの結果が変わるため、頻繁に変更しないようが良いです。

この占いを削除する

削除すると元に戻せません。削除の際は覚悟を決めましょう

END; } ///////////////////////////////////////////////////////////////////////// //削除確認 // elseif ($confirmation == 6) { //先頭のUを取る $uranai = preg_replace("/^U/", "", $uranai); //コンテンツを配列へ $content = preg_split("/,/", $content_file); //アクセス用コード(35進数)から、10進数に戻す。 $thistime = base_convert($uranai, 35, 10); //画面表示 //md5 $time = ceil(time() / 1000); $random = rand(1000,9999); $md5 = md5($random+$time); $search = array ('/1/','/2/','/3/','/4/','/5/','/6/','/7/','/8/','/9/','/0/'); $replace = array ('一','二','三','四','五','六','七','八','九','〇'); $random = preg_replace($search, $replace, $random); print <<削除の最終確認

以下の占いを削除しようとしています。

タイトル名

$title

タイトル名(ふりがな)

$initial

成分名

END; //キャラクター名 for ($i=1; $i<=$maxchara; $i++) { $formname = sprintf("content%03d",$i); if ($content[$i] != "") { print "$content[$i]  "; } print << END; } print <<

メールアドレス

$email

確認コードの入力

本当に削除しますか? 削除する場合には、確認のため、4桁の数字「${random}」を半角の数字(123456...等)で入力してください。

END; } ///////////////////////////////////////////////////////////////////////// //削除実行 // elseif ($confirmation == 7) { //削除実行 $sql = "delete FROM seibun_data where uranai='$uranai' LIMIT 1"; $mysql->query($sql); //画面表示 print <<削除完了しました

以下の占いを削除しました。

$title

END; } ///////////////////////////////////////////////////////////////////////// //汎用エラー // elseif ($confirmation == 99) { print <<エラー

$errormsg[0]  

END; } ?>