ファイル構成だけなんとかした(中身はまだ).
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
define ('SAVE_DIR', 'draft/');
|
||||
|
||||
$json = getParamJSON ();
|
||||
|
||||
if (!(isset ($json['data'])))
|
||||
{
|
||||
sendResult (false, 'Empty query Parameter: data');
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (!(preg_match ('/^data:image\/png;base64,/', $json['data'])))
|
||||
{
|
||||
sendResult (false, 'Not Allow data type: data');
|
||||
exit (1);
|
||||
}
|
||||
|
||||
$data = $json['data'];
|
||||
$data = str_replace ('data:image/png;base64,', '', $data);
|
||||
$data = str_replace (' ', '+', $data);
|
||||
$image = base64_decode ($data);
|
||||
|
||||
$file = sprintf ('%s.png', $_GET['id']);
|
||||
$result = file_put_contents (SAVE_DIR . $file, $image, LOCK_EX);
|
||||
|
||||
setcookie ('backup', $file, time () + 60 * 60 * 24 * 30);
|
||||
|
||||
|
||||
function
|
||||
getParamJSON ()
|
||||
{
|
||||
$buff = file_get_contents ('php://input');
|
||||
$json = json_decode ($buff, true);
|
||||
|
||||
return ($json);
|
||||
}
|
||||
|
||||
function
|
||||
sendResult ($status, $data)
|
||||
{
|
||||
header ('Access-Control-Allow-Origin: *');
|
||||
header ('Access-Control-Allow-Headers: *');
|
||||
|
||||
echo json_encode(["status" => $status,
|
||||
"result" => $data]);
|
||||
}
|
||||
?>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
require "${_SERVER['DOCUMENT_ROOT']}/database.php";
|
||||
|
||||
|
||||
$mysqli = set_mysql ('miteruzo_bbs');
|
||||
|
||||
$mysqli -> set_charset ('utf8');
|
||||
|
||||
$thread = $_GET['thread'];
|
||||
$id = $_GET['id'];
|
||||
$pass = $_GET['pass'];
|
||||
|
||||
if ($result = $mysqli -> query ("
|
||||
SELECT
|
||||
pass, image
|
||||
FROM
|
||||
responses
|
||||
WHERE
|
||||
(thread_id = {$_GET['thread']}) AND (response_id = {$_GET['id']})")):
|
||||
$row = $result -> fetch_assoc ();
|
||||
|
||||
if ($_GET['pass'] == $row['pass']):
|
||||
$mysqli -> query ("
|
||||
UPDATE
|
||||
responses
|
||||
SET
|
||||
deleted = 1
|
||||
WHERE
|
||||
(thread_id = $thread) AND (response_id = $id)");
|
||||
|
||||
echo "消しましたぁ!!<br /><br /><img style='border: solid 1px' src='image/{$row['image']}' />";
|
||||
else:
|
||||
echo '残念.<br />削除用パスワードが違います.';
|
||||
endif;
|
||||
|
||||
echo "<br /><br />5 秒後に元のページに戻ります.<br /><br /><a href='./?thread=$thread#$id'>戻らない場合はこちら</a><script>setTimeout (function () {window.location.href = `./?thread=$thread#$id`}, 5000)</script>";
|
||||
endif;
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
require "${_SERVER['DOCUMENT_ROOT']}/database.php";
|
||||
|
||||
|
||||
if (!(empty ($_POST['thread-name'])))
|
||||
{
|
||||
$explain = '<p>' . $_POST['thread-explain'] . '</p>';
|
||||
$explain = str_replace ("\n", '</p><p>', $explain);
|
||||
|
||||
$mysqli = set_mysql ('miteruzo_bbs');
|
||||
|
||||
$mysqli -> set_charset ('utf8');
|
||||
|
||||
$result = $mysqli -> query ('SELECT COUNT(*) FROM threads');
|
||||
$row = $result -> fetch_assoc ();
|
||||
$current = $row['COUNT(*)'];
|
||||
|
||||
$result -> close ();
|
||||
|
||||
$sql = "INSERT INTO threads (id, title, `explain`, latest, length) VALUES ($current, '{$_POST['thread-name']}', '$explain', '" . date ('Y-m-d H:i:s') . "', 0)";
|
||||
$mysqli -> query ($sql);
|
||||
/* $sql = "CREATE TABLE `miteruzo_bbs`.`thread_$current` (
|
||||
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'レス番',
|
||||
`name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '名なしさん' COMMENT '名前',
|
||||
`message` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'レス',
|
||||
`date` DATETIME NOT NULL COMMENT '投稿日時',
|
||||
`image` VARCHAR( 31 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '画像 URL',
|
||||
`held` TINYINT( 1 ) NOT NULL DEFAULT '0' COMMENT '保留',
|
||||
`deleted` TINYINT( 1 ) NOT NULL DEFAULT '0' COMMENT '削除済',
|
||||
`pass` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '削除用パスワード',
|
||||
`good` INT( 11 ) NOT NULL DEFAULT '0' COMMENT '高評価数',
|
||||
`bad` INT( 11 ) NOT NULL DEFAULT '0' COMMENT '低評価数',
|
||||
INDEX ( `date` )
|
||||
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci"; */
|
||||
$mysqli -> query ($sql);
|
||||
|
||||
$mysqli -> close ();
|
||||
}
|
||||
|
||||
header ("location: ./?thread=$current");
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
<?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]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user