|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- require "${_SERVER['DOCUMENT_ROOT']}/database.php";
-
-
- define ('SAVE_DIR', 'image/'); // 保存ディレクトリ定義
-
- $thread = $_GET['thread'];
- file_put_contents ('log.txt', $thread);
-
- $json = getParamJSON (); // JSON パラメタ
-
- // JSON に data メトッドがなぃ場合
- if (!(isset ($json['data']))):
- sendResult (false, 'Empty query Parameter: data');
- exit (1);
- endif;
-
- // 適切な画像形式が示されてゐなぃ場合
- if (!(preg_match ('/^data:image\/png;base64,/', $json['data']))):
- sendResult (false, 'Not Allow data type: data');
- exit (1);
- endif;
-
- // 画像ディタをデコゥド
- $data = $json['data'];
- $data = str_replace ('data:image/png;base64,', '', $data);
- $data = str_replace (' ', '+', $data);
- $image = base64_decode ($data);
-
- $file = sprintf ('%s.png', uniqid ()); // ファイル名をタイマを基準に設定
- file_put_contents (SAVE_DIR . $file, $image, LOCK_EX); // 画像をファイルに保存
-
- $mysqli = set_mysql ('miteruzo_bbs'); // ディタ・べィス指定
-
- $mysqli -> set_charset ('utf8');
-
- // スレのレス数を取得し,適切なレス番を設定する.
- if ($result = $mysqli -> query ("
- SELECT
- length
- FROM
- threads
- WHERE
- id = $thread")):
- $row = $result -> fetch_assoc ();
-
- $id = $row['length'] + 1;
-
- $result -> close (); // クヱリ結果を閉ぢる.
- endif;
-
- if ($_GET['held']):
- mb_language ('Japanese');
- mb_internal_encoding ('UTF-8');
- mb_send_mail ('matuda.miteruzo@gmail.com', 'キケッツ掲示板の画像確認しろ!', '何か,保留中なうみ.', '謎');
- endif;
-
- // 投稿情報に従ひ,ディタ・ベィスを更新
- $sql = "INSERT INTO
- responses (thread_id, response_id, name, pass, message, date, image, held,
- deleted)
- VALUES
- ($thread, $id, '" . (($_GET['name'] == '') ? '名なしさん' : $_GET['name']) . "',
- " . (($_GET['pass'] == '') ? "NULL" : "'{$_GET['pass']}'") . ", '', '" . date ('Y-m-d H:i:s') . "', '$file', {$_GET['held']}, 0)";
- $mysqli -> query ($sql);
- $mysqli -> query ("
- UPDATE
- threads
- SET
- length = $id, latest = '" . date ('Y-m-d H:i:s') . "' WHERE id = $thread");
-
- $mysqli -> close (); // ディタ・べィスを閉ぢる.
-
- unlink ('draft/' . $_COOKIE['backup']);
- setcookie ('backup', '', 0);
-
-
- /*
- * フェッチ内容から JSON パラメタを取得する.
- *
- * 戻り値は,取得した JSON パラメタ.
- */
- function
- getParamJSON ()
- {
- $buff = file_get_contents ('php://input');
- $json = json_decode ($buff, true);
-
- return ($json);
- }
-
-
- /*
- * クヱリ送信者に,結果を返す.
- * $status:結果フラグ,$data:返信ディタ
- *
- * 戻り値は,なし.
- */
- function
- sendResult ($status, $data)
- {
- header ('Access-Control-Allow-Origin: *');
- header ('Access-Control-Allow-Headers: *');
-
- echo json_encode(["status" => $status,
- "result" => $data]);
- }
-
|