mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-04 19:14:41 +00:00
uwuzu v1.6.12 Hapuego
This commit is contained in:
+87
-88
@@ -11,6 +11,18 @@ require('../db.php');
|
|||||||
require("../function/function.php");
|
require("../function/function.php");
|
||||||
blockedIP($_SERVER['REMOTE_ADDR']);
|
blockedIP($_SERVER['REMOTE_ADDR']);
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
try {
|
||||||
|
$option = array(
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
|
);
|
||||||
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option);
|
||||||
|
} catch(PDOException $e) {
|
||||||
|
// 接続エラーのときエラー内容を取得する
|
||||||
|
$error_message[] = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['abitext'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
|
if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['abitext'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
|
||||||
$userid = safetext($_POST['userid']);
|
$userid = safetext($_POST['userid']);
|
||||||
|
|
||||||
@@ -23,113 +35,100 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['abitext'])) && s
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
$abidate = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
$abidate = date("Y-m-d H:i:s");
|
$query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
|
||||||
|
|
||||||
// データベース接続の設定
|
$query->execute(array(':uniqid' => $postUniqid));
|
||||||
$dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
||||||
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
|
|
||||||
));
|
|
||||||
|
|
||||||
$query = $dbh->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
|
$result = $query->fetch();
|
||||||
|
|
||||||
$query->execute(array(':uniqid' => $postUniqid));
|
if($result["account"] === $userid){
|
||||||
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
|
|
||||||
$result = $query->fetch();
|
$query->execute(array(':userid' => $userid));
|
||||||
|
|
||||||
if($result["account"] === $userid){
|
$result2 = $query->fetch();
|
||||||
// データベース接続の設定
|
|
||||||
$dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
||||||
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
|
|
||||||
));
|
|
||||||
|
|
||||||
$query = $dbh->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
if($result2["loginid"] === $loginid){
|
||||||
|
if($result["abi"] == "none" && (!($result2["role"] == "ice"))){
|
||||||
$query->execute(array(':userid' => $userid));
|
// 文字数を確認
|
||||||
|
if( (int)safetext(file_get_contents($mojisizefile)) < mb_strlen(str_replace("\r\n", "\n", $abitext), 'UTF-8') ) {
|
||||||
$result2 = $query->fetch();
|
$err = "content_to_".safetext(file_get_contents($mojisizefile))."_characters";
|
||||||
|
$response = array(
|
||||||
if($result2["loginid"] === $loginid){
|
'error_code' => $err,
|
||||||
if($result["abi"] == "none" && (!($result2["role"] == "ice"))){
|
);
|
||||||
// 文字数を確認
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
||||||
if( (int)safetext(file_get_contents($mojisizefile)) < mb_strlen(str_replace("\r\n", "\n", $abitext), 'UTF-8') ) {
|
exit;
|
||||||
$err = "content_to_".safetext(file_get_contents($mojisizefile))."_characters";
|
}
|
||||||
$response = array(
|
// 禁止url確認
|
||||||
'error_code' => $err,
|
if(!(empty($banurl))){
|
||||||
);
|
for($i = 0; $i < count($banurl); $i++) {
|
||||||
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
if (false !== strpos($abitext, 'https://'.$banurl[$i])) {
|
||||||
exit;
|
$err = "contains_prohibited_url";
|
||||||
}
|
$response = array(
|
||||||
// 禁止url確認
|
'error_code' => $err,
|
||||||
if(!(empty($banurl))){
|
);
|
||||||
for($i = 0; $i < count($banurl); $i++) {
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
||||||
if (false !== strpos($abitext, 'https://'.$banurl[$i])) {
|
exit;
|
||||||
$err = "contains_prohibited_url";
|
}
|
||||||
$response = array(
|
|
||||||
'error_code' => $err,
|
|
||||||
);
|
|
||||||
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS);
|
|
||||||
|
|
||||||
$pdo->beginTransaction();
|
|
||||||
|
|
||||||
$stmt = $pdo->prepare("UPDATE ueuse SET abi = :abi, abidate = :abidate WHERE uniqid = :uniqid AND account = :userid");
|
|
||||||
$stmt->bindValue(':abi', $abitext, PDO::PARAM_STR);
|
|
||||||
$stmt->bindValue(':abidate', $abidate, PDO::PARAM_STR);
|
|
||||||
$stmt->bindValue(':uniqid', $postUniqid, PDO::PARAM_STR);
|
|
||||||
|
|
||||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
|
||||||
|
|
||||||
// SQLクエリの実行
|
|
||||||
$res = $stmt->execute();
|
|
||||||
|
|
||||||
// コミット
|
try {
|
||||||
$pdo->commit();
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
$mentionedUsers = get_mentions_userid($abitext);
|
$stmt = $pdo->prepare("UPDATE ueuse SET abi = :abi, abidate = :abidate WHERE uniqid = :uniqid AND account = :userid");
|
||||||
|
$stmt->bindValue(':abi', $abitext, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':abidate', $abidate, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':uniqid', $postUniqid, PDO::PARAM_STR);
|
||||||
|
|
||||||
foreach ($mentionedUsers as $mentionedUser) {
|
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
$touserid = safetext($mentionedUser);
|
|
||||||
$datetime = date("Y-m-d H:i:s");
|
// SQLクエリの実行
|
||||||
$msg = safetext("" . $abitext . "");
|
$res = $stmt->execute();
|
||||||
$title = safetext("" . $result2["username"] . "さんにメンションされました!");
|
|
||||||
$url = safetext("/!" . $postUniqid . "~" . $userid . "");
|
|
||||||
$userchk = 'none';
|
|
||||||
$category = 'mention';
|
|
||||||
|
|
||||||
send_notification($touserid,$userid,$title,$msg,$url,$category);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($res) {
|
// コミット
|
||||||
echo json_encode(['success' => true]);
|
$pdo->commit();
|
||||||
exit;
|
|
||||||
} else {
|
$mentionedUsers = get_mentions_userid($abitext);
|
||||||
echo json_encode(['success' => false, 'error' => '追加に失敗しました。']);
|
|
||||||
|
foreach ($mentionedUsers as $mentionedUser) {
|
||||||
|
$touserid = safetext($mentionedUser);
|
||||||
|
$datetime = date("Y-m-d H:i:s");
|
||||||
|
$msg = safetext("" . $abitext . "");
|
||||||
|
$title = safetext("" . $result2["username"] . "さんにメンションされました!");
|
||||||
|
$url = safetext("/!" . $postUniqid . "~" . $userid . "");
|
||||||
|
$userchk = 'none';
|
||||||
|
$category = 'mention';
|
||||||
|
|
||||||
|
send_notification($touserid,$userid,$title,$msg,$url,$category);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($res) {
|
||||||
|
echo json_encode(['success' => true]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo json_encode(['success' => false, 'error' => '追加に失敗しました。']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
} catch(PDOException $e) {
|
||||||
|
echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} catch(PDOException $e) {
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
|
echo json_encode(['success' => false, 'error' => 'すでに追記済みです。']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
echo json_encode(['success' => false, 'error' => 'すでに追記済みです。']);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
+37
-55
@@ -142,15 +142,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
$iconName = $uploadedPath;
|
$iconName = $uploadedPath;
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].'';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
if(isset($s3result)){
|
||||||
@@ -162,47 +154,45 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$uploadedFile = $_FILES['image'];
|
$uploadedFile = $_FILES['image'];
|
||||||
if(!(empty($uploadedFile['tmp_name']))){
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/');
|
||||||
if(check_mime($uploadedFile['tmp_name'])){
|
if($beforeUploadError === null){
|
||||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
if(!(empty($uploadedFile['tmp_name']))){
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
if(check_mime($uploadedFile['tmp_name'])){
|
||||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||||
|
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
|
}else{
|
||||||
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||||
|
}else{
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'usericons/' . $newFilename;
|
||||||
|
$result = move_uploaded_file($uploadedFile['tmp_name'], "../".$uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
|
||||||
}else{
|
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'usericons/' . $newFilename;
|
|
||||||
$result = move_uploaded_file($uploadedFile['tmp_name'], "../".$uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
}else{
|
|
||||||
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,15 +208,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
$headName = $uploadedPath;
|
$headName = $uploadedPath;
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$uploadedFile['error'].'';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
if(isset($s3result)){
|
||||||
|
|||||||
+130
-168
@@ -111,18 +111,30 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
|
|||||||
|
|
||||||
|
|
||||||
if (!(empty($post_json["icon"]))) {
|
if (!(empty($post_json["icon"]))) {
|
||||||
$imageData = base64_decode($post_json["icon"], true);
|
$iconBase64 = $post_json["icon"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
if (strpos($iconBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$iconBase64 = explode(',', $iconBase64)[1];
|
||||||
|
}
|
||||||
|
|
||||||
$IconFiles = [
|
$imageData = base64_decode($iconBase64, true);
|
||||||
'name' => 'upload.png',
|
|
||||||
'type' => check_mime($tmpFilePath),
|
if ($imageData === false) {
|
||||||
'tmp_name' => $tmpFilePath,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'error' => UPLOAD_ERR_OK,
|
} else {
|
||||||
'size' => strlen($imageData),
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
];
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$IconFiles = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$IconFiles = array();
|
$IconFiles = array();
|
||||||
}
|
}
|
||||||
@@ -131,85 +143,55 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
|
|||||||
if (isset($IconFiles)) {
|
if (isset($IconFiles)) {
|
||||||
if (!(empty($IconFiles['name']))) {
|
if (!(empty($IconFiles['name']))) {
|
||||||
$uploadedFile = $IconFiles;
|
$uploadedFile = $IconFiles;
|
||||||
if (check_mime($uploadedFile['tmp_name'])) {
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../usericons/');
|
||||||
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
if($beforeUploadError === null){
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
if (check_mime($uploadedFile['tmp_name'])) {
|
||||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||||
|
|
||||||
if (AMS3_CHKS == "true") {
|
if (AMS3_CHKS == "true") {
|
||||||
$usericonurl = getUserData($pdo, $userid)["iconname"];
|
$usericonurl = getUserData($pdo, $userid)["iconname"];
|
||||||
if (filter_var($usericonurl, FILTER_VALIDATE_URL)) {
|
if (filter_var($usericonurl, FILTER_VALIDATE_URL)) {
|
||||||
$s3delresult = deleteAmazonS3($usericonurl);
|
$s3delresult = deleteAmazonS3($usericonurl);
|
||||||
|
} else {
|
||||||
|
$s3delresult = true;
|
||||||
|
}
|
||||||
|
if ($s3delresult == true) {
|
||||||
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
|
} else {
|
||||||
|
$s3result = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$s3delresult = true;
|
if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
|
||||||
|
$newFilename = createUniqId() . '-' . $userid . '.webp';
|
||||||
|
} else {
|
||||||
|
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'usericons/' . $newFilename;
|
||||||
|
$result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../usericons/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($s3delresult == true) {
|
if (isset($s3result)) {
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
if ($s3result == false) {
|
||||||
} else {
|
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||||
$s3result = false;
|
} else {
|
||||||
|
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.webp';
|
|
||||||
} else {
|
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'usericons/' . $newFilename;
|
|
||||||
$result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
$errcode = "ERROR";
|
|
||||||
|
|
||||||
switch ($errnum) {
|
|
||||||
case 1:
|
|
||||||
$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
$errcode = "FILE_SUKOSHIDAKE_UPLOAD";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
$errcode = "FILE_UPLOAD_DEKINAKATTA";
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
$errcode = "TMP_FOLDER_NAI";
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
$errcode = "FILE_KAKIKOMI_SIPPAI";
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
$errcode = "PHPINFO()_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
// 成功だったのに move_uploaded_file() が失敗した
|
|
||||||
if (!is_uploaded_file($uploadedFile['tmp_name'])) {
|
|
||||||
$errcode = "TMP_FILE_NAI";
|
|
||||||
} elseif (!is_writable(__DIR__ . '/../../../usericons/')) {
|
|
||||||
$errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
|
|
||||||
} else {
|
|
||||||
$errcode = "MOVE_UPLOAD_FILE_SIPPAI";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' . $errcode . '';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (isset($s3result)) {
|
}else{
|
||||||
if ($s3result == false) {
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
} else {
|
|
||||||
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -217,107 +199,87 @@ if (isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
|
|||||||
$add_sql[] = "iconname = :iconname";
|
$add_sql[] = "iconname = :iconname";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!(empty($post_json["header"]))) {
|
if (!(empty($post_json["header"]))) {
|
||||||
$imageData = base64_decode($post_json["header"], true);
|
$headerBase64 = $post_json["header"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
if (strpos($headerBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$headerBase64 = explode(',', $headerBase64)[1];
|
||||||
|
}
|
||||||
|
|
||||||
$HeadFiles = [
|
$imageData = base64_decode($headerBase64, true);
|
||||||
'name' => 'upload.png',
|
|
||||||
'type' => check_mime($tmpFilePath),
|
if ($imageData === false) {
|
||||||
'tmp_name' => $tmpFilePath,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'error' => UPLOAD_ERR_OK,
|
} else {
|
||||||
'size' => strlen($imageData),
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
];
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$HeadFiles = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$HeadFiles = array();
|
$HeadFiles = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (isset($HeadFiles)) {
|
if (isset($HeadFiles)) {
|
||||||
if (!(empty($HeadFiles['name']))) {
|
if (!(empty($HeadFiles['name']))) {
|
||||||
$uploadedFile = $HeadFiles;
|
$uploadedFile = $HeadFiles;
|
||||||
if (check_mime($uploadedFile['tmp_name'])) {
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../userheads/');
|
||||||
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
if($beforeUploadError === null){
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
if (check_mime($uploadedFile['tmp_name'])) {
|
||||||
resizeImage($uploadedFile['tmp_name'], 2048, 1024);
|
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 2048, 1024);
|
||||||
|
|
||||||
if (AMS3_CHKS == "true") {
|
if (AMS3_CHKS == "true") {
|
||||||
$userheadurl = getUserData($pdo, $userid)["headname"];
|
$userheadurl = getUserData($pdo, $userid)["headname"];
|
||||||
if (filter_var($userheadurl, FILTER_VALIDATE_URL)) {
|
if (filter_var($userheadurl, FILTER_VALIDATE_URL)) {
|
||||||
$s3delresult = deleteAmazonS3($userheadurl);
|
$s3delresult = deleteAmazonS3($userheadurl);
|
||||||
|
} else {
|
||||||
|
$s3delresult = true;
|
||||||
|
}
|
||||||
|
if ($s3delresult == true) {
|
||||||
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
|
} else {
|
||||||
|
$s3result = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$s3delresult = true;
|
if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
|
||||||
|
$newFilename = createUniqId() . '-' . $userid . '.webp';
|
||||||
|
} else {
|
||||||
|
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'userheads/' . $newFilename;
|
||||||
|
$result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../../../userheads/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($s3delresult == true) {
|
if (isset($s3result)) {
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
if ($s3result == false) {
|
||||||
} else {
|
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
||||||
$s3result = false;
|
} else {
|
||||||
|
$headName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (check_mime($uploadedFile['tmp_name']) == "image/webp") {
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.webp';
|
|
||||||
} else {
|
|
||||||
$newFilename = createUniqId() . '-' . $userid . '.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'userheads/' . $newFilename;
|
|
||||||
$result = rename($uploadedFile['tmp_name'], __DIR__ . '/../../../' . $uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
$errcode = "ERROR";
|
|
||||||
|
|
||||||
switch ($errnum) {
|
|
||||||
case 1:
|
|
||||||
$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
$errcode = "FILE_SUKOSHIDAKE_UPLOAD";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
$errcode = "FILE_UPLOAD_DEKINAKATTA";
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
$errcode = "TMP_FOLDER_NAI";
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
$errcode = "FILE_KAKIKOMI_SIPPAI";
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
$errcode = "PHPINFO()_KAKUNIN";
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
// 成功だったのに move_uploaded_file() が失敗した
|
|
||||||
if (!is_uploaded_file($uploadedFile['tmp_name'])) {
|
|
||||||
$errcode = "TMP_FILE_NAI";
|
|
||||||
} elseif (!is_writable(__DIR__ . '/../../../usericons/')) {
|
|
||||||
$errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
|
|
||||||
} else {
|
|
||||||
$errcode = "MOVE_UPLOAD_FILE_SIPPAI";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' . $errcode . '';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (isset($s3result)) {
|
}else{
|
||||||
if ($s3result == false) {
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
|
||||||
} else {
|
|
||||||
$headName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+108
-50
@@ -117,69 +117,117 @@ if(isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(empty($post_json["image1"]))){
|
if(!(empty($post_json["image1"]))){
|
||||||
$imageData = base64_decode($post_json["image1"],true);
|
$imageBase64 = $post_json["image1"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
|
if (strpos($imageBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$imageBase64 = explode(',', $imageBase64)[1];
|
||||||
|
}
|
||||||
$Img1Files = [
|
|
||||||
'name' => 'upload.png',
|
$imageData = base64_decode($imageBase64, true);
|
||||||
'type' => check_mime($tmpFilePath),
|
|
||||||
'tmp_name' => $tmpFilePath,
|
if ($imageData === false) {
|
||||||
'error' => UPLOAD_ERR_OK,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'size' => strlen($imageData),
|
} else {
|
||||||
];
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$Img1Files = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$Img1Files = array();
|
$Img1Files = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(empty($post_json["image2"]))){
|
if(!(empty($post_json["image2"]))){
|
||||||
$imageData = base64_decode($post_json["image2"],true);
|
$imageBase64 = $post_json["image2"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
|
if (strpos($imageBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$imageBase64 = explode(',', $imageBase64)[1];
|
||||||
|
}
|
||||||
$Img2Files = [
|
|
||||||
'name' => 'upload.png',
|
$imageData = base64_decode($imageBase64, true);
|
||||||
'type' => check_mime($tmpFilePath),
|
|
||||||
'tmp_name' => $tmpFilePath,
|
if ($imageData === false) {
|
||||||
'error' => UPLOAD_ERR_OK,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'size' => strlen($imageData),
|
} else {
|
||||||
];
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$Img2Files = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$Img2Files = array();
|
$Img2Files = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(empty($post_json["image3"]))){
|
if(!(empty($post_json["image3"]))){
|
||||||
$imageData = base64_decode($post_json["image3"],true);
|
$imageBase64 = $post_json["image3"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
|
if (strpos($imageBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$imageBase64 = explode(',', $imageBase64)[1];
|
||||||
|
}
|
||||||
$Img3Files = [
|
|
||||||
'name' => 'upload.png',
|
$imageData = base64_decode($imageBase64, true);
|
||||||
'type' => check_mime($tmpFilePath),
|
|
||||||
'tmp_name' => $tmpFilePath,
|
if ($imageData === false) {
|
||||||
'error' => UPLOAD_ERR_OK,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'size' => strlen($imageData),
|
} else {
|
||||||
];
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$Img3Files = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$Img3Files = array();
|
$Img3Files = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(empty($post_json["image4"]))){
|
if(!(empty($post_json["image4"]))){
|
||||||
$imageData = base64_decode($post_json["image4"],true);
|
$imageBase64 = $post_json["image4"];
|
||||||
|
|
||||||
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_'.createUniqId());
|
if (strpos($imageBase64, ',') !== false) {
|
||||||
file_put_contents($tmpFilePath, $imageData);
|
$imageBase64 = explode(',', $imageBase64)[1];
|
||||||
|
}
|
||||||
$Img4Files = [
|
|
||||||
'name' => 'upload.png',
|
$imageData = base64_decode($imageBase64, true);
|
||||||
'type' => check_mime($tmpFilePath),
|
|
||||||
'tmp_name' => $tmpFilePath,
|
if ($imageData === false) {
|
||||||
'error' => UPLOAD_ERR_OK,
|
$error_message[] = 'Base64のデコードに失敗しました!(base64_decode_failed)';
|
||||||
'size' => strlen($imageData),
|
} else {
|
||||||
];
|
$tmpFilePath = tempnam(sys_get_temp_dir(), 'upload_' . createUniqId());
|
||||||
|
file_put_contents($tmpFilePath, $imageData);
|
||||||
|
|
||||||
|
clearstatcache(true, $tmpFilePath);
|
||||||
|
|
||||||
|
$Img4Files = [
|
||||||
|
'name' => 'upload.png',
|
||||||
|
'type' => check_mime($tmpFilePath),
|
||||||
|
'tmp_name' => $tmpFilePath,
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
'size' => filesize($tmpFilePath),
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$Img4Files = array();
|
$Img4Files = array();
|
||||||
}
|
}
|
||||||
@@ -193,8 +241,18 @@ if(isset($_GET['token']) || (!(empty($Get_Post_Json)))) {
|
|||||||
|
|
||||||
$video1 = array();
|
$video1 = array();
|
||||||
|
|
||||||
$ueuse_result = send_ueuse($userData["userid"],$replyid,$reuseid,$ueuse,$Img1Files,$Img2Files,$Img3Files,$Img4Files,$video1,$nsfw,$isAIBWM, "../");
|
if(empty($error_message)){
|
||||||
|
$ueuse_result = send_ueuse($userData["userid"],$replyid,$reuseid,$ueuse,$Img1Files,$Img2Files,$Img3Files,$Img4Files,$video1,$nsfw,$isAIBWM, "../");
|
||||||
|
}else{
|
||||||
|
$err = $error_message;
|
||||||
|
$response = array(
|
||||||
|
'error_code' => $err,
|
||||||
|
'success' => false
|
||||||
|
);
|
||||||
|
|
||||||
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
if($ueuse_result[0] == true){
|
if($ueuse_result[0] == true){
|
||||||
$response = array(
|
$response = array(
|
||||||
|
|||||||
+17
-20
@@ -14,27 +14,19 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
try {
|
||||||
|
$option = array(
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
|
);
|
||||||
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
// 接続エラーのときエラー内容を取得する
|
||||||
|
$error_message[] = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
$option = array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
|
||||||
);
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
|
||||||
} catch (PDOException $e) {
|
|
||||||
// 接続エラーのときエラー内容を取得する
|
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
// データベース接続の設定
|
|
||||||
$dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
||||||
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
|
|
||||||
));
|
|
||||||
|
|
||||||
$query = $dbh->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
|
||||||
|
|
||||||
$query->execute(array(':userid' => $userId));
|
$query->execute(array(':userid' => $userId));
|
||||||
|
|
||||||
@@ -99,6 +91,11 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
+90
-21
@@ -1395,6 +1395,19 @@ main h1 {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ueuse .chotto_small {
|
||||||
|
line-height: 16px;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
margin-left: 0px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--text-color);
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: var(--Text-fonts), sans-serif;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
.ueuse p img {
|
.ueuse p img {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
margin-bottom: auto;
|
margin-bottom: auto;
|
||||||
@@ -4700,6 +4713,48 @@ label>input {
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notification .codeblock {
|
||||||
|
width: calc(100% - 12px);
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 0px;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 6px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
background-color: #DDDDDD;
|
||||||
|
color: #323232;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: calc(100% - 2px);
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: var(--Mono-fonts), sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification .codeblock code {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification .unixtime {
|
||||||
|
width: fit-content;
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 4px;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 6px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
border: solid 1px #CCC;
|
||||||
|
color: #323232;
|
||||||
|
border-radius: 25px;
|
||||||
|
font-size: calc(100% - 2px);
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: var(--Mono-fonts), sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
.notification h1 {
|
.notification h1 {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
@@ -4791,6 +4846,19 @@ label>input {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notification .chotto_small {
|
||||||
|
line-height: 16px;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
margin-left: 0px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--text-color);
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: var(--Text-fonts), sans-serif;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
.notification p img {
|
.notification p img {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
margin-bottom: auto;
|
margin-bottom: auto;
|
||||||
@@ -8410,11 +8478,11 @@ noscript .noscript_modal .inner .center_text p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ueuse p {
|
.ueuse p {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ru a p {
|
.ru a p {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ueuse .inline {
|
.ueuse .inline {
|
||||||
@@ -8444,25 +8512,29 @@ noscript .noscript_modal .inner .center_text p {
|
|||||||
|
|
||||||
|
|
||||||
.ueuse h1 {
|
.ueuse h1 {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ueuse h2 {
|
.ueuse h2 {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ueuse h3 {
|
.ueuse h3 {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ueuse center {
|
.ueuse center {
|
||||||
color: var(--background-color);
|
color: var(--dark-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ueuse a {
|
.ueuse a {
|
||||||
color: var(--main-color);
|
color: var(--main-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ueuse .chotto_small {
|
||||||
|
color: var(--dark-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
.ueuse .flebox .time {
|
.ueuse .flebox .time {
|
||||||
color: var(--dark-subtext-color);
|
color: var(--dark-subtext-color);
|
||||||
}
|
}
|
||||||
@@ -9188,21 +9260,8 @@ noscript .noscript_modal .inner .center_text p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.notification .inline {
|
.notification .inline {
|
||||||
width: fit-content;
|
background-color: #323232;
|
||||||
margin-left: 4px;
|
color: #F5F5F5;
|
||||||
margin-right: 4px;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-right: 6px;
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom: 3px;
|
|
||||||
background-color: #DDDDDD;
|
|
||||||
color: #323232;
|
|
||||||
border-radius: 5px;
|
|
||||||
font-size: calc(100% - 2px);
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: var(--Mono-fonts), sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification h1 {
|
.notification h1 {
|
||||||
@@ -9263,6 +9322,16 @@ noscript .noscript_modal .inner .center_text p {
|
|||||||
color: var(--main-color);
|
color: var(--main-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notification .chotto_small {
|
||||||
|
color: var(--dark-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification .unixtime {
|
||||||
|
background-color: #323232;
|
||||||
|
border: solid 1px #CCC;
|
||||||
|
color: #F5F5F5;
|
||||||
|
}
|
||||||
|
|
||||||
.tokonone p {
|
.tokonone p {
|
||||||
color: var(--dark-subtext-color);
|
color: var(--dark-subtext-color);
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-8
@@ -14,15 +14,17 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($postUserid, $is_login["userid"]) === true){
|
||||||
|
$result = delete_ueuse($postUniqid, $postUserid, $loginid);
|
||||||
|
if($result[0] === true){
|
||||||
$result = delete_ueuse($postUniqid, $postUserid, $loginid);
|
echo json_encode(['success' => true]);
|
||||||
if($result[0] === true){
|
exit;
|
||||||
echo json_encode(['success' => true]);
|
}else{
|
||||||
exit;
|
echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
+17
-14
@@ -14,18 +14,17 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// データベース接続の設定
|
// データベース接続の設定
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
@@ -45,8 +44,12 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -26,13 +26,16 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['userid'])) && sa
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
if(DelAPIToken($pdo, $uniqid)){
|
||||||
if(DelAPIToken($pdo, $uniqid)){
|
echo json_encode(['success' => true, 'message' => 'アクセストークンが削除されました。']);
|
||||||
echo json_encode(['success' => true, 'message' => 'アクセストークンが削除されました。']);
|
exit;
|
||||||
exit;
|
} else {
|
||||||
} else {
|
echo json_encode(['success' => false, 'error' => 'アクセストークンの削除に失敗しました。']);
|
||||||
echo json_encode(['success' => false, 'error' => 'アクセストークンの削除に失敗しました。']);
|
exit;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+310
-244
@@ -320,12 +320,14 @@ function uwuzuUserLoginCheck($loginid, $loginkey, $operation_permission = "user"
|
|||||||
if(hash_equals($loginkey, $userLoginKey)){
|
if(hash_equals($loginkey, $userLoginKey)){
|
||||||
if($operation_permission == "admin"){
|
if($operation_permission == "admin"){
|
||||||
if($loginResponse["admin"] == "yes"){
|
if($loginResponse["admin"] == "yes"){
|
||||||
$is_login = true;
|
// true
|
||||||
|
$is_login = $loginResponse;
|
||||||
}else{
|
}else{
|
||||||
$is_login = false;
|
$is_login = false;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$is_login = true;
|
// true
|
||||||
|
$is_login = $loginResponse;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$is_login = false;
|
$is_login = false;
|
||||||
@@ -339,6 +341,9 @@ function uwuzuUserLoginCheck($loginid, $loginkey, $operation_permission = "user"
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function is_sameUserid($userid_a, $userid_b){
|
||||||
|
return strtolower($userid_a) == strtolower($userid_b);
|
||||||
|
}
|
||||||
//---------UNIQID-MAKER---------
|
//---------UNIQID-MAKER---------
|
||||||
function Legacy_createUniqId(){
|
function Legacy_createUniqId(){
|
||||||
list($msec, $sec) = explode(" ", microtime());
|
list($msec, $sec) = explode(" ", microtime());
|
||||||
@@ -424,6 +429,51 @@ function delete_exif($extension, $path){
|
|||||||
}
|
}
|
||||||
//----------EXIF_Delete----------
|
//----------EXIF_Delete----------
|
||||||
//----------Check_Extension------
|
//----------Check_Extension------
|
||||||
|
// アップロードエラーチェッカー
|
||||||
|
function check_upload_error($uploadedFile, $saveFolder){
|
||||||
|
$saveFolder = realpath($saveFolder);
|
||||||
|
$errcode = null;
|
||||||
|
$errnum = $uploadedFile["error"];
|
||||||
|
switch ($errnum) {
|
||||||
|
case 1:
|
||||||
|
$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$errcode = "FILE_SUKOSHIDAKE_UPLOAD";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$errcode = "FILE_UPLOAD_DEKINAKATTA";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
$errcode = "TMP_FOLDER_NAI";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
$errcode = "FILE_KAKIKOMI_SIPPAI";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
$errcode = "PHPINFO()_KAKUNIN";
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
if(empty($uploadedFile['name'])){
|
||||||
|
$errcode = "FILE_NAME_NAI";
|
||||||
|
}elseif(empty($uploadedFile['size']) || $uploadedFile['size'] == 0){
|
||||||
|
$errcode = "FILE_SIZE_NAI";
|
||||||
|
}else{
|
||||||
|
if (!file_exists($uploadedFile['tmp_name'])) {
|
||||||
|
$errcode = "TMP_FILE_NAI";
|
||||||
|
} elseif (!is_writable($saveFolder)) {
|
||||||
|
$errcode = "SAVE_FOLDER_KAKIKOMI_KENNAI";
|
||||||
|
} else {
|
||||||
|
$errcode = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $errcode;
|
||||||
|
}
|
||||||
//ファイル形式チェック(画像かどうか)
|
//ファイル形式チェック(画像かどうか)
|
||||||
function check_mime($tmp_name){
|
function check_mime($tmp_name){
|
||||||
$finfo = new finfo();
|
$finfo = new finfo();
|
||||||
@@ -1450,56 +1500,53 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
} else {
|
} else {
|
||||||
// アップロードされたファイル情報
|
// アップロードされたファイル情報
|
||||||
$uploadedFile = $photo1;
|
$uploadedFile = $photo1;
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__."/../ueuseimages/");
|
||||||
|
if($beforeUploadError === null){
|
||||||
|
if(!(empty($uploadedFile['tmp_name']))){
|
||||||
|
if(check_mime($uploadedFile['tmp_name'])){
|
||||||
|
// アップロードされたファイルの拡張子を取得
|
||||||
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 8192, 8192);
|
||||||
|
|
||||||
if(!(empty($uploadedFile['tmp_name']))){
|
if($aibwm === true){
|
||||||
if(check_mime($uploadedFile['tmp_name'])){
|
AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
|
||||||
// アップロードされたファイルの拡張子を取得
|
|
||||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
|
||||||
resizeImage($uploadedFile['tmp_name'], 8192, 8192);
|
|
||||||
|
|
||||||
if($aibwm === true){
|
|
||||||
AIBlockWaterMark($uploadedFile['tmp_name'], $userid);
|
|
||||||
}
|
|
||||||
if(AMS3_CHKS == "true"){
|
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
|
||||||
}else{
|
|
||||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
|
||||||
$extension = 'webp';
|
|
||||||
}
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
if(AMS3_CHKS == "true"){
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
// 保存先のパスを生成
|
|
||||||
$uploadedPath = '../ueuseimages/' . $newFilename;
|
|
||||||
// ファイルを移動
|
|
||||||
$result = move_uploaded_file($uploadedFile['tmp_name'], __DIR__."/".$uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$save_photo1 = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
}else{
|
}else{
|
||||||
$save_photo1 = $s3result; // S3に保存されたファイルのパスを使用
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$extension = 'webp';
|
||||||
|
}
|
||||||
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
|
// 保存先のパスを生成
|
||||||
|
$uploadedPath = '../ueuseimages/' . $newFilename;
|
||||||
|
// ファイルを移動
|
||||||
|
$result = rename($uploadedFile['tmp_name'], __DIR__."/".$uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$save_photo1 = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__."/../ueuseimages/") ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$save_photo1 = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1511,54 +1558,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
}
|
}
|
||||||
// アップロードされたファイル情報
|
// アップロードされたファイル情報
|
||||||
$uploadedFile2 = $photo2;
|
$uploadedFile2 = $photo2;
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile2, __DIR__."/../ueuseimages/");
|
||||||
if(!(empty($uploadedFile2['tmp_name']))){
|
if($beforeUploadError === null){
|
||||||
if(check_mime($uploadedFile2['tmp_name'])){
|
if(!(empty($uploadedFile2['tmp_name']))){
|
||||||
// アップロードされたファイルの拡張子を取得
|
if(check_mime($uploadedFile2['tmp_name'])){
|
||||||
$extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
|
// アップロードされたファイルの拡張子を取得
|
||||||
delete_exif($extension2, $uploadedFile2['tmp_name']);
|
$extension2 = convert_mime(check_mime($uploadedFile2['tmp_name']));
|
||||||
resizeImage($uploadedFile2['tmp_name'], 8192, 8192);
|
delete_exif($extension2, $uploadedFile2['tmp_name']);
|
||||||
if($aibwm === true){
|
resizeImage($uploadedFile2['tmp_name'], 8192, 8192);
|
||||||
AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
|
if($aibwm === true){
|
||||||
}
|
AIBlockWaterMark($uploadedFile2['tmp_name'], $userid);
|
||||||
if(AMS3_CHKS == "true"){
|
|
||||||
$s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
|
|
||||||
}else{
|
|
||||||
if(check_mime($uploadedFile2['tmp_name']) == "image/webp"){
|
|
||||||
$extension2 = 'webp';
|
|
||||||
}
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
if(AMS3_CHKS == "true"){
|
||||||
$newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
|
$s3result = uploadAmazonS3($uploadedFile2['tmp_name']);
|
||||||
// 保存先のパスを生成
|
|
||||||
$uploadedPath2 = '../ueuseimages/' . $newFilename2;
|
|
||||||
// ファイルを移動
|
|
||||||
$result2 = move_uploaded_file($uploadedFile2['tmp_name'], __DIR__."/".$uploadedPath2);
|
|
||||||
if ($result2) {
|
|
||||||
$save_photo2 = $uploadedPath2; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile2['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
|
||||||
}else{
|
}else{
|
||||||
$save_photo2 = $s3result; // S3に保存されたファイルのパスを使用
|
if(check_mime($uploadedFile2['tmp_name']) == "image/webp"){
|
||||||
|
$extension2 = 'webp';
|
||||||
|
}
|
||||||
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
|
$newFilename2 = createUniqId() . '-'.$userid.'.' . $extension2;
|
||||||
|
// 保存先のパスを生成
|
||||||
|
$uploadedPath2 = '../ueuseimages/' . $newFilename2;
|
||||||
|
// ファイルを移動
|
||||||
|
$result2 = rename($uploadedFile2['tmp_name'], __DIR__."/".$uploadedPath2);
|
||||||
|
if ($result2) {
|
||||||
|
$save_photo2 = $uploadedPath2; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile2, __DIR__."/../ueuseimages/") ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$save_photo2 = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1570,54 +1614,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
}
|
}
|
||||||
// アップロードされたファイル情報
|
// アップロードされたファイル情報
|
||||||
$uploadedFile3 = $photo3;
|
$uploadedFile3 = $photo3;
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile3, __DIR__."/../ueuseimages/");
|
||||||
if(!(empty($uploadedFile3['tmp_name']))){
|
if($beforeUploadError === null){
|
||||||
if(check_mime($uploadedFile3['tmp_name'])){
|
if(!(empty($uploadedFile3['tmp_name']))){
|
||||||
// アップロードされたファイルの拡張子を取得
|
if(check_mime($uploadedFile3['tmp_name'])){
|
||||||
$extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
|
// アップロードされたファイルの拡張子を取得
|
||||||
delete_exif($extension3, $uploadedFile3['tmp_name']);
|
$extension3 = convert_mime(check_mime($uploadedFile3['tmp_name']));
|
||||||
resizeImage($uploadedFile3['tmp_name'], 8192, 8192);
|
delete_exif($extension3, $uploadedFile3['tmp_name']);
|
||||||
if($aibwm === true){
|
resizeImage($uploadedFile3['tmp_name'], 8192, 8192);
|
||||||
AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
|
if($aibwm === true){
|
||||||
}
|
AIBlockWaterMark($uploadedFile3['tmp_name'], $userid);
|
||||||
if(AMS3_CHKS == "true"){
|
|
||||||
$s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
|
|
||||||
}else{
|
|
||||||
if(check_mime($uploadedFile3['tmp_name']) == "image/webp"){
|
|
||||||
$extension3 = 'webp';
|
|
||||||
}
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
if(AMS3_CHKS == "true"){
|
||||||
$newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
|
$s3result = uploadAmazonS3($uploadedFile3['tmp_name']);
|
||||||
// 保存先のパスを生成
|
|
||||||
$uploadedPath3 = '../ueuseimages/' . $newFilename3;
|
|
||||||
// ファイルを移動
|
|
||||||
$result3 = move_uploaded_file($uploadedFile3['tmp_name'], __DIR__."/".$uploadedPath3);
|
|
||||||
if ($result3) {
|
|
||||||
$save_photo3 = $uploadedPath3; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile3['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(3)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(3)エラーコード: S3ERROR';
|
|
||||||
}else{
|
}else{
|
||||||
$save_photo3 = $s3result; // S3に保存されたファイルのパスを使用
|
if(check_mime($uploadedFile3['tmp_name']) == "image/webp"){
|
||||||
|
$extension3 = 'webp';
|
||||||
|
}
|
||||||
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
|
$newFilename3 = createUniqId() . '-'.$userid.'.' . $extension3;
|
||||||
|
// 保存先のパスを生成
|
||||||
|
$uploadedPath3 = '../ueuseimages/' . $newFilename3;
|
||||||
|
// ファイルを移動
|
||||||
|
$result3 = rename($uploadedFile3['tmp_name'], __DIR__."/".$uploadedPath3);
|
||||||
|
if ($result3) {
|
||||||
|
$save_photo3 = $uploadedPath3; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile3, __DIR__."/../ueuseimages/") ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(3)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$save_photo3 = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1629,53 +1670,51 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
}
|
}
|
||||||
// アップロードされたファイル情報
|
// アップロードされたファイル情報
|
||||||
$uploadedFile4 = $photo4;
|
$uploadedFile4 = $photo4;
|
||||||
if(!(empty($uploadedFile4['tmp_name']))){
|
$beforeUploadError = check_upload_error($uploadedFile4, __DIR__."/../ueuseimages/");
|
||||||
if(check_mime($uploadedFile4['tmp_name'])){
|
if($beforeUploadError === null){
|
||||||
// アップロードされたファイルの拡張子を取得
|
if(!(empty($uploadedFile4['tmp_name']))){
|
||||||
$extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
|
if(check_mime($uploadedFile4['tmp_name'])){
|
||||||
delete_exif($extension4, $uploadedFile4['tmp_name']);
|
// アップロードされたファイルの拡張子を取得
|
||||||
resizeImage($uploadedFile4['tmp_name'], 8192, 8192);
|
$extension4 = convert_mime(check_mime($uploadedFile4['tmp_name']));
|
||||||
if($aibwm === true){
|
delete_exif($extension4, $uploadedFile4['tmp_name']);
|
||||||
AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
|
resizeImage($uploadedFile4['tmp_name'], 8192, 8192);
|
||||||
}
|
if($aibwm === true){
|
||||||
if(AMS3_CHKS == "true"){
|
AIBlockWaterMark($uploadedFile4['tmp_name'], $userid);
|
||||||
$s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
|
|
||||||
}else{
|
|
||||||
if(check_mime($uploadedFile4['tmp_name']) == "image/webp"){
|
|
||||||
$extension4 = 'webp';
|
|
||||||
}
|
}
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
if(AMS3_CHKS == "true"){
|
||||||
$newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
|
$s3result = uploadAmazonS3($uploadedFile4['tmp_name']);
|
||||||
// 保存先のパスを生成
|
|
||||||
$uploadedPath4 = '../ueuseimages/' . $newFilename4;
|
|
||||||
// ファイルを移動
|
|
||||||
$result4 = move_uploaded_file($uploadedFile4['tmp_name'], __DIR__."/".$uploadedPath4);
|
|
||||||
if ($result4) {
|
|
||||||
$save_photo4 = $uploadedPath4; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile4['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(4)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
}else{
|
}else{
|
||||||
$save_photo4 = $s3result; // S3に保存されたファイルのパスを使用
|
if(check_mime($uploadedFile4['tmp_name']) == "image/webp"){
|
||||||
|
$extension4 = 'webp';
|
||||||
|
}
|
||||||
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
|
$newFilename4 = createUniqId() . '-'.$userid.'.' . $extension4;
|
||||||
|
// 保存先のパスを生成
|
||||||
|
$uploadedPath4 = '../ueuseimages/' . $newFilename4;
|
||||||
|
// ファイルを移動
|
||||||
|
$result4 = rename($uploadedFile4['tmp_name'], __DIR__."/".$uploadedPath4);
|
||||||
|
if ($result4) {
|
||||||
|
$save_photo4 = $uploadedPath4; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile4, __DIR__."/../ueuseimages/") ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(4)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$save_photo4 = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "使用できない画像形式です。(SORRY_FILE_HITAIOU)";
|
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アップロード失敗!(4)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1684,46 +1723,43 @@ function send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$
|
|||||||
} else {
|
} else {
|
||||||
// アップロードされたファイル情報
|
// アップロードされたファイル情報
|
||||||
$uploadedVideo = $video1;
|
$uploadedVideo = $video1;
|
||||||
|
$beforeUploadError = check_upload_error($uploadedVideo, __DIR__.'/../ueusevideos/');
|
||||||
if(!(empty($uploadedVideo['tmp_name']))){
|
if($beforeUploadError === null){
|
||||||
if(check_mime_video($uploadedVideo['tmp_name'])){
|
if(!(empty($uploadedVideo['tmp_name']))){
|
||||||
if(AMS3_CHKS == "true"){
|
if(check_mime_video($uploadedVideo['tmp_name'])){
|
||||||
$s3result = uploadAmazonS3($uploadedVideo['tmp_name']);
|
if(AMS3_CHKS == "true"){
|
||||||
}else{
|
$s3result = uploadAmazonS3($uploadedVideo['tmp_name']);
|
||||||
// アップロードされたファイルの拡張子を取得
|
|
||||||
$extensionVideo = convert_mime(check_mime_video($uploadedVideo['tmp_name']));
|
|
||||||
// 正しい拡張子の場合、新しいファイル名を生成
|
|
||||||
$newFilenameVideo = createUniqId() . '-'.$userid.'.' . $extensionVideo;
|
|
||||||
// 保存先のパスを生成
|
|
||||||
$uploadedPathVideo = '../ueusevideos/' . $newFilenameVideo;
|
|
||||||
// ファイルを移動
|
|
||||||
$resultVideo = move_uploaded_file($uploadedVideo['tmp_name'], __DIR__."/".$uploadedPathVideo);
|
|
||||||
if ($resultVideo) {
|
|
||||||
$save_video1 = $uploadedPathVideo; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedVideo['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(5)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(5)エラーコード: S3ERROR';
|
|
||||||
}else{
|
}else{
|
||||||
$save_video1 = $s3result; // S3に保存されたファイルのパスを使用
|
// アップロードされたファイルの拡張子を取得
|
||||||
|
$extensionVideo = convert_mime(check_mime_video($uploadedVideo['tmp_name']));
|
||||||
|
// 正しい拡張子の場合、新しいファイル名を生成
|
||||||
|
$newFilenameVideo = createUniqId() . '-'.$userid.'.' . $extensionVideo;
|
||||||
|
// 保存先のパスを生成
|
||||||
|
$uploadedPathVideo = '../ueusevideos/' . $newFilenameVideo;
|
||||||
|
// ファイルを移動
|
||||||
|
$resultVideo = rename($uploadedVideo['tmp_name'], __DIR__."/".$uploadedPathVideo);
|
||||||
|
if ($resultVideo) {
|
||||||
|
$save_video1 = $uploadedPathVideo; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedVideo, __DIR__."/../ueusevideos/") ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(3)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(5)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$save_video1 = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error_message[] = '対応していないファイル形式です!(SORRY_FILE_HITAIOU)';
|
||||||
}
|
}
|
||||||
} else {
|
}else{
|
||||||
$error_message[] = '対応していないファイル形式です!(SORRY_FILE_HITAIOU)';
|
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "ファイルがアップロードできませんでした。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アップロード失敗!(5)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3716,53 +3752,73 @@ function GetActivityPubJson($url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function GetActivityPubUser($userid, $domain) {
|
function GetActivityPubUser($userid, $domain) {
|
||||||
$webfingerUrl = "https://$domain/.well-known/webfinger?resource=acct:$userid@$domain";
|
if (is_not_private_url("https://".$domain."/")) {
|
||||||
|
$webfingerUrl = "https://$domain/.well-known/webfinger?resource=acct:$userid@$domain";
|
||||||
|
|
||||||
$webfingerJson = GetActivityPubJson($webfingerUrl);
|
$webfingerJson = GetActivityPubJson($webfingerUrl);
|
||||||
|
|
||||||
if (!$webfingerJson || empty($webfingerJson['links'])) {
|
if (!$webfingerJson || empty($webfingerJson['links'])) {
|
||||||
return ['error' => 'Failed to fetch WebFinger'];
|
return ['error' => 'Failed to fetch WebFinger'];
|
||||||
}
|
|
||||||
|
|
||||||
$actorUrl = null;
|
|
||||||
foreach ($webfingerJson['links'] as $link) {
|
|
||||||
if ($link['rel'] === 'self' && $link['type'] === 'application/activity+json') {
|
|
||||||
$actorUrl = $link['href'];
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$actorUrl = null;
|
||||||
|
foreach ($webfingerJson['links'] as $link) {
|
||||||
|
if ($link['rel'] === 'self' && $link['type'] === 'application/activity+json') {
|
||||||
|
$actorUrl = $link['href'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$actorUrl) {
|
||||||
|
return ['error' => 'Actor URL not found'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$actorJson = GetActivityPubJson($actorUrl);
|
||||||
|
if (!$actorJson) {
|
||||||
|
return ['error' => 'Failed to fetch actor'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$summaryHtml = $actorJson['summary'] ?? '';
|
||||||
|
$withNewlines = preg_replace('/<br\s*\/?>/i', "\n", $summaryHtml);
|
||||||
|
$plainText = strip_tags($withNewlines);
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
'userid' => $actorJson['preferredUsername'] ?? null,
|
||||||
|
'username' => $actorJson['name'] ?? null,
|
||||||
|
'profile' => $plainText ?? null,
|
||||||
|
'id' => $actorJson['id'] ?? null,
|
||||||
|
'inbox' => $actorJson['inbox'] ?? null,
|
||||||
|
'outbox' => $actorJson['outbox'] ?? null,
|
||||||
|
'followers' => $actorJson['followers'] ?? null,
|
||||||
|
'iconname' => $actorJson['icon']['url'] ?? "../img/deficon/icon.png",
|
||||||
|
'headname' => $actorJson['image']['url'] ?? "../img/defhead/head.png",
|
||||||
|
'datetime' => $actorJson['published'] ?? null,
|
||||||
|
'role' => 'user',
|
||||||
|
'other_settings' => '{}',
|
||||||
|
'follow' => '',
|
||||||
|
'follower' => '',
|
||||||
|
'raw' => $actorJson
|
||||||
|
];
|
||||||
|
}else{
|
||||||
|
return [
|
||||||
|
'userid' => null,
|
||||||
|
'username' => null,
|
||||||
|
'profile' => null,
|
||||||
|
'id' => null,
|
||||||
|
'inbox' => null,
|
||||||
|
'outbox' => null,
|
||||||
|
'followers' => null,
|
||||||
|
'iconname' => "../img/deficon/icon.png",
|
||||||
|
'headname' => "../img/defhead/head.png",
|
||||||
|
'datetime' => null,
|
||||||
|
'role' => 'user',
|
||||||
|
'other_settings' => '{}',
|
||||||
|
'follow' => '',
|
||||||
|
'follower' => '',
|
||||||
|
'raw' => ''
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$actorUrl) {
|
|
||||||
return ['error' => 'Actor URL not found'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$actorJson = GetActivityPubJson($actorUrl);
|
|
||||||
if (!$actorJson) {
|
|
||||||
return ['error' => 'Failed to fetch actor'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$summaryHtml = $actorJson['summary'] ?? '';
|
|
||||||
$withNewlines = preg_replace('/<br\s*\/?>/i', "\n", $summaryHtml);
|
|
||||||
$plainText = strip_tags($withNewlines);
|
|
||||||
|
|
||||||
|
|
||||||
return [
|
|
||||||
'userid' => $actorJson['preferredUsername'] ?? null,
|
|
||||||
'username' => $actorJson['name'] ?? null,
|
|
||||||
'profile' => $plainText ?? null,
|
|
||||||
'id' => $actorJson['id'] ?? null,
|
|
||||||
'inbox' => $actorJson['inbox'] ?? null,
|
|
||||||
'outbox' => $actorJson['outbox'] ?? null,
|
|
||||||
'followers' => $actorJson['followers'] ?? null,
|
|
||||||
'iconname' => $actorJson['icon']['url'] ?? "../img/deficon/icon.png",
|
|
||||||
'headname' => $actorJson['image']['url'] ?? "../img/defhead/head.png",
|
|
||||||
'datetime' => $actorJson['published'] ?? null,
|
|
||||||
'role' => 'user',
|
|
||||||
'other_settings' => '{}',
|
|
||||||
'follow' => '',
|
|
||||||
'follower' => '',
|
|
||||||
'raw' => $actorJson
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function FormatUeuseItem(array $value, string $myblocklist, string $mybookmark, $pdo, string $userId): ?array {
|
function FormatUeuseItem(array $value, string $myblocklist, string $mybookmark, $pdo, string $userId): ?array {
|
||||||
@@ -4219,5 +4275,15 @@ function sqlBlockAccountList($column, $myblocklist){
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function is_not_private_url($url) {
|
||||||
|
$parts = parse_url($url);
|
||||||
|
if (!isset($parts['host'])) return false;
|
||||||
|
|
||||||
|
$ip = gethostbyname($parts['host']);
|
||||||
|
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -15,60 +15,63 @@ if (safetext(isset($_POST['emoji'])) && safetext(isset($_POST['userid'])) && saf
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
// カンマ区切りまたは1つのユーザーID文字列を処理
|
|
||||||
$emojis = array_unique(array_filter(explode(',', $emoji)));
|
|
||||||
|
|
||||||
$results = [];
|
|
||||||
|
|
||||||
if (count($emojis) > 0) {
|
|
||||||
// プレースホルダを作成
|
|
||||||
$placeholders = implode(',', array_fill(0, count($emojis), '?'));
|
|
||||||
$stmt = $pdo->prepare("SELECT emojifile, emojiname FROM emoji WHERE emojiname IN ($placeholders)");
|
|
||||||
$stmt->execute($emojis);
|
|
||||||
|
|
||||||
$fetched = [];
|
|
||||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
||||||
$fetched[$row['emojiname']] = [
|
|
||||||
'emojipath' => filter_var($row["emojifile"], FILTER_VALIDATE_URL) ? $row["emojifile"] : "../" . $row["emojifile"],
|
|
||||||
'emojiname' => $row['emojiname']
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($emojis as $name) {
|
|
||||||
if (isset($fetched[$name])) {
|
|
||||||
$results[$name] = $fetched[$name];
|
|
||||||
} else {
|
|
||||||
$results[$name] = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode([
|
if (!empty($pdo)) {
|
||||||
"success" => true,
|
// カンマ区切りまたは1つのユーザーID文字列を処理
|
||||||
"emojis" => $results
|
$emojis = array_unique(array_filter(explode(',', $emoji)));
|
||||||
], JSON_UNESCAPED_UNICODE);
|
|
||||||
} else {
|
$results = [];
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
if (count($emojis) > 0) {
|
||||||
"emojipath" => null,
|
// プレースホルダを作成
|
||||||
"emojiname" => null,
|
$placeholders = implode(',', array_fill(0, count($emojis), '?'));
|
||||||
);
|
$stmt = $pdo->prepare("SELECT emojifile, emojiname FROM emoji WHERE emojiname IN ($placeholders)");
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
$stmt->execute($emojis);
|
||||||
|
|
||||||
|
$fetched = [];
|
||||||
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||||
|
$fetched[$row['emojiname']] = [
|
||||||
|
'emojipath' => filter_var($row["emojifile"], FILTER_VALIDATE_URL) ? $row["emojifile"] : "../" . $row["emojifile"],
|
||||||
|
'emojiname' => $row['emojiname']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($emojis as $name) {
|
||||||
|
if (isset($fetched[$name])) {
|
||||||
|
$results[$name] = $fetched[$name];
|
||||||
|
} else {
|
||||||
|
$results[$name] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode([
|
||||||
|
"success" => true,
|
||||||
|
"emojis" => $results
|
||||||
|
], JSON_UNESCAPED_UNICODE);
|
||||||
|
} else {
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"emojipath" => null,
|
||||||
|
"emojiname" => null,
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+51
-48
@@ -15,55 +15,58 @@ if (safetext(isset($_POST['get_account'])) && safetext(isset($_POST['userid']))
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
// カンマ区切りまたは1つのユーザーID文字列を処理
|
|
||||||
$usernames = array_unique(array_filter(explode(',', $get_account)));
|
|
||||||
$lower_usernames = array_map('mb_strtolower', $usernames);
|
|
||||||
|
|
||||||
$results = [];
|
|
||||||
|
|
||||||
if (count($lower_usernames) > 0) {
|
|
||||||
$placeholders = implode(',', array_fill(0, count($lower_usernames), '?'));
|
|
||||||
$stmt = $pdo->prepare("SELECT userid, username FROM account WHERE LOWER(userid) IN ($placeholders)");
|
|
||||||
$stmt->execute($lower_usernames);
|
|
||||||
|
|
||||||
$fetched = [];
|
|
||||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
||||||
$fetched[mb_strtolower($row['userid'])] = [
|
|
||||||
'userid' => $row['userid'],
|
|
||||||
'username' => $row['username']
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($usernames as $name) {
|
|
||||||
$lower = mb_strtolower($name);
|
|
||||||
$results[$name] = $fetched[$lower] ?? null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode([
|
if (!empty($pdo)) {
|
||||||
"success" => true,
|
// カンマ区切りまたは1つのユーザーID文字列を処理
|
||||||
"users" => $results
|
$usernames = array_unique(array_filter(explode(',', $get_account)));
|
||||||
], JSON_UNESCAPED_UNICODE);
|
$lower_usernames = array_map('mb_strtolower', $usernames);
|
||||||
} else {
|
|
||||||
echo json_encode([
|
$results = [];
|
||||||
"success" => false,
|
|
||||||
"users" => null
|
if (count($lower_usernames) > 0) {
|
||||||
], JSON_UNESCAPED_UNICODE);
|
$placeholders = implode(',', array_fill(0, count($lower_usernames), '?'));
|
||||||
|
$stmt = $pdo->prepare("SELECT userid, username FROM account WHERE LOWER(userid) IN ($placeholders)");
|
||||||
|
$stmt->execute($lower_usernames);
|
||||||
|
|
||||||
|
$fetched = [];
|
||||||
|
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||||
|
$fetched[mb_strtolower($row['userid'])] = [
|
||||||
|
'userid' => $row['userid'],
|
||||||
|
'username' => $row['username']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($usernames as $name) {
|
||||||
|
$lower = mb_strtolower($name);
|
||||||
|
$results[$name] = $fetched[$lower] ?? null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode([
|
||||||
|
"success" => true,
|
||||||
|
"users" => $results
|
||||||
|
], JSON_UNESCAPED_UNICODE);
|
||||||
|
} else {
|
||||||
|
echo json_encode([
|
||||||
|
"success" => false,
|
||||||
|
"users" => null
|
||||||
|
], JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+41
-38
@@ -27,54 +27,57 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['reusetext'])) &&
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
$reusedate = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
$reusedate = date("Y-m-d H:i:s");
|
//ユーズの情報を取得
|
||||||
|
$query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
|
||||||
|
$query->execute(array(':uniqid' => $postUniqid));
|
||||||
|
$result = $query->fetch();
|
||||||
|
|
||||||
//ユーズの情報を取得
|
//ユーザーの認証情報を取得
|
||||||
$query = $pdo->prepare('SELECT * FROM ueuse WHERE uniqid = :uniqid limit 1');
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
$query->execute(array(':uniqid' => $postUniqid));
|
$query->execute(array(':userid' => $userid));
|
||||||
$result = $query->fetch();
|
$result2 = $query->fetch();
|
||||||
|
if($result2["loginid"] === $loginid){
|
||||||
|
if(!($result2["role"] == "ice")){
|
||||||
|
$nsfw_chk = "false";
|
||||||
|
|
||||||
|
$photo1 = "";
|
||||||
|
$photo2 = "";
|
||||||
|
$photo3 = "";
|
||||||
|
$photo4 = "";
|
||||||
|
$video1 = "";
|
||||||
|
|
||||||
|
$rpUniqid = "";
|
||||||
|
|
||||||
//ユーザーの認証情報を取得
|
$AIBWM = false;
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
if(!(empty($result["ueuse"]))){
|
||||||
$query->execute(array(':userid' => $userid));
|
$ruUniqid = $postUniqid;
|
||||||
$result2 = $query->fetch();
|
}else{
|
||||||
if($result2["loginid"] === $loginid){
|
$ruUniqid = $result["ruuniqid"];
|
||||||
if(!($result2["role"] == "ice")){
|
}
|
||||||
$nsfw_chk = "false";
|
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$reusetext,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$AIBWM);
|
||||||
|
|
||||||
$photo1 = "";
|
|
||||||
$photo2 = "";
|
|
||||||
$photo3 = "";
|
|
||||||
$photo4 = "";
|
|
||||||
$video1 = "";
|
|
||||||
|
|
||||||
$rpUniqid = "";
|
|
||||||
|
|
||||||
$AIBWM = false;
|
if($ueuse_result[0] == true){
|
||||||
if(!(empty($result["ueuse"]))){
|
echo json_encode(['success' => true]);
|
||||||
$ruUniqid = $postUniqid;
|
exit;
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
$ruUniqid = $result["ruuniqid"];
|
echo json_encode(['success' => false, 'error' => 'お使いのアカウントではリユーズができません。']);
|
||||||
}
|
exit;
|
||||||
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$reusetext,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$AIBWM);
|
|
||||||
|
|
||||||
if($ueuse_result[0] == true){
|
|
||||||
echo json_encode(['success' => true]);
|
|
||||||
exit;
|
|
||||||
}else{
|
|
||||||
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'お使いのアカウントではリユーズができません。']);
|
echo json_encode(['success' => false, 'error' => 'リユーズに失敗しました。']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'リユーズに失敗しました。']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
+173
-172
@@ -38,192 +38,193 @@ if (safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) &
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
$userid = $is_login["userid"];
|
||||||
|
|
||||||
|
$settings_type = safetext($_POST['settings_type']);
|
||||||
|
|
||||||
$settings_type = safetext($_POST['settings_type']);
|
if($settings_type == "icon"){
|
||||||
|
if(isset($_FILES["data"])){
|
||||||
|
if (!(empty($_FILES['data']['name']))) {
|
||||||
|
$uploadedFile = $_FILES['data'];
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/');
|
||||||
|
if($beforeUploadError === null){
|
||||||
|
if(check_mime($uploadedFile['tmp_name'])){
|
||||||
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||||
|
|
||||||
if($settings_type == "icon"){
|
if(AMS3_CHKS == "true"){
|
||||||
if(isset($_FILES["data"])){
|
$usericonurl = getUserData($pdo, $userid)["iconname"];
|
||||||
if (!(empty($_FILES['data']['name']))) {
|
if(filter_var($usericonurl, FILTER_VALIDATE_URL)){
|
||||||
$uploadedFile = $_FILES['data'];
|
$s3delresult = deleteAmazonS3($usericonurl);
|
||||||
if(check_mime($uploadedFile['tmp_name'])){
|
}else{
|
||||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
$s3delresult = true;
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
}
|
||||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
if($s3delresult == true){
|
||||||
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
if(AMS3_CHKS == "true"){
|
}else{
|
||||||
$usericonurl = getUserData($pdo, $userid)["iconname"];
|
$s3result = false;
|
||||||
if(filter_var($usericonurl, FILTER_VALIDATE_URL)){
|
}
|
||||||
$s3delresult = deleteAmazonS3($usericonurl);
|
}else{
|
||||||
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||||
|
}else{
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'usericons/' . $newFilename;
|
||||||
|
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../usericons/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
$s3delresult = true;
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
}
|
|
||||||
if($s3delresult == true){
|
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
|
||||||
}else{
|
|
||||||
$s3result = false;
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
|
||||||
}else{
|
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'usericons/' . $newFilename;
|
|
||||||
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
}else{
|
|
||||||
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
|
||||||
}
|
|
||||||
|
|
||||||
if(empty($error_message)) {
|
|
||||||
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
|
||||||
|
|
||||||
$pdo->beginTransaction();
|
|
||||||
try {
|
|
||||||
$stmt = $pdo->prepare("UPDATE account SET iconname = :iconname WHERE userid = :userid");
|
|
||||||
$stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR);
|
|
||||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
|
||||||
$res = $stmt->execute();
|
|
||||||
$res = $pdo->commit();
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$pdo->rollBack();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($res) {
|
|
||||||
if ($currentIconPath) {
|
|
||||||
unlink('../' . $currentIconPath);
|
|
||||||
}
|
|
||||||
echo json_encode(['success' => true]);
|
|
||||||
exit;
|
|
||||||
} else {
|
|
||||||
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// プリペアドステートメントを削除
|
|
||||||
$stmt = null;
|
|
||||||
}else{
|
|
||||||
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($settings_type == "header"){
|
|
||||||
if(isset($_FILES["data"])){
|
|
||||||
if (!(empty($_FILES['data']['name']))) {
|
|
||||||
$uploadedFile = $_FILES['data'];
|
|
||||||
if(check_mime($uploadedFile['tmp_name'])){
|
|
||||||
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
|
||||||
resizeImage($uploadedFile['tmp_name'], 2048, 1024);
|
|
||||||
|
|
||||||
if(AMS3_CHKS == "true"){
|
|
||||||
$userheadurl = getUserData($pdo, $userid)["headname"];
|
|
||||||
if(filter_var($userheadurl, FILTER_VALIDATE_URL)){
|
|
||||||
$s3delresult = deleteAmazonS3($userheadurl);
|
|
||||||
}else{
|
|
||||||
$s3delresult = true;
|
|
||||||
}
|
|
||||||
if($s3delresult == true){
|
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
|
||||||
}else{
|
|
||||||
$s3result = false;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
|
||||||
}else{
|
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'userheads/' . $newFilename;
|
|
||||||
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
|
||||||
}else{
|
|
||||||
$headName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
if(empty($error_message)) {
|
||||||
}
|
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
||||||
|
|
||||||
if(empty($error_message)) {
|
$pdo->beginTransaction();
|
||||||
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
try {
|
||||||
|
$stmt = $pdo->prepare("UPDATE account SET iconname = :iconname WHERE userid = :userid");
|
||||||
|
$stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
|
$res = $stmt->execute();
|
||||||
|
$res = $pdo->commit();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
$pdo->beginTransaction();
|
if ($res) {
|
||||||
try {
|
if ($currentIconPath) {
|
||||||
$stmt = $pdo->prepare("UPDATE account SET headname = :headname WHERE userid = :userid");
|
unlink('../' . $currentIconPath);
|
||||||
$stmt->bindValue(':headname', $headName, PDO::PARAM_STR);
|
}
|
||||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
echo json_encode(['success' => true]);
|
||||||
$res = $stmt->execute();
|
exit;
|
||||||
$res = $pdo->commit();
|
} else {
|
||||||
} catch (Exception $e) {
|
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
||||||
$pdo->rollBack();
|
exit;
|
||||||
}
|
|
||||||
|
|
||||||
if ($res) {
|
|
||||||
if ($currentHeadPath) {
|
|
||||||
unlink('../' . $currentHeadPath);
|
|
||||||
}
|
}
|
||||||
echo json_encode(['success' => true]);
|
|
||||||
exit;
|
// プリペアドステートメントを削除
|
||||||
} else {
|
$stmt = null;
|
||||||
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// プリペアドステートメントを削除
|
|
||||||
$stmt = null;
|
|
||||||
}else{
|
|
||||||
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($settings_type == "header"){
|
||||||
|
if(isset($_FILES["data"])){
|
||||||
|
if (!(empty($_FILES['data']['name']))) {
|
||||||
|
$uploadedFile = $_FILES['data'];
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../userheads/');
|
||||||
|
if($beforeUploadError === null){
|
||||||
|
if(check_mime($uploadedFile['tmp_name'])){
|
||||||
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 2048, 1024);
|
||||||
|
|
||||||
|
if(AMS3_CHKS == "true"){
|
||||||
|
$userheadurl = getUserData($pdo, $userid)["headname"];
|
||||||
|
if(filter_var($userheadurl, FILTER_VALIDATE_URL)){
|
||||||
|
$s3delresult = deleteAmazonS3($userheadurl);
|
||||||
|
}else{
|
||||||
|
$s3delresult = true;
|
||||||
|
}
|
||||||
|
if($s3delresult == true){
|
||||||
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
|
}else{
|
||||||
|
$s3result = false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||||
|
}else{
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'userheads/' . $newFilename;
|
||||||
|
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/../userheads/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$headName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($error_message)) {
|
||||||
|
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
||||||
|
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
try {
|
||||||
|
$stmt = $pdo->prepare("UPDATE account SET headname = :headname WHERE userid = :userid");
|
||||||
|
$stmt->bindValue(':headname', $headName, PDO::PARAM_STR);
|
||||||
|
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
|
$res = $stmt->execute();
|
||||||
|
$res = $pdo->commit();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($res) {
|
||||||
|
if ($currentHeadPath) {
|
||||||
|
unlink('../' . $currentHeadPath);
|
||||||
|
}
|
||||||
|
echo json_encode(['success' => true]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// プリペアドステートメントを削除
|
||||||
|
$stmt = null;
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+61
-58
@@ -27,74 +27,77 @@ if (safetext(isset($_POST['ueuse'])) && safetext(isset($_POST['userid'])) && saf
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
//ユーザーの認証情報を取得
|
||||||
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
|
$query->execute(array(':userid' => $userid));
|
||||||
|
$result2 = $query->fetch();
|
||||||
|
if($result2["loginid"] === $loginid){
|
||||||
|
if(!($result2["role"] == "ice")){
|
||||||
|
if(!(empty($result2["other_settings"]))){
|
||||||
|
$isAIBWM = val_OtherSettings("isAIBlockWaterMark", $result2["other_settings"]);
|
||||||
|
}else{
|
||||||
|
$isAIBWM = false;
|
||||||
|
}
|
||||||
|
|
||||||
//ユーザーの認証情報を取得
|
if(isset($nsfw_chk) && $nsfw_chk == "true"){
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
$nsfw_chk = "true";
|
||||||
$query->execute(array(':userid' => $userid));
|
}else{
|
||||||
$result2 = $query->fetch();
|
$nsfw_chk = "false";
|
||||||
if($result2["loginid"] === $loginid){
|
}
|
||||||
if(!($result2["role"] == "ice")){
|
|
||||||
if(!(empty($result2["other_settings"]))){
|
|
||||||
$isAIBWM = val_OtherSettings("isAIBlockWaterMark", $result2["other_settings"]);
|
|
||||||
}else{
|
|
||||||
$isAIBWM = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($nsfw_chk) && $nsfw_chk == "true"){
|
if(isset($_FILES['upload_images'])){
|
||||||
$nsfw_chk = "true";
|
$photo1 = $_FILES['upload_images'];
|
||||||
}else{
|
}else{
|
||||||
$nsfw_chk = "false";
|
$photo1 = null;
|
||||||
}
|
}
|
||||||
|
if(isset($_FILES['upload_images2'])){
|
||||||
|
$photo2 = $_FILES['upload_images2'];
|
||||||
|
}else{
|
||||||
|
$photo2 = null;
|
||||||
|
}
|
||||||
|
if(isset($_FILES['upload_images3'])){
|
||||||
|
$photo3 = $_FILES['upload_images3'];
|
||||||
|
}else{
|
||||||
|
$photo3 = null;
|
||||||
|
}
|
||||||
|
if(isset($_FILES['upload_images4'])){
|
||||||
|
$photo4 = $_FILES['upload_images4'];
|
||||||
|
}else{
|
||||||
|
$photo4 = null;
|
||||||
|
}
|
||||||
|
if(isset($_FILES['upload_videos1'])){
|
||||||
|
$video1 = $_FILES['upload_videos1'];
|
||||||
|
}else{
|
||||||
|
$video1 = null;
|
||||||
|
}
|
||||||
|
|
||||||
if(isset($_FILES['upload_images'])){
|
if(isset($_POST['rpuniqid'])){
|
||||||
$photo1 = $_FILES['upload_images'];
|
$rpUniqid = safetext($_POST['rpuniqid']);
|
||||||
}else{
|
}else{
|
||||||
$photo1 = null;
|
$rpUniqid = "";
|
||||||
}
|
}
|
||||||
if(isset($_FILES['upload_images2'])){
|
|
||||||
$photo2 = $_FILES['upload_images2'];
|
|
||||||
}else{
|
|
||||||
$photo2 = null;
|
|
||||||
}
|
|
||||||
if(isset($_FILES['upload_images3'])){
|
|
||||||
$photo3 = $_FILES['upload_images3'];
|
|
||||||
}else{
|
|
||||||
$photo3 = null;
|
|
||||||
}
|
|
||||||
if(isset($_FILES['upload_images4'])){
|
|
||||||
$photo4 = $_FILES['upload_images4'];
|
|
||||||
}else{
|
|
||||||
$photo4 = null;
|
|
||||||
}
|
|
||||||
if(isset($_FILES['upload_videos1'])){
|
|
||||||
$video1 = $_FILES['upload_videos1'];
|
|
||||||
}else{
|
|
||||||
$video1 = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isset($_POST['rpuniqid'])){
|
$ruUniqid = "";
|
||||||
$rpUniqid = safetext($_POST['rpuniqid']);
|
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$isAIBWM);
|
||||||
}else{
|
|
||||||
$rpUniqid = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
$ruUniqid = "";
|
if($ueuse_result[0] == true){
|
||||||
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$isAIBWM);
|
echo json_encode(['success' => true]);
|
||||||
|
exit;
|
||||||
if($ueuse_result[0] == true){
|
}else{
|
||||||
echo json_encode(['success' => true]);
|
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
||||||
exit;
|
exit;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
echo json_encode(['success' => false, 'error' => 'お使いのアカウントではユーズができません。']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'お使いのアカウントではユーズができません。']);
|
echo json_encode(['success' => false, 'error' => 'ユーズに失敗しました。']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'ユーズに失敗しました。']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+34
-22
@@ -355,21 +355,20 @@ function formatMarkdown(text) {
|
|||||||
|
|
||||||
// a_link
|
// a_link
|
||||||
text = text.replace(/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一ー-龠々\w\-\/?=&%.]+)/g, function (url) {
|
text = text.replace(/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一ー-龠々\w\-\/?=&%.]+)/g, function (url) {
|
||||||
const escapedUrl = url;
|
const no_https_link = url.replace("https://", "");
|
||||||
const no_https_link = escapedUrl.replace("https://", "");
|
|
||||||
let linkText = no_https_link;
|
let linkText = no_https_link;
|
||||||
|
|
||||||
if (no_https_link.length > 48) {
|
if (no_https_link.length > 48) {
|
||||||
linkText = no_https_link.substring(0, 48) + '...';
|
linkText = no_https_link.substring(0, 48) + '...';
|
||||||
}
|
}
|
||||||
|
const html = `<a href="${url}" target="_blank" rel="noopener">${linkText}</a>`;
|
||||||
return `<a href="${escapedUrl}" target="_blank" rel="noopener">${linkText}</a>`;
|
return createPlaceholder(html);
|
||||||
});
|
});
|
||||||
|
|
||||||
// ハッシュタグ
|
// ハッシュタグ
|
||||||
text = text.replace(/(^|[^a-zA-Z0-9_])#([a-zA-Z0-9ぁ-んァ-ン一-龥ー_]+)/gu, function (match, before, tag) {
|
text = text.replace(/(^|[^a-zA-Z0-9_])#([a-zA-Z0-9ぁ-んァ-ン一-龥ー_]+)/gu, function (match, before, tag) {
|
||||||
const encodedTag = encodeURIComponent("#" + tag);
|
const encodedTag = encodeURIComponent("#" + tag);
|
||||||
return `${before}<a href="/search?q=${encodedTag}" class="hashtags">#${tag}</a>`;
|
const html = `${before}<a href="/search?q=${encodedTag}" class="hashtags">#${tag}</a>`;
|
||||||
|
return createPlaceholder(html);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 独自構文
|
// 独自構文
|
||||||
@@ -390,6 +389,7 @@ function formatMarkdown(text) {
|
|||||||
.replace(/~~(.+?)~~/g, '<s>$1</s>')
|
.replace(/~~(.+?)~~/g, '<s>$1</s>')
|
||||||
.replace(/^>>> ?(.*)$/gm, '<span class="quote">$1</span>')
|
.replace(/^>>> ?(.*)$/gm, '<span class="quote">$1</span>')
|
||||||
.replace(/\|\|(.+?)\|\|/g, '<span class="blur">$1</span>')
|
.replace(/\|\|(.+?)\|\|/g, '<span class="blur">$1</span>')
|
||||||
|
.replace(/^-# (.+)/gm, '<p class="chotto_small">$1</p>')
|
||||||
.replace(/^# (.+)/gm, '<h1>$1</h1>')
|
.replace(/^# (.+)/gm, '<h1>$1</h1>')
|
||||||
.replace(/^## (.+)/gm, '<h2>$1</h2>')
|
.replace(/^## (.+)/gm, '<h2>$1</h2>')
|
||||||
.replace(/^### (.+)/gm, '<h3>$1</h3>')
|
.replace(/^### (.+)/gm, '<h3>$1</h3>')
|
||||||
@@ -412,17 +412,17 @@ function formatMarkdown(text) {
|
|||||||
return final;
|
return final;
|
||||||
}
|
}
|
||||||
|
|
||||||
function YouTube_and_nicovideo_Links(postText) {
|
async function YouTube_and_nicovideo_Links(postText) {
|
||||||
const urlPattern = /(https:\/\/[^\s<>\[\]'"“”]+)/g;
|
const urlPattern = /(https:\/\/[^\s<>\[\]'"“”]+)/g;
|
||||||
const urls = postText.match(urlPattern);
|
const urls = postText.match(urlPattern);
|
||||||
let embedCode = '';
|
let embedCode = '';
|
||||||
|
|
||||||
if (!urls) return null;
|
if (!urls) return null;
|
||||||
|
|
||||||
let embeddedOnce = false; // ← 埋め込みが1回されたかどうか
|
let embeddedOnce = false;
|
||||||
|
|
||||||
urls.forEach(url => {
|
for (const url of urls) {
|
||||||
if (embeddedOnce) return; // ← すでに埋め込みしたらスキップ
|
if (embeddedOnce) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const parsed = new URL(url);
|
const parsed = new URL(url);
|
||||||
@@ -452,7 +452,6 @@ function YouTube_and_nicovideo_Links(postText) {
|
|||||||
embedCode = `<div class="youtube_and_nicovideo_player"><iframe src="https://www.youtube-nocookie.com/embed/${videoId}?start=${videoTime}" rel="0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>`;
|
embedCode = `<div class="youtube_and_nicovideo_player"><iframe src="https://www.youtube-nocookie.com/embed/${videoId}?start=${videoTime}" rel="0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>`;
|
||||||
embeddedOnce = true;
|
embeddedOnce = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (['nicovideo.jp', 'nico.ms'].includes(host)) {
|
} else if (['nicovideo.jp', 'nico.ms'].includes(host)) {
|
||||||
if (parsed.pathname.includes('/watch/')) {
|
if (parsed.pathname.includes('/watch/')) {
|
||||||
videoId = parsed.pathname.split('/watch/')[1];
|
videoId = parsed.pathname.split('/watch/')[1];
|
||||||
@@ -471,13 +470,24 @@ function YouTube_and_nicovideo_Links(postText) {
|
|||||||
embedCode = `<div class="youtube_and_nicovideo_player"><iframe src="https://embed.nicovideo.jp/watch/${videoId}?from=${videoTime}" frameborder="0" allowfullscreen></iframe></div>`;
|
embedCode = `<div class="youtube_and_nicovideo_player"><iframe src="https://embed.nicovideo.jp/watch/${videoId}?from=${videoTime}" frameborder="0" allowfullscreen></iframe></div>`;
|
||||||
embeddedOnce = true;
|
embeddedOnce = true;
|
||||||
}
|
}
|
||||||
} else {
|
}else if (['soundcloud.com', 'on.soundcloud.com'].includes(host)) {
|
||||||
embedCode = null
|
const oembedUrl = `https://soundcloud.com/oembed?format=json&maxheight=400&url=${encodeURIComponent(url)}`;
|
||||||
|
|
||||||
|
const response = await $.ajax({
|
||||||
|
url: oembedUrl,
|
||||||
|
method: 'GET',
|
||||||
|
dataType: 'json'
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response && response.html) {
|
||||||
|
embedCode = `<div class="youtube_and_nicovideo_player">${response.html}</div>`;
|
||||||
|
embeddedOnce = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// 無視
|
// 無視
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
return embedCode;
|
return embedCode;
|
||||||
}
|
}
|
||||||
@@ -946,23 +956,25 @@ async function createUeuseHtml(ueuse, selectedUniqid = null) {
|
|||||||
|
|
||||||
if (ueuse["type"] == "Reuse") {
|
if (ueuse["type"] == "Reuse") {
|
||||||
if (ueuse["ueuse"].length > 0) {
|
if (ueuse["ueuse"].length > 0) {
|
||||||
if (YouTube_and_nicovideo_Links(ueuse["ueuse"])) {
|
const embed = await YouTube_and_nicovideo_Links(ueuse["ueuse"]);
|
||||||
contentHtml = contentHtml + YouTube_and_nicovideo_Links(ueuse["ueuse"]);
|
if (embed) {
|
||||||
|
contentHtml = contentHtml + embed;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ueuse["reuse"] != null) {
|
if (ueuse["reuse"] != null) {
|
||||||
if (YouTube_and_nicovideo_Links(ueuse["reuse"]["ueuse"])) {
|
const embed = await YouTube_and_nicovideo_Links(ueuse["reuse"]["ueuse"]);
|
||||||
contentHtml = contentHtml + YouTube_and_nicovideo_Links(ueuse["reuse"]["ueuse"]);
|
if (embed) {
|
||||||
|
contentHtml = contentHtml + embed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (YouTube_and_nicovideo_Links(ueuse["ueuse"])) {
|
const embed = await YouTube_and_nicovideo_Links(ueuse["ueuse"]);
|
||||||
contentHtml = contentHtml + YouTube_and_nicovideo_Links(ueuse["ueuse"]);
|
if (embed) {
|
||||||
|
contentHtml = contentHtml + embed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var favbox = `
|
var favbox = `
|
||||||
<hr>
|
<hr>
|
||||||
<div class="favbox">
|
<div class="favbox">
|
||||||
|
|||||||
+108
-96
@@ -78,9 +78,13 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if(empty($domain)) {
|
if(empty($domain)) {
|
||||||
$error_message[] = '移行元のサーバードメインを入力してください。(INPUT_PLEASE)';
|
$error_message[] = '移行元のサーバードメインを入力してください。(INPUT_PLEASE)';
|
||||||
}else{
|
}else{
|
||||||
$domain_response = @file_get_contents("https://".$domain."/");
|
if (is_not_private_url("https://".$domain."/")) {
|
||||||
if (empty($domain_response)) {
|
$domain_response = @file_get_contents("https://".$domain."/");
|
||||||
$error_message[] = '入力されたドメインに接続できませんでした。(INPUT_PLEASE)';
|
if (empty($domain_response)) {
|
||||||
|
$error_message[] = '入力されたドメインに接続できませんでした。(INPUT_PLEASE)';
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = '入力されたドメインに接続できませんでした。(BAD_REQUEST)';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,110 +207,118 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if($json_account_data == false){
|
if($json_account_data == false){
|
||||||
$error_message[] = "アカウントの移行を最初からやり直してください。(MIGRATION_SORRY)";
|
$error_message[] = "アカウントの移行を最初からやり直してください。(MIGRATION_SORRY)";
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
//アイコン&ヘッダー
|
//アイコン&ヘッダー
|
||||||
$icondata = file_get_contents($json_account_data["userdata"]["user_icon"]);
|
if (is_not_private_url("https://".$json_account_data["userdata"]["user_icon"]."/")) {
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$icondata = file_get_contents($json_account_data["userdata"]["user_icon"]);
|
||||||
$mime_type = finfo_buffer($finfo, $icondata);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$safe_img_mime = [
|
$mime_type = finfo_buffer($finfo, $icondata);
|
||||||
"image/gif" => 'gif',
|
$safe_img_mime = [
|
||||||
"image/jpeg" => 'jpg',
|
"image/gif" => 'gif',
|
||||||
"image/png" => 'png',
|
"image/jpeg" => 'jpg',
|
||||||
"image/svg+xml" => 'svg',
|
"image/png" => 'png',
|
||||||
"image/webp" => 'webp',
|
"image/svg+xml" => 'svg',
|
||||||
"image/bmp" => 'bmp',
|
"image/webp" => 'webp',
|
||||||
"image/x-icon" => 'ico',
|
"image/bmp" => 'bmp',
|
||||||
"image/tiff" => 'tiff'
|
"image/x-icon" => 'ico',
|
||||||
];
|
"image/tiff" => 'tiff'
|
||||||
if(isset($safe_img_mime[$mime_type])){
|
];
|
||||||
$extension = $safe_img_mime[$mime_type];
|
if(isset($safe_img_mime[$mime_type])){
|
||||||
$temp_file = tempnam(sys_get_temp_dir(), 'img');
|
$extension = $safe_img_mime[$mime_type];
|
||||||
file_put_contents($temp_file, $icondata);
|
$temp_file = tempnam(sys_get_temp_dir(), 'img');
|
||||||
|
file_put_contents($temp_file, $icondata);
|
||||||
|
|
||||||
delete_exif($extension, $temp_file);
|
delete_exif($extension, $temp_file);
|
||||||
|
|
||||||
// リサイズ
|
// リサイズ
|
||||||
resizeImage($temp_file, 512, 512);
|
resizeImage($temp_file, 512, 512);
|
||||||
|
|
||||||
if(check_mime($temp_file) == "image/webp"){
|
if(check_mime($temp_file) == "image/webp"){
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename = createUniqId() . '-'.$new_userid.'.webp';
|
$newFilename = createUniqId() . '-'.$new_userid.'.webp';
|
||||||
}else{
|
}else{
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename = createUniqId() . '-'.$new_userid.'.' . $extension;
|
$newFilename = createUniqId() . '-'.$new_userid.'.' . $extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
$uploadedPath = 'usericons/' . $newFilename;
|
$uploadedPath = 'usericons/' . $newFilename;
|
||||||
|
|
||||||
// ファイルを移動
|
// ファイルを移動
|
||||||
$result = copy($temp_file, "../".$uploadedPath);
|
$result = copy($temp_file, "../".$uploadedPath);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$errnum = $uploadedFile['error'];
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].'';
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = '入力されたドメインに接続できませんでした。(BAD_REQUEST)';
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------
|
//------------------
|
||||||
$headdata = file_get_contents($json_account_data["userdata"]["user_header"]);
|
if (is_not_private_url("https://".$json_account_data["userdata"]["user_header"]."/")) {
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$headdata = file_get_contents($json_account_data["userdata"]["user_header"]);
|
||||||
$mime_type = finfo_buffer($finfo, $headdata);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$safe_img_mime = [
|
$mime_type = finfo_buffer($finfo, $headdata);
|
||||||
"image/gif" => 'gif',
|
$safe_img_mime = [
|
||||||
"image/jpeg" => 'jpg',
|
"image/gif" => 'gif',
|
||||||
"image/png" => 'png',
|
"image/jpeg" => 'jpg',
|
||||||
"image/svg+xml" => 'svg',
|
"image/png" => 'png',
|
||||||
"image/webp" => 'webp',
|
"image/svg+xml" => 'svg',
|
||||||
"image/bmp" => 'bmp',
|
"image/webp" => 'webp',
|
||||||
"image/x-icon" => 'ico',
|
"image/bmp" => 'bmp',
|
||||||
"image/tiff" => 'tiff'
|
"image/x-icon" => 'ico',
|
||||||
];
|
"image/tiff" => 'tiff'
|
||||||
if(isset($safe_img_mime[$mime_type])){
|
];
|
||||||
$extension = $safe_img_mime[$mime_type];
|
if(isset($safe_img_mime[$mime_type])){
|
||||||
$temp_file = tempnam(sys_get_temp_dir(), 'img');
|
$extension = $safe_img_mime[$mime_type];
|
||||||
file_put_contents($temp_file, $headdata);
|
$temp_file = tempnam(sys_get_temp_dir(), 'img');
|
||||||
|
file_put_contents($temp_file, $headdata);
|
||||||
|
|
||||||
delete_exif($extension, $temp_file);
|
delete_exif($extension, $temp_file);
|
||||||
|
|
||||||
// リサイズ
|
// リサイズ
|
||||||
resizeImage($temp_file, 2048, 1024);
|
resizeImage($temp_file, 2048, 1024);
|
||||||
|
|
||||||
if(check_mime($temp_file) == "image/webp"){
|
if(check_mime($temp_file) == "image/webp"){
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename = createUniqId() . '-'.$new_userid.'.webp';
|
$newFilename = createUniqId() . '-'.$new_userid.'.webp';
|
||||||
}else{
|
}else{
|
||||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||||
$newFilename = createUniqId() . '-'.$new_userid.'.' . $extension;
|
$newFilename = createUniqId() . '-'.$new_userid.'.' . $extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存先のパスを生成
|
// 保存先のパスを生成
|
||||||
$uploadedPath = 'userheads/' . $newFilename;
|
$uploadedPath = 'userheads/' . $newFilename;
|
||||||
|
|
||||||
// ファイルを移動
|
// ファイルを移動
|
||||||
$result = copy($temp_file, "../".$uploadedPath);
|
$result = copy($temp_file, "../".$uploadedPath);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$errnum = $uploadedFile['error'];
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$uploadedFile['error'].'';
|
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$uploadedFile['error'].'';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = '入力されたドメインに接続できませんでした。(BAD_REQUEST)';
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
|
|||||||
@@ -171,15 +171,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
$iconName = $uploadedPath;
|
$iconName = $uploadedPath;
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$uploadedFile['error'].'';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
if(isset($s3result)){
|
||||||
@@ -191,47 +183,45 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$uploadedFile = $_FILES['image'];
|
$uploadedFile = $_FILES['image'];
|
||||||
if(!(empty($uploadedFile['tmp_name']))){
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/usericons/');
|
||||||
if(check_mime($uploadedFile['tmp_name'])){
|
if($beforeUploadError === null){
|
||||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
if(!(empty($uploadedFile['tmp_name']))){
|
||||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
if(check_mime($uploadedFile['tmp_name'])){
|
||||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||||
|
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||||
|
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||||
|
|
||||||
if(AMS3_CHKS == "true"){
|
if(AMS3_CHKS == "true"){
|
||||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||||
|
}else{
|
||||||
|
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||||
|
}else{
|
||||||
|
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||||
|
}
|
||||||
|
$uploadedPath = 'usericons/' . $newFilename;
|
||||||
|
$result = move_uploaded_file($uploadedFile['tmp_name'], $uploadedPath);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||||
|
} else {
|
||||||
|
$beforeUploadError = check_upload_error($uploadedFile, __DIR__.'/usericons/') ?? "ERROR";
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isset($s3result)){
|
||||||
|
if($s3result == false){
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||||
|
}else{
|
||||||
|
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
||||||
|
}
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
|
||||||
}else{
|
|
||||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
|
||||||
}
|
|
||||||
$uploadedPath = 'usericons/' . $newFilename;
|
|
||||||
$result = move_uploaded_file($uploadedFile['tmp_name'], $uploadedPath);
|
|
||||||
|
|
||||||
if ($result) {
|
|
||||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
|
||||||
} else {
|
|
||||||
$errnum = $uploadedFile['error'];
|
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$errcode.'';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
|
||||||
if($s3result == false){
|
|
||||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
|
||||||
}else{
|
|
||||||
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$beforeUploadError.'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,15 +237,7 @@ if( !empty($_POST['btn_submit']) ) {
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
$headName = $uploadedPath;
|
$headName = $uploadedPath;
|
||||||
} else {
|
} else {
|
||||||
$errnum = $uploadedFile['error'];
|
$error_message[] = 'アップロード失敗!(1)エラーコード: ERROR';
|
||||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
|
||||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
|
||||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
|
||||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
|
||||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
|
||||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
|
||||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
|
||||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$uploadedFile['error'].'';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isset($s3result)){
|
if(isset($s3result)){
|
||||||
|
|||||||
+117
-114
@@ -14,135 +14,138 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$messages = array();
|
if (!empty($pdo)) {
|
||||||
|
$myUserData = getUserData($pdo, $userId);
|
||||||
$bookmarkQuery = $pdo->prepare("SELECT bookmark FROM account WHERE userid = :userid");
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
$bookmarkQuery->bindValue(':userid', $userId);
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
$bookmarkQuery->execute();
|
|
||||||
$bookmarkData = $bookmarkQuery->fetch();
|
|
||||||
|
|
||||||
$allBookmarks = explode(',', $bookmarkData['bookmark'] ?? '');
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
$reversedBookmarks = array_reverse($allBookmarks);
|
$pageNumber = $page;
|
||||||
$bookmarkList = array_chunk($reversedBookmarks, $itemsPerPage);
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
$list_Page = max(0, (int)$pageNumber - 1);
|
|
||||||
$messages = [];
|
|
||||||
|
|
||||||
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
|
||||||
|
|
||||||
if (!empty($bookmarkList[$list_Page])) {
|
|
||||||
$currentPageUniqIds = $bookmarkList[$list_Page];
|
|
||||||
|
|
||||||
// 名前付きプレースホルダ作成
|
|
||||||
$placeholders = [];
|
|
||||||
$params = [];
|
|
||||||
foreach ($currentPageUniqIds as $i => $uniqid) {
|
|
||||||
$key = ":uniqid$i";
|
|
||||||
$placeholders[] = $key;
|
|
||||||
$params[$key] = $uniqid;
|
|
||||||
}
|
}
|
||||||
$placeholderStr = implode(',', $placeholders);
|
|
||||||
|
|
||||||
$sql = "SELECT ueuse.*
|
$messages = array();
|
||||||
FROM ueuse
|
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
$bookmarkQuery = $pdo->prepare("SELECT bookmark FROM account WHERE userid = :userid");
|
||||||
WHERE ueuse.uniqid IN ($placeholderStr) AND account.role != 'ice' {$blocked_accounts['sql']}
|
$bookmarkQuery->bindValue(':userid', $userId);
|
||||||
ORDER BY FIELD(ueuse.uniqid, $placeholderStr)";
|
$bookmarkQuery->execute();
|
||||||
|
$bookmarkData = $bookmarkQuery->fetch();
|
||||||
|
|
||||||
$stmt = $pdo->prepare($sql);
|
$allBookmarks = explode(',', $bookmarkData['bookmark'] ?? '');
|
||||||
foreach ($params as $key => $val) {
|
$reversedBookmarks = array_reverse($allBookmarks);
|
||||||
$stmt->bindValue($key, $val, PDO::PARAM_STR);
|
$bookmarkList = array_chunk($reversedBookmarks, $itemsPerPage);
|
||||||
}
|
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
|
||||||
$stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
|
||||||
}
|
|
||||||
$stmt->execute();
|
|
||||||
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
$list_Page = max(0, (int)$pageNumber - 1);
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
$messages = [];
|
||||||
//adsystem------------------
|
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
if (!empty($bookmarkList[$list_Page])) {
|
||||||
|
$currentPageUniqIds = $bookmarkList[$list_Page];
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
// 名前付きプレースホルダ作成
|
||||||
$adsQuery->bindValue(':today', $today);
|
$placeholders = [];
|
||||||
$adsQuery->execute();
|
$params = [];
|
||||||
$adsresult = $adsQuery->fetch();
|
foreach ($currentPageUniqIds as $i => $uniqid) {
|
||||||
if(!(empty($adsresult))){
|
$key = ":uniqid$i";
|
||||||
$message['ads'] = "true";
|
$placeholders[] = $key;
|
||||||
$message['ads_url'] = $adsresult["url"];
|
$params[$key] = $uniqid;
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
|
||||||
if(!empty($messages)){
|
|
||||||
foreach ($messages as $value) {
|
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
}
|
}
|
||||||
|
$placeholderStr = implode(',', $placeholders);
|
||||||
|
|
||||||
|
$sql = "SELECT ueuse.*
|
||||||
|
FROM ueuse
|
||||||
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
|
WHERE ueuse.uniqid IN ($placeholderStr) AND account.role != 'ice' {$blocked_accounts['sql']}
|
||||||
|
ORDER BY FIELD(ueuse.uniqid, $placeholderStr)";
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare($sql);
|
||||||
|
foreach ($params as $key => $val) {
|
||||||
|
$stmt->bindValue($key, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
|
$stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
$stmt->execute();
|
||||||
|
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
$adsystem = array(
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
"type" => "Ads",
|
//adsystem------------------
|
||||||
"url" => $message['ads_url'],
|
|
||||||
"imgurl" => $message['ads_img_url'],
|
$message['ads'] = "false";
|
||||||
"memo" => $message['ads_memo'],
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($message['ads'] === "true"){
|
||||||
|
$adsystem = array(
|
||||||
|
"type" => "Ads",
|
||||||
|
"url" => $message['ads_url'],
|
||||||
|
"imgurl" => $message['ads_img_url'],
|
||||||
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+103
-100
@@ -14,121 +14,124 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
}
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$followList = getFolloweeList($pdo, $userId);
|
if (!empty($pdo)) {
|
||||||
$messages = array(); // 初期化
|
$myUserData = getUserData($pdo, $userId);
|
||||||
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
|
|
||||||
// 空ならエラー回避
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
if (!(empty($followList))){
|
$pageNumber = $page;
|
||||||
$placeholders = implode(',', array_fill(0, count($followList), '?'));
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
$sql = "SELECT ueuse.*
|
|
||||||
FROM ueuse
|
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
|
||||||
WHERE ueuse.rpuniqid = ''
|
|
||||||
AND account.role != 'ice'
|
|
||||||
AND ueuse.account IN ($placeholders)
|
|
||||||
ORDER BY ueuse.datetime DESC
|
|
||||||
LIMIT ? OFFSET ?";
|
|
||||||
|
|
||||||
$stmt = $pdo->prepare($sql);
|
|
||||||
|
|
||||||
$i = 1;
|
|
||||||
foreach ($followList as $uid) {
|
|
||||||
$stmt->bindValue($i++, $uid, PDO::PARAM_STR);
|
|
||||||
}
|
}
|
||||||
$stmt->bindValue($i++, $itemsPerPage, PDO::PARAM_INT);
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
$stmt->bindValue($i++, $offset, PDO::PARAM_INT);
|
|
||||||
|
|
||||||
$stmt->execute();
|
$followList = getFolloweeList($pdo, $userId);
|
||||||
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
$messages = array(); // 初期化
|
||||||
}else{
|
|
||||||
$messages = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
|
||||||
//adsystem------------------
|
|
||||||
|
|
||||||
$message['ads'] = "false";
|
// 空ならエラー回避
|
||||||
|
if (!(empty($followList))){
|
||||||
|
$placeholders = implode(',', array_fill(0, count($followList), '?'));
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
$sql = "SELECT ueuse.*
|
||||||
|
FROM ueuse
|
||||||
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
|
WHERE ueuse.rpuniqid = ''
|
||||||
|
AND account.role != 'ice'
|
||||||
|
AND ueuse.account IN ($placeholders)
|
||||||
|
ORDER BY ueuse.datetime DESC
|
||||||
|
LIMIT ? OFFSET ?";
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
$stmt = $pdo->prepare($sql);
|
||||||
$adsQuery->bindValue(':today', $today);
|
|
||||||
$adsQuery->execute();
|
|
||||||
$adsresult = $adsQuery->fetch();
|
|
||||||
if(!(empty($adsresult))){
|
|
||||||
$message['ads'] = "true";
|
|
||||||
$message['ads_url'] = $adsresult["url"];
|
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
$i = 1;
|
||||||
if(!empty($messages)){
|
foreach ($followList as $uid) {
|
||||||
foreach ($messages as $value) {
|
$stmt->bindValue($i++, $uid, PDO::PARAM_STR);
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
}
|
}
|
||||||
}
|
$stmt->bindValue($i++, $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$stmt->bindValue($i++, $offset, PDO::PARAM_INT);
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
$stmt->execute();
|
||||||
$adsystem = array(
|
$messages = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
"type" => "Ads",
|
|
||||||
"url" => $message['ads_url'],
|
|
||||||
"imgurl" => $message['ads_img_url'],
|
|
||||||
"memo" => $message['ads_memo'],
|
|
||||||
);
|
|
||||||
}else{
|
}else{
|
||||||
$adsystem = null;
|
$messages = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
|
//adsystem------------------
|
||||||
|
|
||||||
$item = array(
|
$message['ads'] = "false";
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
$today = date("Y-m-d H:i:s");
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
$adsQuery->execute();
|
||||||
}else{
|
$adsresult = $adsQuery->fetch();
|
||||||
$item = array(
|
if(!(empty($adsresult))){
|
||||||
"success" => false,
|
$message['ads'] = "true";
|
||||||
"ueuses" => null,
|
$message['ads_url'] = $adsresult["url"];
|
||||||
"ads" => null,
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
"error" => "no_ueuse",
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
);
|
}
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
//--------------------------
|
||||||
}
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($message['ads'] === "true"){
|
||||||
|
$adsystem = array(
|
||||||
|
"type" => "Ads",
|
||||||
|
"url" => $message['ads_url'],
|
||||||
|
"imgurl" => $message['ads_img_url'],
|
||||||
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
|
);
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+227
-224
@@ -14,259 +14,262 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
|
||||||
|
|
||||||
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
|
||||||
|
|
||||||
//------------------------------------------すべてのユーズを取得----------------------------------------------
|
|
||||||
$all_sql = "SELECT ueuse.*
|
|
||||||
FROM ueuse
|
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
|
||||||
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' {$blocked_accounts['sql']}
|
|
||||||
ORDER BY ueuse.datetime DESC
|
|
||||||
LIMIT :offset, :itemsPerPage";
|
|
||||||
|
|
||||||
$all_stmt = $pdo->prepare($all_sql);
|
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
|
||||||
$all_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
|
||||||
}
|
|
||||||
$all_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$all_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$all_stmt->execute();
|
|
||||||
|
|
||||||
$all_messages = $all_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
||||||
if(empty($all_messages)){
|
|
||||||
$all_messages = [];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------人気なユーズを取得(バズってるやつ)----------------------------------------------
|
if (!empty($pdo)) {
|
||||||
$day_count_sql = "SELECT ueuse.*
|
$myUserData = getUserData($pdo, $userId);
|
||||||
FROM ueuse
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
WHERE ueuse.datetime >= NOW() - INTERVAL 7 DAY AND ueuse.rpuniqid = '' AND account.role != 'ice'
|
|
||||||
ORDER BY ueuse.datetime DESC
|
|
||||||
LIMIT 1000";
|
|
||||||
$cnt_stmt = $pdo->prepare($day_count_sql);
|
|
||||||
$Before7daysPosts = $cnt_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
||||||
|
|
||||||
// 結果が15件に満たない場合
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
$postCount = count($Before7daysPosts);
|
$pageNumber = $page;
|
||||||
if($postCount < 15){
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
$get_day = 90;
|
$pageNumber = 1;
|
||||||
}elseif($postCount > 15 && $postCount < 150){
|
}
|
||||||
$get_day = 31;
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
}elseif($postCount > 150 && $postCount < 750){
|
|
||||||
$get_day = 7;
|
|
||||||
}elseif($postCount > 750){
|
|
||||||
$get_day = 5;
|
|
||||||
}else{
|
|
||||||
$get_day = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
$get_day = $get_day * (2 ** floor($pageNumber / 3));
|
$messages = array();
|
||||||
|
|
||||||
$pop_sql = "SELECT
|
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
||||||
ueuse.*
|
|
||||||
FROM
|
//------------------------------------------すべてのユーズを取得----------------------------------------------
|
||||||
ueuse
|
$all_sql = "SELECT ueuse.*
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
|
||||||
WHERE
|
|
||||||
ueuse.datetime >= NOW() - INTERVAL :getday DAY
|
|
||||||
AND
|
|
||||||
ueuse.rpuniqid = ''
|
|
||||||
AND
|
|
||||||
account.role != 'ice'
|
|
||||||
{$blocked_accounts['sql']}
|
|
||||||
ORDER BY
|
|
||||||
ueuse.popularity DESC
|
|
||||||
LIMIT :offset, :itemsPerPage;
|
|
||||||
";
|
|
||||||
|
|
||||||
$pop_stmt = $pdo->prepare($pop_sql);
|
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
|
||||||
$pop_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
|
||||||
}
|
|
||||||
$pop_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
|
||||||
$pop_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$pop_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$pop_stmt->execute();
|
|
||||||
|
|
||||||
$pop_messages = $pop_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
||||||
if(empty($pop_messages)){
|
|
||||||
$pop_messages = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------フォローしているユーザーから取得----------------------------------------------
|
|
||||||
$followList = getFolloweeList($pdo, $userId);
|
|
||||||
|
|
||||||
foreach ($followList as $followUserId) {
|
|
||||||
$flw_sql = "SELECT ueuse.*
|
|
||||||
FROM ueuse
|
FROM ueuse
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' AND ueuse.account = :follow_account AND ueuse.datetime >= NOW() - INTERVAL :getday DAY {$blocked_accounts['sql']}
|
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' {$blocked_accounts['sql']}
|
||||||
ORDER BY ueuse.datetime DESC
|
ORDER BY ueuse.datetime DESC
|
||||||
LIMIT :offset, :itemsPerPage";
|
LIMIT :offset, :itemsPerPage";
|
||||||
|
|
||||||
$flw_stmt = $pdo->prepare($flw_sql);
|
$all_stmt = $pdo->prepare($all_sql);
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
$flw_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
$all_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
}
|
}
|
||||||
$flw_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
$all_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$flw_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
$all_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
$flw_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
$all_stmt->execute();
|
||||||
$flw_stmt->bindValue(':follow_account', $followUserId, PDO::PARAM_STR);
|
|
||||||
$flw_stmt->execute();
|
|
||||||
|
|
||||||
while ($row = $flw_stmt->fetch(PDO::FETCH_ASSOC)) {
|
$all_messages = $all_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
$flw_messages[] = $row;
|
if(empty($all_messages)){
|
||||||
|
$all_messages = [];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(!(empty($flw_messages))){
|
|
||||||
usort($flw_messages, function($a, $b) {
|
|
||||||
return strtotime($b['datetime']) - strtotime($a['datetime']);
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
$flw_messages = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------いいねやリユーズを頻繁にするような好きっぽそうなユーザーの投稿を取得--------------------------------------
|
//------------------------------------------人気なユーズを取得(バズってるやつ)----------------------------------------------
|
||||||
$fav_sql = "SELECT ueuse.*,
|
$day_count_sql = "SELECT ueuse.*
|
||||||
(LENGTH(ueuse.favorite) - LENGTH(REPLACE(ueuse.favorite, ',', '')) - 1) AS favorite_count
|
FROM ueuse
|
||||||
FROM ueuse
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
WHERE FIND_IN_SET(:userid, ueuse.favorite) > 0
|
WHERE ueuse.datetime >= NOW() - INTERVAL 7 DAY AND ueuse.rpuniqid = '' AND account.role != 'ice'
|
||||||
ORDER BY ueuse.datetime DESC
|
ORDER BY ueuse.datetime DESC
|
||||||
LIMIT 100
|
LIMIT 1000";
|
||||||
";
|
$cnt_stmt = $pdo->prepare($day_count_sql);
|
||||||
$fav_stmt = $pdo->prepare($fav_sql);
|
$Before7daysPosts = $cnt_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
$fav_stmt->bindValue(':userid', $userId, PDO::PARAM_STR);
|
|
||||||
$fav_stmt->execute();
|
|
||||||
$fav_ueuse_lists = $fav_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
||||||
|
|
||||||
if (!empty($fav_ueuse_lists)) {
|
// 結果が15件に満たない場合
|
||||||
$many_fav_accounts = array_column($fav_ueuse_lists, 'account');
|
$postCount = count($Before7daysPosts);
|
||||||
$many_fav_account_counts = array_count_values($many_fav_accounts);
|
if($postCount < 15){
|
||||||
arsort($many_fav_account_counts);
|
$get_day = 90;
|
||||||
$top_fav_accounts = array_slice($many_fav_account_counts, 0, 15, true);
|
}elseif($postCount > 15 && $postCount < 150){
|
||||||
|
$get_day = 31;
|
||||||
|
}elseif($postCount > 150 && $postCount < 750){
|
||||||
|
$get_day = 7;
|
||||||
|
}elseif($postCount > 750){
|
||||||
|
$get_day = 5;
|
||||||
|
}else{
|
||||||
|
$get_day = 2;
|
||||||
|
}
|
||||||
|
|
||||||
$favget_messages = [];
|
$get_day = $get_day * (2 ** floor($pageNumber / 3));
|
||||||
$favget_sql = "SELECT ueuse.*
|
|
||||||
|
$pop_sql = "SELECT
|
||||||
|
ueuse.*
|
||||||
|
FROM
|
||||||
|
ueuse
|
||||||
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
|
WHERE
|
||||||
|
ueuse.datetime >= NOW() - INTERVAL :getday DAY
|
||||||
|
AND
|
||||||
|
ueuse.rpuniqid = ''
|
||||||
|
AND
|
||||||
|
account.role != 'ice'
|
||||||
|
{$blocked_accounts['sql']}
|
||||||
|
ORDER BY
|
||||||
|
ueuse.popularity DESC
|
||||||
|
LIMIT :offset, :itemsPerPage;
|
||||||
|
";
|
||||||
|
|
||||||
|
$pop_stmt = $pdo->prepare($pop_sql);
|
||||||
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
|
$pop_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
$pop_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
||||||
|
$pop_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$pop_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$pop_stmt->execute();
|
||||||
|
|
||||||
|
$pop_messages = $pop_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
if(empty($pop_messages)){
|
||||||
|
$pop_messages = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------フォローしているユーザーから取得----------------------------------------------
|
||||||
|
$followList = getFolloweeList($pdo, $userId);
|
||||||
|
|
||||||
|
foreach ($followList as $followUserId) {
|
||||||
|
$flw_sql = "SELECT ueuse.*
|
||||||
FROM ueuse
|
FROM ueuse
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' AND ueuse.account = :fav_account AND ueuse.datetime >= NOW() - INTERVAL :getday DAY {$blocked_accounts['sql']}
|
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' AND ueuse.account = :follow_account AND ueuse.datetime >= NOW() - INTERVAL :getday DAY {$blocked_accounts['sql']}
|
||||||
ORDER BY ueuse.datetime DESC
|
ORDER BY ueuse.datetime DESC
|
||||||
LIMIT :offset, :itemsPerPage";
|
LIMIT :offset, :itemsPerPage";
|
||||||
|
|
||||||
$favget_stmt = $pdo->prepare($favget_sql);
|
$flw_stmt = $pdo->prepare($flw_sql);
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
$favget_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
$flw_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
}
|
}
|
||||||
$favget_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
$flw_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
||||||
$favget_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
$flw_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$favget_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
$flw_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$flw_stmt->bindValue(':follow_account', $followUserId, PDO::PARAM_STR);
|
||||||
|
$flw_stmt->execute();
|
||||||
|
|
||||||
foreach ($top_fav_accounts as $favUserId => $count) {
|
while ($row = $flw_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||||
$favget_stmt->bindValue(':fav_account', $favUserId, PDO::PARAM_STR);
|
$flw_messages[] = $row;
|
||||||
$favget_stmt->execute();
|
|
||||||
$favget_messages = array_merge($favget_messages, $favget_stmt->fetchAll(PDO::FETCH_ASSOC));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$favget_messages = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 基本的には人気・フォロー中・いいねする事が多いユーザーのユーズでTLを構成するけど全部出きったらLTLと同じにする
|
|
||||||
$messages = array_merge($pop_messages, $flw_messages, $favget_messages);
|
|
||||||
if (empty($messages)) {
|
|
||||||
$messages = $all_messages;
|
|
||||||
} elseif (count($messages) < 15) {
|
|
||||||
$messages = array_merge($messages, $all_messages);
|
|
||||||
}
|
|
||||||
$messages = array_slice(array_unique($messages, SORT_REGULAR), 0, 15);
|
|
||||||
shuffle($messages);
|
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
|
||||||
//adsystem------------------
|
|
||||||
|
|
||||||
$message['ads'] = "false";
|
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
|
||||||
$adsQuery->bindValue(':today', $today);
|
|
||||||
$adsQuery->execute();
|
|
||||||
$adsresult = $adsQuery->fetch();
|
|
||||||
if(!(empty($adsresult))){
|
|
||||||
$message['ads'] = "true";
|
|
||||||
$message['ads_url'] = $adsresult["url"];
|
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
|
||||||
if(!empty($messages)){
|
|
||||||
foreach ($messages as $value) {
|
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!(empty($flw_messages))){
|
||||||
if($message['ads'] === "true"){
|
usort($flw_messages, function($a, $b) {
|
||||||
$adsystem = array(
|
return strtotime($b['datetime']) - strtotime($a['datetime']);
|
||||||
"type" => "Ads",
|
});
|
||||||
"url" => $message['ads_url'],
|
|
||||||
"imgurl" => $message['ads_img_url'],
|
|
||||||
"memo" => $message['ads_memo'],
|
|
||||||
);
|
|
||||||
}else{
|
}else{
|
||||||
$adsystem = null;
|
$flw_messages = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = array(
|
//------------------------------------------いいねやリユーズを頻繁にするような好きっぽそうなユーザーの投稿を取得--------------------------------------
|
||||||
"success" => true,
|
$fav_sql = "SELECT ueuse.*,
|
||||||
"ueuses" => $ueuseItems,
|
(LENGTH(ueuse.favorite) - LENGTH(REPLACE(ueuse.favorite, ',', '')) - 1) AS favorite_count
|
||||||
"ads" => $adsystem,
|
FROM ueuse
|
||||||
);
|
WHERE FIND_IN_SET(:userid, ueuse.favorite) > 0
|
||||||
|
ORDER BY ueuse.datetime DESC
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
LIMIT 100
|
||||||
}else{
|
";
|
||||||
$item = array(
|
$fav_stmt = $pdo->prepare($fav_sql);
|
||||||
"success" => false,
|
$fav_stmt->bindValue(':userid', $userId, PDO::PARAM_STR);
|
||||||
"ueuses" => null,
|
$fav_stmt->execute();
|
||||||
"ads" => null,
|
$fav_ueuse_lists = $fav_stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
if (!empty($fav_ueuse_lists)) {
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
$many_fav_accounts = array_column($fav_ueuse_lists, 'account');
|
||||||
}
|
$many_fav_account_counts = array_count_values($many_fav_accounts);
|
||||||
|
arsort($many_fav_account_counts);
|
||||||
|
$top_fav_accounts = array_slice($many_fav_account_counts, 0, 15, true);
|
||||||
|
|
||||||
|
$favget_messages = [];
|
||||||
|
$favget_sql = "SELECT ueuse.*
|
||||||
|
FROM ueuse
|
||||||
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
|
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' AND ueuse.account = :fav_account AND ueuse.datetime >= NOW() - INTERVAL :getday DAY {$blocked_accounts['sql']}
|
||||||
|
ORDER BY ueuse.datetime DESC
|
||||||
|
LIMIT :offset, :itemsPerPage";
|
||||||
|
|
||||||
|
$favget_stmt = $pdo->prepare($favget_sql);
|
||||||
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
|
$favget_stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
$favget_stmt->bindValue(':getday', $get_day, PDO::PARAM_INT);
|
||||||
|
$favget_stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$favget_stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
|
||||||
|
foreach ($top_fav_accounts as $favUserId => $count) {
|
||||||
|
$favget_stmt->bindValue(':fav_account', $favUserId, PDO::PARAM_STR);
|
||||||
|
$favget_stmt->execute();
|
||||||
|
$favget_messages = array_merge($favget_messages, $favget_stmt->fetchAll(PDO::FETCH_ASSOC));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$favget_messages = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 基本的には人気・フォロー中・いいねする事が多いユーザーのユーズでTLを構成するけど全部出きったらLTLと同じにする
|
||||||
|
$messages = array_merge($pop_messages, $flw_messages, $favget_messages);
|
||||||
|
if (empty($messages)) {
|
||||||
|
$messages = $all_messages;
|
||||||
|
} elseif (count($messages) < 15) {
|
||||||
|
$messages = array_merge($messages, $all_messages);
|
||||||
|
}
|
||||||
|
$messages = array_slice(array_unique($messages, SORT_REGULAR), 0, 15);
|
||||||
|
shuffle($messages);
|
||||||
|
|
||||||
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
|
//adsystem------------------
|
||||||
|
|
||||||
|
$message['ads'] = "false";
|
||||||
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($message['ads'] === "true"){
|
||||||
|
$adsystem = array(
|
||||||
|
"type" => "Ads",
|
||||||
|
"url" => $message['ads_url'],
|
||||||
|
"imgurl" => $message['ads_img_url'],
|
||||||
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
|
);
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+101
-98
@@ -14,118 +14,121 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
|
||||||
|
|
||||||
$messages = array();
|
|
||||||
|
|
||||||
$sql = "SELECT ueuse.*
|
|
||||||
FROM ueuse
|
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
|
||||||
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' {$blocked_accounts['sql']}
|
|
||||||
ORDER BY ueuse.datetime DESC
|
|
||||||
LIMIT :offset, :itemsPerPage";
|
|
||||||
|
|
||||||
$stmt = $pdo->prepare($sql);
|
|
||||||
|
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
|
||||||
$stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
if (!empty($pdo)) {
|
||||||
$stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
$myUserData = getUserData($pdo, $userId);
|
||||||
$stmt->execute();
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
$message_array = $stmt;
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
|
|
||||||
while ($row = $message_array->fetch(PDO::FETCH_ASSOC)) {
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
$messages[] = $row;
|
$pageNumber = $page;
|
||||||
}
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
||||||
|
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
$messages = array();
|
||||||
|
|
||||||
|
$sql = "SELECT ueuse.*
|
||||||
|
FROM ueuse
|
||||||
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
|
WHERE ueuse.rpuniqid = '' AND account.role != 'ice' {$blocked_accounts['sql']}
|
||||||
|
ORDER BY ueuse.datetime DESC
|
||||||
|
LIMIT :offset, :itemsPerPage";
|
||||||
|
|
||||||
//adsystem------------------
|
$stmt = $pdo->prepare($sql);
|
||||||
|
|
||||||
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
|
$stmt->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$stmt->execute();
|
||||||
|
$message_array = $stmt;
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
while ($row = $message_array->fetch(PDO::FETCH_ASSOC)) {
|
||||||
|
$messages[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
$adsQuery->bindValue(':today', $today);
|
|
||||||
$adsQuery->execute();
|
|
||||||
$adsresult = $adsQuery->fetch();
|
|
||||||
if(!(empty($adsresult))){
|
|
||||||
$message['ads'] = "true";
|
|
||||||
$message['ads_url'] = $adsresult["url"];
|
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
if(!empty($messages)){
|
|
||||||
foreach ($messages as $value) {
|
//adsystem------------------
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
$message['ads'] = "false";
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
if($message['ads'] === "true"){
|
||||||
$adsystem = array(
|
$adsystem = array(
|
||||||
"type" => "Ads",
|
"type" => "Ads",
|
||||||
"url" => $message['ads_url'],
|
"url" => $message['ads_url'],
|
||||||
"imgurl" => $message['ads_img_url'],
|
"imgurl" => $message['ads_img_url'],
|
||||||
"memo" => $message['ads_memo'],
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+88
-85
@@ -29,115 +29,118 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userid, $is_login["userid"]) === true){
|
||||||
|
$myblocklist = getUserData($pdo, $userid)["blocklist"];
|
||||||
|
|
||||||
$myblocklist = getUserData($pdo, $userid)["blocklist"];
|
$itemsPerPage = 15; // 1ページあたりの投稿数
|
||||||
|
$pageNumber = safetext(isset($_POST['page'])) ? safetext(intval($_POST['page'])) : 1;
|
||||||
|
if ($pageNumber <= 0 || (!(is_numeric($pageNumber)))) {
|
||||||
|
$pageNumber = 1;
|
||||||
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりの投稿数
|
$messages = array();
|
||||||
$pageNumber = safetext(isset($_POST['page'])) ? safetext(intval($_POST['page'])) : 1;
|
|
||||||
if ($pageNumber <= 0 || (!(is_numeric($pageNumber)))) {
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
if (!empty($pdo)) {
|
||||||
|
$messageQuery = $pdo->prepare("SELECT fromuserid,title,msg,url,datetime,userchk FROM notification WHERE touserid = :userid ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
|
$messageQuery->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$messageQuery->execute();
|
||||||
|
$message_array = $messageQuery->fetchAll();
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
// トランザクション開始
|
||||||
$messageQuery = $pdo->prepare("SELECT fromuserid,title,msg,url,datetime,userchk FROM notification WHERE touserid = :userid ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
$pdo->beginTransaction();
|
||||||
$messageQuery->bindValue(':userid', $userid, PDO::PARAM_STR);
|
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$messageQuery->execute();
|
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
|
|
||||||
// トランザクション開始
|
// SQL作成
|
||||||
$pdo->beginTransaction();
|
$stmt = $pdo->prepare("UPDATE notification SET userchk = 'done' WHERE touserid = :userid;");
|
||||||
|
|
||||||
// SQL作成
|
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||||
$stmt = $pdo->prepare("UPDATE notification SET userchk = 'done' WHERE touserid = :userid;");
|
|
||||||
|
|
||||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
$res = $stmt->execute();
|
||||||
|
$res = $pdo->commit();
|
||||||
|
|
||||||
$res = $stmt->execute();
|
if (!empty($message_array)) {
|
||||||
$res = $pdo->commit();
|
foreach ($message_array as $value) {
|
||||||
|
$value["servericon"] = safetext($serversettings["serverinfo"]["server_icon"]);
|
||||||
if (!empty($message_array)) {
|
if (!(empty($value['fromuserid']))) {
|
||||||
foreach ($message_array as $value) {
|
if (!($value['fromuserid'] == "uwuzu-fromsys")) {
|
||||||
$value["servericon"] = safetext($serversettings["serverinfo"]["server_icon"]);
|
$userQuery = $pdo->prepare("SELECT username,iconname FROM account WHERE userid = :userid");
|
||||||
if (!(empty($value['fromuserid']))) {
|
$userQuery->bindValue(':userid', $value['fromuserid']);
|
||||||
if (!($value['fromuserid'] == "uwuzu-fromsys")) {
|
$userQuery->execute();
|
||||||
$userQuery = $pdo->prepare("SELECT username,iconname FROM account WHERE userid = :userid");
|
$user_array = $userQuery->fetch();
|
||||||
$userQuery->bindValue(':userid', $value['fromuserid']);
|
if (!(empty($user_array))) {
|
||||||
$userQuery->execute();
|
$value['fromusericon'] = filter_var($user_array["iconname"], FILTER_VALIDATE_URL) ? $user_array["iconname"] : "../" . $user_array["iconname"];
|
||||||
$user_array = $userQuery->fetch();
|
$value['fromusername'] = $user_array["username"];
|
||||||
if (!(empty($user_array))) {
|
} else {
|
||||||
$value['fromusericon'] = filter_var($user_array["iconname"], FILTER_VALIDATE_URL) ? $user_array["iconname"] : "../" . $user_array["iconname"];
|
$value['fromusericon'] = "../img/deficon/icon.png";
|
||||||
$value['fromusername'] = $user_array["username"];
|
$value['fromusername'] = "でふぉると";
|
||||||
} else {
|
}
|
||||||
$value['fromusericon'] = "../img/deficon/icon.png";
|
|
||||||
$value['fromusername'] = "でふぉると";
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(!empty($value["servericon"])){
|
|
||||||
$value['fromusericon'] = safetext($value["servericon"]);
|
|
||||||
$value['fromusername'] = "uwuzu";
|
|
||||||
}else{
|
}else{
|
||||||
$value['fromusericon'] = "../img/uwuzuicon.png";
|
if(!empty($value["servericon"])){
|
||||||
$value['fromusername'] = "uwuzu";
|
$value['fromusericon'] = safetext($value["servericon"]);
|
||||||
|
$value['fromusername'] = "uwuzu";
|
||||||
|
}else{
|
||||||
|
$value['fromusericon'] = "../img/uwuzuicon.png";
|
||||||
|
$value['fromusername'] = "uwuzu";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($value["userchk"] === "done"){
|
||||||
|
$value["userchk"] = true;
|
||||||
|
}else{
|
||||||
|
$value["userchk"] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$formatted = [
|
||||||
|
"type" => "notification",
|
||||||
|
"datetime" => $value["datetime"],
|
||||||
|
"userid" => $value["fromuserid"],
|
||||||
|
"userdata" => [
|
||||||
|
"userid" => $value["fromuserid"],
|
||||||
|
"username" => $value["fromusername"],
|
||||||
|
"iconurl" => $value['fromusericon'],
|
||||||
|
],
|
||||||
|
"message" => $value["msg"],
|
||||||
|
"url" => $value["url"],
|
||||||
|
"title" => $value["title"],
|
||||||
|
"is_read" => $value["userchk"],
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$notificationItems[] = $formatted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($value["userchk"] === "done"){
|
$item = array(
|
||||||
$value["userchk"] = true;
|
"success" => true,
|
||||||
}else{
|
"notifications" => $notificationItems
|
||||||
$value["userchk"] = false;
|
);
|
||||||
}
|
|
||||||
|
|
||||||
$formatted = [
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
"type" => "notification",
|
} else {
|
||||||
"datetime" => $value["datetime"],
|
$item = array(
|
||||||
"userid" => $value["fromuserid"],
|
"success" => false,
|
||||||
"userdata" => [
|
"notifications" => null,
|
||||||
"userid" => $value["fromuserid"],
|
"error" => "no_notification",
|
||||||
"username" => $value["fromusername"],
|
);
|
||||||
"iconurl" => $value['fromusericon'],
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
],
|
|
||||||
"message" => $value["msg"],
|
|
||||||
"url" => $value["url"],
|
|
||||||
"title" => $value["title"],
|
|
||||||
"is_read" => $value["userchk"],
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$notificationItems[] = $formatted;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"notifications" => $notificationItems
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
$pdo = null;
|
||||||
} else {
|
} else {
|
||||||
$item = array(
|
$item = array(
|
||||||
"success" => false,
|
"success" => false,
|
||||||
"notifications" => null,
|
"notifications" => null,
|
||||||
"error" => "no_notification",
|
"error" => "bad_request",
|
||||||
);
|
);
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
$pdo = null;
|
exit;
|
||||||
} else {
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"notifications" => null,
|
|
||||||
"error" => "bad_request",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+152
-149
@@ -15,156 +15,174 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
}
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
if (!empty($pdo)) {
|
||||||
|
$myUserData = getUserData($pdo, $userId);
|
||||||
if (!empty($keyword)) {
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
$aduserinfoQuery = $pdo->prepare("SELECT username,userid,loginid,admin,role,sacinfo,blocklist,bookmark FROM account WHERE userid = :userid");
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
$aduserinfoQuery->bindValue(':userid', safetext($userId));
|
|
||||||
$aduserinfoQuery->execute();
|
|
||||||
$res = $aduserinfoQuery->fetch();
|
|
||||||
$myblocklist = safetext($res["blocklist"]);
|
|
||||||
$mybookmark = safetext($res["bookmark"]);
|
|
||||||
|
|
||||||
$keywordPattern = '/from:@(\w+)\s+(.+)/';
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
if (preg_match($keywordPattern, $keyword, $matches)) {
|
$pageNumber = $page;
|
||||||
$username = $matches[1];
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
$searchKeyword = $matches[2];
|
$pageNumber = 1;
|
||||||
|
|
||||||
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :username AND (ueuse LIKE :searchKeyword OR abi LIKE :searchKeyword) ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
|
||||||
$messageQuery->bindValue(':username', $username, PDO::PARAM_STR);
|
|
||||||
$messageQuery->bindValue(':searchKeyword', '%' . $searchKeyword . '%', PDO::PARAM_STR);
|
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$messageQuery->execute();
|
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
} else {
|
|
||||||
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE ueuse LIKE :keyword OR abi LIKE :keyword ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
|
||||||
$messageQuery->bindValue(':keyword', '%' . $keyword . '%', PDO::PARAM_STR);
|
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$messageQuery->execute();
|
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
}
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
$user_keyword = str_replace('@', '', $keyword);
|
|
||||||
$usersQuery = $pdo->prepare("SELECT * FROM account WHERE username LIKE :keyword OR userid LIKE :keyword OR profile LIKE :keyword ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
|
||||||
$usersQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$usersQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$usersQuery->bindValue(':keyword', '%' . $user_keyword . '%', PDO::PARAM_STR);
|
|
||||||
$usersQuery->execute();
|
|
||||||
$users_array = $usersQuery->fetchAll();
|
|
||||||
|
|
||||||
$users = array();
|
|
||||||
foreach ($users_array as $row) {
|
|
||||||
$users[] = $row;
|
|
||||||
}
|
|
||||||
|
|
||||||
$messages = array();
|
$messages = array();
|
||||||
foreach ($message_array as $row) {
|
|
||||||
$messages[] = $row;
|
if (!empty($keyword)) {
|
||||||
}
|
$aduserinfoQuery = $pdo->prepare("SELECT username,userid,loginid,admin,role,sacinfo,blocklist,bookmark FROM account WHERE userid = :userid");
|
||||||
|
$aduserinfoQuery->bindValue(':userid', safetext($userId));
|
||||||
|
$aduserinfoQuery->execute();
|
||||||
|
$res = $aduserinfoQuery->fetch();
|
||||||
|
$myblocklist = safetext($res["blocklist"]);
|
||||||
|
$mybookmark = safetext($res["bookmark"]);
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
$keywordPattern = '/from:@(\w+)\s+(.+)/';
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
if (preg_match($keywordPattern, $keyword, $matches)) {
|
||||||
//adsystem------------------
|
$username = $matches[1];
|
||||||
|
$searchKeyword = $matches[2];
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :username AND (ueuse LIKE :searchKeyword OR abi LIKE :searchKeyword) ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
|
$messageQuery->bindValue(':username', $username, PDO::PARAM_STR);
|
||||||
$today = date("Y-m-d H:i:s");
|
$messageQuery->bindValue(':searchKeyword', '%' . $searchKeyword . '%', PDO::PARAM_STR);
|
||||||
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
$adsQuery->bindValue(':today', $today);
|
$messageQuery->execute();
|
||||||
$adsQuery->execute();
|
$message_array = $messageQuery->fetchAll();
|
||||||
$adsresult = $adsQuery->fetch();
|
} else {
|
||||||
if(!(empty($adsresult))){
|
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE ueuse LIKE :keyword OR abi LIKE :keyword ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
$message['ads'] = "true";
|
$messageQuery->bindValue(':keyword', '%' . $keyword . '%', PDO::PARAM_STR);
|
||||||
$message['ads_url'] = $adsresult["url"];
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
$messageQuery->execute();
|
||||||
}
|
$message_array = $messageQuery->fetchAll();
|
||||||
//--------------------------
|
|
||||||
$ueuseItems = array();
|
|
||||||
if(!empty($messages)){
|
|
||||||
foreach ($messages as $value) {
|
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
$user_keyword = str_replace('@', '', $keyword);
|
||||||
$adsystem = array(
|
$usersQuery = $pdo->prepare("SELECT * FROM account WHERE username LIKE :keyword OR userid LIKE :keyword OR profile LIKE :keyword ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
"type" => "Ads",
|
$usersQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
"url" => $message['ads_url'],
|
$usersQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
"imgurl" => $message['ads_img_url'],
|
$usersQuery->bindValue(':keyword', '%' . $user_keyword . '%', PDO::PARAM_STR);
|
||||||
"memo" => $message['ads_memo'],
|
$usersQuery->execute();
|
||||||
);
|
$users_array = $usersQuery->fetchAll();
|
||||||
|
|
||||||
|
$users = array();
|
||||||
|
foreach ($users_array as $row) {
|
||||||
|
$users[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
$messages = array();
|
||||||
|
foreach ($message_array as $row) {
|
||||||
|
$messages[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
|
//adsystem------------------
|
||||||
|
|
||||||
|
$message['ads'] = "false";
|
||||||
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($message['ads'] === "true"){
|
||||||
|
$adsystem = array(
|
||||||
|
"type" => "Ads",
|
||||||
|
"url" => $message['ads_url'],
|
||||||
|
"imgurl" => $message['ads_img_url'],
|
||||||
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
$adsystem = null;
|
$adsystem = null;
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$userItems = array();
|
$userItems = array();
|
||||||
if(!empty($users)){
|
if(!empty($users)){
|
||||||
foreach ($users as $value) {
|
foreach ($users as $value) {
|
||||||
$followerCount = count(getFollowerList($pdo, $value["userid"]));
|
$followerCount = count(getFollowerList($pdo, $value["userid"]));
|
||||||
$followCount = count(getFolloweeList($pdo, $value["userid"]));
|
$followCount = count(getFolloweeList($pdo, $value["userid"]));
|
||||||
|
|
||||||
$user = array(
|
$user = array(
|
||||||
"type" => "User",
|
"type" => "User",
|
||||||
"userid" => $value["userid"],
|
|
||||||
"userdata" => array(
|
|
||||||
"userid" => $value["userid"],
|
"userid" => $value["userid"],
|
||||||
"username" => $value["username"],
|
"userdata" => array(
|
||||||
"headurl" => filter_var($value['headname'], FILTER_VALIDATE_URL)
|
"userid" => $value["userid"],
|
||||||
? $value['headname']
|
"username" => $value["username"],
|
||||||
: "../" . $value['headname'],
|
"headurl" => filter_var($value['headname'], FILTER_VALIDATE_URL)
|
||||||
"iconurl" => filter_var($value['iconname'], FILTER_VALIDATE_URL)
|
? $value['headname']
|
||||||
? $value['iconname']
|
: "../" . $value['headname'],
|
||||||
: "../" . $value['iconname'],
|
"iconurl" => filter_var($value['iconname'], FILTER_VALIDATE_URL)
|
||||||
"role" => $value["role"],
|
? $value['iconname']
|
||||||
"sacinfo" => $value["sacinfo"],
|
: "../" . $value['iconname'],
|
||||||
"follower_cnt" => $followerCount,
|
"role" => $value["role"],
|
||||||
"follow_cnt" => $followCount,
|
"sacinfo" => $value["sacinfo"],
|
||||||
"datetime" => $value["datetime"],
|
"follower_cnt" => $followerCount,
|
||||||
"profile" => $value["profile"],
|
"follow_cnt" => $followCount,
|
||||||
),
|
"datetime" => $value["datetime"],
|
||||||
);
|
"profile" => $value["profile"],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
$userItems[] = $user;
|
$userItems[] = $user;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$ueuses = array_merge($userItems, $ueuseItems);
|
$ueuses = array_merge($userItems, $ueuseItems);
|
||||||
if (empty($ueuses)) {
|
if (empty($ueuses)) {
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuses,
|
||||||
|
"ads" => $adsystem,
|
||||||
|
);
|
||||||
|
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
"success" => false,
|
"success" => false,
|
||||||
"ueuses" => null,
|
"ueuses" => null,
|
||||||
@@ -172,26 +190,11 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
"error" => "no_ueuse",
|
"error" => "no_ueuse",
|
||||||
);
|
);
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuses,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdo = null;
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+113
-110
@@ -15,134 +15,137 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
if(empty($uniqid)){
|
||||||
if(empty($uniqid)){
|
echo json_encode(['success' => false, 'error' => 'no_ueuse']);
|
||||||
echo json_encode(['success' => false, 'error' => 'no_ueuse']);
|
exit;
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// データベースに接続
|
|
||||||
try {
|
|
||||||
$option = array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
|
||||||
);
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
|
||||||
} catch (PDOException $e) {
|
|
||||||
// 接続エラーのときエラー内容を取得する
|
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
}
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
// データベースに接続
|
||||||
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
try {
|
||||||
|
$option = array(
|
||||||
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE (uniqid = :ueuseid OR rpuniqid = :rpueuseid) {$blocked_accounts['sql']} ORDER BY datetime ASC LIMIT :offset, :itemsPerPage");
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
$messageQuery->bindValue($ph, $val, PDO::PARAM_STR);
|
);
|
||||||
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
// 接続エラーのときエラー内容を取得する
|
||||||
|
$error_message[] = $e->getMessage();
|
||||||
}
|
}
|
||||||
$messageQuery->bindValue(':ueuseid', $uniqid, PDO::PARAM_STR);
|
|
||||||
$messageQuery->bindValue(':rpueuseid', $uniqid, PDO::PARAM_STR);
|
if (!empty($pdo)) {
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
$myUserData = getUserData($pdo, $userId);
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
$messageQuery->execute();
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
|
$pageNumber = $page;
|
||||||
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
|
$messages = array();
|
||||||
|
$blocked_accounts = sqlBlockAccountList('account', $myblocklist);
|
||||||
|
|
||||||
$messages = array();
|
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE (uniqid = :ueuseid OR rpuniqid = :rpueuseid) {$blocked_accounts['sql']} ORDER BY datetime ASC LIMIT :offset, :itemsPerPage");
|
||||||
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
|
$messageQuery->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
|
}
|
||||||
|
$messageQuery->bindValue(':ueuseid', $uniqid, PDO::PARAM_STR);
|
||||||
|
$messageQuery->bindValue(':rpueuseid', $uniqid, PDO::PARAM_STR);
|
||||||
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$messageQuery->execute();
|
||||||
|
$message_array = $messageQuery->fetchAll();
|
||||||
|
|
||||||
|
$messages = array();
|
||||||
|
|
||||||
foreach ($message_array as $row) {
|
foreach ($message_array as $row) {
|
||||||
if(!(empty($row["rpuniqid"]))){
|
if(!(empty($row["rpuniqid"]))){
|
||||||
if(!($row["rpuniqid"] == $uniqid)){
|
if(!($row["rpuniqid"] == $uniqid)){
|
||||||
$up_messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE uniqid = :ueuseid {$blocked_accounts['sql']} ORDER BY datetime ASC LIMIT :offset, :itemsPerPage");
|
$up_messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE uniqid = :ueuseid {$blocked_accounts['sql']} ORDER BY datetime ASC LIMIT :offset, :itemsPerPage");
|
||||||
foreach ($blocked_accounts['params'] as $ph => $val) {
|
foreach ($blocked_accounts['params'] as $ph => $val) {
|
||||||
$up_messageQuery->bindValue($ph, $val, PDO::PARAM_STR);
|
$up_messageQuery->bindValue($ph, $val, PDO::PARAM_STR);
|
||||||
}
|
}
|
||||||
$up_messageQuery->bindValue(':ueuseid', $row["rpuniqid"]);
|
$up_messageQuery->bindValue(':ueuseid', $row["rpuniqid"]);
|
||||||
$up_messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
$up_messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$up_messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
$up_messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
$up_messageQuery->execute();
|
$up_messageQuery->execute();
|
||||||
$up_messageData = $up_messageQuery->fetchAll();
|
$up_messageData = $up_messageQuery->fetchAll();
|
||||||
if(!(empty($up_messageData))){
|
if(!(empty($up_messageData))){
|
||||||
foreach ($up_messageData as $up_row) {
|
foreach ($up_messageData as $up_row) {
|
||||||
$up_row["up_uniqid"] = $up_row["uniqid"];
|
$up_row["up_uniqid"] = $up_row["uniqid"];
|
||||||
$messages[] = $up_row;
|
$messages[] = $up_row;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$messages[] = $row;
|
||||||
}
|
}
|
||||||
$messages[] = $row;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
//adsystem------------------
|
//adsystem------------------
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$message['ads'] = "false";
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
$adsQuery->bindValue(':today', $today);
|
$adsQuery->bindValue(':today', $today);
|
||||||
$adsQuery->execute();
|
$adsQuery->execute();
|
||||||
$adsresult = $adsQuery->fetch();
|
$adsresult = $adsQuery->fetch();
|
||||||
if(!(empty($adsresult))){
|
if(!(empty($adsresult))){
|
||||||
$message['ads'] = "true";
|
$message['ads'] = "true";
|
||||||
$message['ads_url'] = $adsresult["url"];
|
$message['ads_url'] = $adsresult["url"];
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
}
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
|
||||||
$ueuseItems = array();
|
$ueuseItems = array();
|
||||||
if(!empty($messages)){
|
if(!empty($messages)){
|
||||||
foreach ($messages as $value) {
|
foreach ($messages as $value) {
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
if ($formatted !== null) {
|
if ($formatted !== null) {
|
||||||
$ueuseItems[] = $formatted;
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
if($message['ads'] === "true"){
|
||||||
$adsystem = array(
|
$adsystem = array(
|
||||||
"type" => "Ads",
|
"type" => "Ads",
|
||||||
"url" => $message['ads_url'],
|
"url" => $message['ads_url'],
|
||||||
"imgurl" => $message['ads_img_url'],
|
"imgurl" => $message['ads_img_url'],
|
||||||
"memo" => $message['ads_memo'],
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+106
-103
@@ -48,119 +48,122 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
|
||||||
|
|
||||||
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
|
||||||
$userQuery->bindValue(':userid', $uwuzuid);
|
|
||||||
$userQuery->execute();
|
|
||||||
$userData = $userQuery->fetch();
|
|
||||||
$message_array = [];
|
|
||||||
|
|
||||||
$sql = "SELECT ueuse.*
|
|
||||||
FROM ueuse
|
|
||||||
LEFT JOIN account ON ueuse.account = account.userid
|
|
||||||
WHERE FIND_IN_SET(:userid, REPLACE(ueuse.favorite, ' ', '')) > 0
|
|
||||||
AND account.role != 'ice'
|
|
||||||
ORDER BY ueuse.datetime DESC
|
|
||||||
LIMIT :offset, :itemsPerPage";
|
|
||||||
|
|
||||||
$stmt = $pdo->prepare($sql);
|
|
||||||
$stmt->bindValue(':userid', $uwuzuid, PDO::PARAM_STR);
|
|
||||||
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$stmt->execute();
|
|
||||||
$results = $stmt->fetchAll();
|
|
||||||
|
|
||||||
// 結果を追加
|
|
||||||
$message_array = array_merge($message_array, $results);
|
|
||||||
foreach ($message_array as $row) {
|
|
||||||
$messages[] = $row;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
if (!empty($pdo)) {
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
$myUserData = getUserData($pdo, $userId);
|
||||||
//adsystem------------------
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
|
$pageNumber = $page;
|
||||||
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
$messages = array();
|
||||||
|
|
||||||
|
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
||||||
|
$userQuery->bindValue(':userid', $uwuzuid);
|
||||||
|
$userQuery->execute();
|
||||||
|
$userData = $userQuery->fetch();
|
||||||
|
$message_array = [];
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
$sql = "SELECT ueuse.*
|
||||||
$adsQuery->bindValue(':today', $today);
|
FROM ueuse
|
||||||
$adsQuery->execute();
|
LEFT JOIN account ON ueuse.account = account.userid
|
||||||
$adsresult = $adsQuery->fetch();
|
WHERE FIND_IN_SET(:userid, REPLACE(ueuse.favorite, ' ', '')) > 0
|
||||||
if(!(empty($adsresult))){
|
AND account.role != 'ice'
|
||||||
$message['ads'] = "true";
|
ORDER BY ueuse.datetime DESC
|
||||||
$message['ads_url'] = $adsresult["url"];
|
LIMIT :offset, :itemsPerPage";
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
$stmt = $pdo->prepare($sql);
|
||||||
if(!empty($messages)){
|
$stmt->bindValue(':userid', $uwuzuid, PDO::PARAM_STR);
|
||||||
foreach ($messages as $value) {
|
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
$stmt->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
if ($formatted !== null) {
|
$stmt->execute();
|
||||||
$ueuseItems[] = $formatted;
|
$results = $stmt->fetchAll();
|
||||||
|
|
||||||
|
// 結果を追加
|
||||||
|
$message_array = array_merge($message_array, $results);
|
||||||
|
foreach ($message_array as $row) {
|
||||||
|
$messages[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
|
//adsystem------------------
|
||||||
|
|
||||||
|
$message['ads'] = "false";
|
||||||
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
if($message['ads'] === "true"){
|
||||||
$adsystem = array(
|
$adsystem = array(
|
||||||
"type" => "Ads",
|
"type" => "Ads",
|
||||||
"url" => $message['ads_url'],
|
"url" => $message['ads_url'],
|
||||||
"imgurl" => $message['ads_img_url'],
|
"imgurl" => $message['ads_img_url'],
|
||||||
"memo" => $message['ads_memo'],
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+103
-100
@@ -48,116 +48,119 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
|
||||||
|
|
||||||
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
|
||||||
$userQuery->bindValue(':userid', $uwuzuid);
|
|
||||||
$userQuery->execute();
|
|
||||||
$userData = $userQuery->fetch();
|
|
||||||
|
|
||||||
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :userid AND rpuniqid = '' AND (
|
|
||||||
(photo1 IS NOT NULL AND photo1 != '' AND photo1 != 'none') OR
|
|
||||||
(photo2 IS NOT NULL AND photo2 != '' AND photo2 != 'none') OR
|
|
||||||
(photo3 IS NOT NULL AND photo3 != '' AND photo3 != 'none') OR
|
|
||||||
(photo4 IS NOT NULL AND photo4 != '' AND photo4 != 'none') OR
|
|
||||||
(video1 IS NOT NULL AND video1 != '' AND video1 != 'none')
|
|
||||||
) ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
|
||||||
|
|
||||||
$messageQuery->bindValue(':userid', $uwuzuid);
|
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$messageQuery->execute();
|
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
|
|
||||||
$messages = array();
|
|
||||||
foreach ($message_array as $row) {
|
|
||||||
$messages[] = $row;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
if (!empty($pdo)) {
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
$myUserData = getUserData($pdo, $userId);
|
||||||
//adsystem------------------
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
|
|
||||||
$message['ads'] = "false";
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
|
$pageNumber = $page;
|
||||||
|
if($pageNumber <= 0 || (!(is_numeric($pageNumber)))){
|
||||||
|
$pageNumber = 1;
|
||||||
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
$messages = array();
|
||||||
|
|
||||||
|
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
||||||
|
$userQuery->bindValue(':userid', $uwuzuid);
|
||||||
|
$userQuery->execute();
|
||||||
|
$userData = $userQuery->fetch();
|
||||||
|
|
||||||
|
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :userid AND rpuniqid = '' AND (
|
||||||
|
(photo1 IS NOT NULL AND photo1 != '' AND photo1 != 'none') OR
|
||||||
|
(photo2 IS NOT NULL AND photo2 != '' AND photo2 != 'none') OR
|
||||||
|
(photo3 IS NOT NULL AND photo3 != '' AND photo3 != 'none') OR
|
||||||
|
(photo4 IS NOT NULL AND photo4 != '' AND photo4 != 'none') OR
|
||||||
|
(video1 IS NOT NULL AND video1 != '' AND video1 != 'none')
|
||||||
|
) ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
|
|
||||||
|
$messageQuery->bindValue(':userid', $uwuzuid);
|
||||||
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$messageQuery->execute();
|
||||||
|
$message_array = $messageQuery->fetchAll();
|
||||||
|
|
||||||
|
$messages = array();
|
||||||
|
foreach ($message_array as $row) {
|
||||||
|
$messages[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
$adsQuery->bindValue(':today', $today);
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
$adsQuery->execute();
|
//adsystem------------------
|
||||||
$adsresult = $adsQuery->fetch();
|
|
||||||
if(!(empty($adsresult))){
|
|
||||||
$message['ads'] = "true";
|
|
||||||
$message['ads_url'] = $adsresult["url"];
|
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
$message['ads'] = "false";
|
||||||
if(!empty($messages)){
|
|
||||||
foreach ($messages as $value) {
|
$today = date("Y-m-d H:i:s");
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
$ueuseItems[] = $formatted;
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if(!(empty($adsresult))){
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if(!empty($messages)){
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($message['ads'] === "true"){
|
if($message['ads'] === "true"){
|
||||||
$adsystem = array(
|
$adsystem = array(
|
||||||
"type" => "Ads",
|
"type" => "Ads",
|
||||||
"url" => $message['ads_url'],
|
"url" => $message['ads_url'],
|
||||||
"imgurl" => $message['ads_img_url'],
|
"imgurl" => $message['ads_img_url'],
|
||||||
"memo" => $message['ads_memo'],
|
"memo" => $message['ads_memo'],
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$adsystem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = array(
|
||||||
|
"success" => true,
|
||||||
|
"ueuses" => $ueuseItems,
|
||||||
|
"ads" => $adsystem,
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
$adsystem = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = array(
|
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}else{
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
|
||||||
|
|
||||||
$pdo = null;
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}else{
|
||||||
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pdo = null;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$item = array(
|
$item = array(
|
||||||
|
|||||||
+175
-171
@@ -41,208 +41,212 @@ if (safetext(isset($_POST['page'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
echo json_encode(['success' => false, 'error' => 'bad_request']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($userId, $is_login["userid"]) === true){
|
||||||
|
// データベースに接続
|
||||||
// データベースに接続
|
try {
|
||||||
try {
|
$option = array(
|
||||||
$option = array(
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
);
|
||||||
);
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
} catch (PDOException $e) {
|
||||||
} catch (PDOException $e) {
|
// 接続エラーのときエラー内容を取得する
|
||||||
// 接続エラーのときエラー内容を取得する
|
$error_message[] = $e->getMessage();
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($pdo)) {
|
|
||||||
$myUserData = getUserData($pdo, $userId);
|
|
||||||
$myblocklist = safetext($myUserData["blocklist"]);
|
|
||||||
$mybookmark = safetext($myUserData["bookmark"]);
|
|
||||||
|
|
||||||
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
|
||||||
$pageNumber = $page;
|
|
||||||
if ($pageNumber <= 0 || (!(is_numeric($pageNumber)))) {
|
|
||||||
$pageNumber = 1;
|
|
||||||
}
|
}
|
||||||
$offset = ($pageNumber - 1) * $itemsPerPage;
|
|
||||||
|
|
||||||
$messages = array();
|
if (!empty($pdo)) {
|
||||||
|
$myUserData = getUserData($pdo, $userId);
|
||||||
|
$myblocklist = safetext($myUserData["blocklist"]);
|
||||||
|
$mybookmark = safetext($myUserData["bookmark"]);
|
||||||
|
|
||||||
if ($is_local === true) {
|
$itemsPerPage = 15; // 1ページあたりのユーズ数
|
||||||
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
$pageNumber = $page;
|
||||||
$userQuery->bindValue(':userid', $uwuzuid);
|
if ($pageNumber <= 0 || (!(is_numeric($pageNumber)))) {
|
||||||
$userQuery->execute();
|
$pageNumber = 1;
|
||||||
$userData = $userQuery->fetch();
|
|
||||||
|
|
||||||
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :userid AND rpuniqid = ''ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
|
||||||
$messageQuery->bindValue(':userid', $uwuzuid);
|
|
||||||
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
|
||||||
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
|
||||||
$messageQuery->execute();
|
|
||||||
$message_array = $messageQuery->fetchAll();
|
|
||||||
|
|
||||||
foreach ($message_array as $row) {
|
|
||||||
$messages[] = $row;
|
|
||||||
}
|
}
|
||||||
|
$offset = ($pageNumber - 1) * $itemsPerPage;
|
||||||
|
|
||||||
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
$messages = array();
|
||||||
$messages = getDatasUeuse($pdo, $messages);
|
|
||||||
} elseif($userData != null) {
|
|
||||||
$activity_base = GetActivityPubJson($userData['outbox']);
|
|
||||||
$pageUrl = $activity_base['first'] ?? null;
|
|
||||||
|
|
||||||
$pageNumber = max(1, (int)$page); // 1ページ目以上に固定
|
if ($is_local === true) {
|
||||||
$currentPageData = null;
|
$userQuery = $pdo->prepare("SELECT username, userid, profile, role, follower FROM account WHERE userid = :userid");
|
||||||
|
$userQuery->bindValue(':userid', $uwuzuid);
|
||||||
|
$userQuery->execute();
|
||||||
|
$userData = $userQuery->fetch();
|
||||||
|
|
||||||
for ($i = 1; $i <= $pageNumber; $i++) {
|
$messageQuery = $pdo->prepare("SELECT * FROM ueuse WHERE account = :userid AND rpuniqid = ''ORDER BY datetime DESC LIMIT :offset, :itemsPerPage");
|
||||||
if (!$pageUrl) break;
|
$messageQuery->bindValue(':userid', $uwuzuid);
|
||||||
|
$messageQuery->bindValue(':offset', $offset, PDO::PARAM_INT);
|
||||||
|
$messageQuery->bindValue(':itemsPerPage', $itemsPerPage, PDO::PARAM_INT);
|
||||||
|
$messageQuery->execute();
|
||||||
|
$message_array = $messageQuery->fetchAll();
|
||||||
|
|
||||||
$currentPageData = GetActivityPubJson($pageUrl);
|
foreach ($message_array as $row) {
|
||||||
|
$messages[] = $row;
|
||||||
// 目的のページに達していなければ next をたどる
|
|
||||||
if ($i < $pageNumber) {
|
|
||||||
$pageUrl = $currentPageData['next'] ?? null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$orderedItems = $currentPageData['orderedItems'] ?? [];
|
|
||||||
|
|
||||||
$createItems = array_filter($orderedItems, function ($item) {
|
|
||||||
return isset($item['type']) && $item['type'] === 'Create';
|
|
||||||
});
|
|
||||||
$createItems = array_values($createItems);
|
|
||||||
|
|
||||||
foreach ($createItems as $item) {
|
|
||||||
// object がURLなら取得
|
|
||||||
$object = $item['object'] ?? null;
|
|
||||||
if (is_string($object)) {
|
|
||||||
$object = GetActivityPubJson($object);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// nullや不正なobjectはスキップ
|
// ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える
|
||||||
if (!is_array($object)) continue;
|
$messages = getDatasUeuse($pdo, $messages);
|
||||||
|
} elseif($userData != null) {
|
||||||
|
$activity_base = GetActivityPubJson($userData['outbox']);
|
||||||
|
$pageUrl = $activity_base['first'] ?? null;
|
||||||
|
|
||||||
$contentHtml = $object['content'] ?? '';
|
$pageNumber = max(1, (int)$page); // 1ページ目以上に固定
|
||||||
$withNewlines = preg_replace('/<br\s*\/?>/i', "\n", $contentHtml);
|
$currentPageData = null;
|
||||||
$plainContent = strip_tags($withNewlines);
|
|
||||||
|
|
||||||
$photos = [];
|
for ($i = 1; $i <= $pageNumber; $i++) {
|
||||||
$video = null;
|
if (!$pageUrl) break;
|
||||||
|
|
||||||
if (!empty($object['attachment'])) {
|
$currentPageData = GetActivityPubJson($pageUrl);
|
||||||
$attachments = is_array($object['attachment']) ? $object['attachment'] : [$object['attachment']];
|
|
||||||
|
|
||||||
foreach ($attachments as $att) {
|
// 目的のページに達していなければ next をたどる
|
||||||
if (!is_array($att)) continue;
|
if ($i < $pageNumber) {
|
||||||
|
$pageUrl = $currentPageData['next'] ?? null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$orderedItems = $currentPageData['orderedItems'] ?? [];
|
||||||
|
|
||||||
$mediaType = $att['mediaType'] ?? '';
|
$createItems = array_filter($orderedItems, function ($item) {
|
||||||
$url = $att['url'] ?? ($att['href'] ?? null);
|
return isset($item['type']) && $item['type'] === 'Create';
|
||||||
|
});
|
||||||
|
$createItems = array_values($createItems);
|
||||||
|
|
||||||
if (!$url) continue;
|
foreach ($createItems as $item) {
|
||||||
|
// object がURLなら取得
|
||||||
|
$object = $item['object'] ?? null;
|
||||||
|
if (is_string($object)) {
|
||||||
|
$object = GetActivityPubJson($object);
|
||||||
|
}
|
||||||
|
|
||||||
// 画像(mediaTypeで判定)
|
// nullや不正なobjectはスキップ
|
||||||
if (str_starts_with($mediaType, 'image/')) {
|
if (!is_array($object)) continue;
|
||||||
if (count($photos) < 4) {
|
|
||||||
$photos[] = $url;
|
$contentHtml = $object['content'] ?? '';
|
||||||
|
$withNewlines = preg_replace('/<br\s*\/?>/i', "\n", $contentHtml);
|
||||||
|
$plainContent = strip_tags($withNewlines);
|
||||||
|
|
||||||
|
$photos = [];
|
||||||
|
$video = null;
|
||||||
|
|
||||||
|
if (!empty($object['attachment'])) {
|
||||||
|
$attachments = is_array($object['attachment']) ? $object['attachment'] : [$object['attachment']];
|
||||||
|
|
||||||
|
foreach ($attachments as $att) {
|
||||||
|
if (!is_array($att)) continue;
|
||||||
|
|
||||||
|
$mediaType = $att['mediaType'] ?? '';
|
||||||
|
$url = $att['url'] ?? ($att['href'] ?? null);
|
||||||
|
|
||||||
|
if (!$url) continue;
|
||||||
|
|
||||||
|
// 画像(mediaTypeで判定)
|
||||||
|
if (str_starts_with($mediaType, 'image/')) {
|
||||||
|
if (count($photos) < 4) {
|
||||||
|
$photos[] = $url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 動画(mediaTypeで判定)
|
||||||
|
if (str_starts_with($mediaType, 'video/') && !$video) {
|
||||||
|
$video = $url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 動画(mediaTypeで判定)
|
$messages[] = [
|
||||||
if (str_starts_with($mediaType, 'video/') && !$video) {
|
"rpuniqid" => "",
|
||||||
$video = $url;
|
"ruuniqid" => "",
|
||||||
}
|
"uniqid" => "",
|
||||||
|
"datetime" => date("Y-m-d H:i:s", strtotime($object["published"] ?? "now")),
|
||||||
|
"account" => $userData["userid"] . "@" . $activity_domain,
|
||||||
|
"username" => $userData["username"],
|
||||||
|
"iconname" => $userData["iconname"],
|
||||||
|
"headname" => $userData["headname"] ?? null,
|
||||||
|
"role" => $userData["role"] ?? "user",
|
||||||
|
"sacinfo" => "",
|
||||||
|
"ueuse" => $plainContent,
|
||||||
|
"photo1" => $photos[0] ?? null,
|
||||||
|
"photo2" => $photos[1] ?? null,
|
||||||
|
"photo3" => $photos[2] ?? null,
|
||||||
|
"photo4" => $photos[3] ?? null,
|
||||||
|
"video1" => $video,
|
||||||
|
"nsfw" => $object["sensitive"] ?? false,
|
||||||
|
"favorite" => "",
|
||||||
|
"favorite_count" => 0,
|
||||||
|
"reply_count" => 0,
|
||||||
|
"reuse_count" => 0,
|
||||||
|
"abi" => "",
|
||||||
|
"abidate" => null,
|
||||||
|
"activitypub" => true,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$message = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//adsystem------------------
|
||||||
|
|
||||||
|
$message['ads'] = "false";
|
||||||
|
|
||||||
|
$today = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
||||||
|
$adsQuery->bindValue(':today', $today);
|
||||||
|
$adsQuery->execute();
|
||||||
|
$adsresult = $adsQuery->fetch();
|
||||||
|
if (!(empty($adsresult))) {
|
||||||
|
$message['ads'] = "true";
|
||||||
|
$message['ads_url'] = $adsresult["url"];
|
||||||
|
$message['ads_img_url'] = $adsresult["image_url"];
|
||||||
|
$message['ads_memo'] = $adsresult["memo"];
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
$ueuseItems = array();
|
||||||
|
if (!empty($messages)) {
|
||||||
|
foreach ($messages as $value) {
|
||||||
|
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
||||||
|
if ($formatted !== null) {
|
||||||
|
$ueuseItems[] = $formatted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$messages[] = [
|
if ($message['ads'] === "true") {
|
||||||
"rpuniqid" => "",
|
$adsystem = array(
|
||||||
"ruuniqid" => "",
|
"type" => "Ads",
|
||||||
"uniqid" => "",
|
"url" => $message['ads_url'],
|
||||||
"datetime" => date("Y-m-d H:i:s", strtotime($object["published"] ?? "now")),
|
"imgurl" => $message['ads_img_url'],
|
||||||
"account" => $userData["userid"] . "@" . $activity_domain,
|
"memo" => $message['ads_memo'],
|
||||||
"username" => $userData["username"],
|
);
|
||||||
"iconname" => $userData["iconname"],
|
} else {
|
||||||
"headname" => $userData["headname"] ?? null,
|
$adsystem = null;
|
||||||
"role" => $userData["role"] ?? "user",
|
|
||||||
"sacinfo" => "",
|
|
||||||
"ueuse" => $plainContent,
|
|
||||||
"photo1" => $photos[0] ?? null,
|
|
||||||
"photo2" => $photos[1] ?? null,
|
|
||||||
"photo3" => $photos[2] ?? null,
|
|
||||||
"photo4" => $photos[3] ?? null,
|
|
||||||
"video1" => $video,
|
|
||||||
"nsfw" => $object["sensitive"] ?? false,
|
|
||||||
"favorite" => "",
|
|
||||||
"favorite_count" => 0,
|
|
||||||
"reply_count" => 0,
|
|
||||||
"reuse_count" => 0,
|
|
||||||
"abi" => "",
|
|
||||||
"abidate" => null,
|
|
||||||
"activitypub" => true,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$message = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//adsystem------------------
|
|
||||||
|
|
||||||
$message['ads'] = "false";
|
|
||||||
|
|
||||||
$today = date("Y-m-d H:i:s");
|
|
||||||
|
|
||||||
$adsQuery = $pdo->prepare("SELECT * FROM ads WHERE start_date < :today AND limit_date > :today ORDER BY rand()");
|
|
||||||
$adsQuery->bindValue(':today', $today);
|
|
||||||
$adsQuery->execute();
|
|
||||||
$adsresult = $adsQuery->fetch();
|
|
||||||
if (!(empty($adsresult))) {
|
|
||||||
$message['ads'] = "true";
|
|
||||||
$message['ads_url'] = $adsresult["url"];
|
|
||||||
$message['ads_img_url'] = $adsresult["image_url"];
|
|
||||||
$message['ads_memo'] = $adsresult["memo"];
|
|
||||||
}
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
$ueuseItems = array();
|
|
||||||
if (!empty($messages)) {
|
|
||||||
foreach ($messages as $value) {
|
|
||||||
$formatted = FormatUeuseItem($value, $myblocklist, $mybookmark, $pdo, $userId);
|
|
||||||
if ($formatted !== null) {
|
|
||||||
$ueuseItems[] = $formatted;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($message['ads'] === "true") {
|
$item = array(
|
||||||
$adsystem = array(
|
"success" => true,
|
||||||
"type" => "Ads",
|
"ueuses" => $ueuseItems,
|
||||||
"url" => $message['ads_url'],
|
"ads" => $adsystem,
|
||||||
"imgurl" => $message['ads_img_url'],
|
|
||||||
"memo" => $message['ads_memo'],
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
} else {
|
} else {
|
||||||
$adsystem = null;
|
$item = array(
|
||||||
|
"success" => false,
|
||||||
|
"ueuses" => null,
|
||||||
|
"ads" => null,
|
||||||
|
"error" => "no_ueuse",
|
||||||
|
);
|
||||||
|
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = array(
|
$pdo = null;
|
||||||
"success" => true,
|
|
||||||
"ueuses" => $ueuseItems,
|
|
||||||
"ads" => $adsystem,
|
|
||||||
);
|
|
||||||
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
} else {
|
|
||||||
$item = array(
|
|
||||||
"success" => false,
|
|
||||||
"ueuses" => null,
|
|
||||||
"ads" => null,
|
|
||||||
"error" => "no_ueuse",
|
|
||||||
);
|
|
||||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
$pdo = null;
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$item = array(
|
$item = array(
|
||||||
"success" => false,
|
"success" => false,
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
使っている方ならわかると思いますが普通のSNSです!
|
使っている方ならわかると思いますが普通のSNSです!
|
||||||
これと言った大きな特徴もなく、平凡で、なんとも言えないSNSです…
|
これと言った大きな特徴もなく、平凡で、なんとも言えないSNSです…
|
||||||
あっ!特徴かもしれないのが誰でもサーバーを建てられることです!!!
|
あっ!特徴かもしれないのが誰でもサーバーを建てられることです!!!
|
||||||
詳細はdocs.uwuzu.xyzを確認してください!
|
SNSを作れるソフトウェアみたいな...?
|
||||||
|
よければ詳細はdocs.uwuzu.comを確認してください!
|
||||||
### 1.1 uwuzuのよみは?
|
### 1.1 uwuzuのよみは?
|
||||||
uwuzuの読みはゆずです。
|
uwuzuの読みはゆずです。
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ uwuzuはPHPとJS、HTML(プログラミング言語じゃないか)、CSSで作
|
|||||||
使用している画像は友人またはGoogle Icons様より使わせて頂いております!
|
使用している画像は友人またはGoogle Icons様より使わせて頂いております!
|
||||||
|
|
||||||
## 5. サーバーの建て方
|
## 5. サーバーの建て方
|
||||||
docs.uwuzu.xyzをご確認いただくかgithubのreadme.mdをよんでください!
|
docs.uwuzu.comをご確認いただくかgithubのreadme.mdをよんでください!
|
||||||
|
|
||||||
## 6. Android、iOS、その他OS向けのアプリについて
|
## 6. Android、iOS、その他OS向けのアプリについて
|
||||||
残念ですが今現在は公式アプリ等はなく、Webブラウザからお楽しみいただけます。
|
残念ですが今現在は公式アプリ等はなく、Webブラウザからお楽しみいただけます。
|
||||||
@@ -98,4 +99,4 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
|
|
||||||
## 更新情報
|
## 更新情報
|
||||||
編集者 : daichimarukana
|
編集者 : daichimarukana
|
||||||
最終更新日 : 2025/08/05 0:45
|
最終更新日 : 2026/04/05 16:32
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
uwuzu
|
uwuzu
|
||||||
1.6.11
|
1.6.12
|
||||||
2026/01/05
|
2026/04/22
|
||||||
daichimarukana,putonfps
|
daichimarukana,putonfps
|
||||||
@@ -1,6 +1,17 @@
|
|||||||
## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
|
## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
|
||||||
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
|
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
|
||||||
|
|
||||||
|
## Version 1.6.12 (Hapuego)
|
||||||
|
2026/01/05
|
||||||
|
fix: 設定画面でヘッダーの更新時にアイコンに関するエラーが発生してしまう可能性のある問題を修正しました!
|
||||||
|
fix: 設定変更APIでアイコン・ヘッダーの更新失敗時にエラーが正常に返されない恐れのある問題を修正しました!
|
||||||
|
fix: APIを通じて画像を投稿できない恐れのある問題を修正しました!
|
||||||
|
fix: レンタルサーバーなどの環境で正常にサーバーの残り空き容量などが取得できず、エラーが起きてしまう恐れのある問題を修正しました!
|
||||||
|
fix: ユーズに含まれているURLに「_」(アンダーバー)が含まれていた際に「_」が一件のみでも斜体判定となってしまいURLが正しく変換されない問題を修正しました!
|
||||||
|
fix: 重大な脆弱性を修正しました。
|
||||||
|
new: Markdownを強化し、小さく表示「-# [ここにテキスト]」を実装しました!
|
||||||
|
new: Soundcloud埋め込みに対応しました!
|
||||||
|
|
||||||
## Version 1.6.11 (Hapuego)
|
## Version 1.6.11 (Hapuego)
|
||||||
2026/01/05
|
2026/01/05
|
||||||
fix: 背景透過画像が投稿できない問題を修正しました!
|
fix: 背景透過画像が投稿できない問題を修正しました!
|
||||||
|
|||||||
@@ -16,45 +16,48 @@ if (safetext(isset($_POST['code'])) && safetext(isset($_POST['userid'])) && safe
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($postUserid, $is_login["userid"]) === true){
|
||||||
|
try {
|
||||||
|
$option = array(
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
|
);
|
||||||
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
// 接続エラーのときエラー内容を取得する
|
||||||
|
$error_message[] = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
$option = array(
|
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
|
||||||
);
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
|
||||||
} catch (PDOException $e) {
|
|
||||||
// 接続エラーのときエラー内容を取得する
|
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
$query->execute(array(':userid' => $postUserid));
|
||||||
|
|
||||||
$query->execute(array(':userid' => $postUserid));
|
$result2 = $query->fetch();
|
||||||
|
|
||||||
$result2 = $query->fetch();
|
if($result2["loginid"] === $loginid){
|
||||||
|
if($result2["admin"] === "yes"){
|
||||||
|
try {
|
||||||
|
// 削除クエリを実行
|
||||||
|
$deleteQuery = $pdo->prepare("DELETE FROM invitation WHERE code = :code");
|
||||||
|
$deleteQuery->bindValue(':code', $postCode, PDO::PARAM_STR);
|
||||||
|
$res = $deleteQuery->execute();
|
||||||
|
|
||||||
if($result2["loginid"] === $loginid){
|
if ($res) {
|
||||||
if($result2["admin"] === "yes"){
|
echo json_encode(['success' => true]);
|
||||||
try {
|
exit;
|
||||||
// 削除クエリを実行
|
} else {
|
||||||
$deleteQuery = $pdo->prepare("DELETE FROM invitation WHERE code = :code");
|
echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
|
||||||
$deleteQuery->bindValue(':code', $postCode, PDO::PARAM_STR);
|
exit;
|
||||||
$res = $deleteQuery->execute();
|
}
|
||||||
|
} catch(PDOException $e) {
|
||||||
if ($res) {
|
echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
|
||||||
echo json_encode(['success' => true]);
|
|
||||||
exit;
|
|
||||||
} else {
|
|
||||||
echo json_encode(['success' => false, 'error' => '削除に失敗しました。']);
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} catch(PDOException $e) {
|
|
||||||
echo json_encode(['success' => false, 'error' => 'データベースエラー:' . $e->getMessage()]);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '削除に失敗しました。(sess_err)']);
|
echo json_encode(['success' => false, 'error' => '削除に失敗しました。(sess_err)']);
|
||||||
|
|||||||
@@ -16,77 +16,80 @@ if (isset($_FILES['update_zip']) && isset($_POST['userid']) && isset($_POST['acc
|
|||||||
if ($is_login === false) {
|
if ($is_login === false) {
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}elseif(is_sameUserid($postUserid, $is_login["userid"]) === true){
|
||||||
|
try {
|
||||||
|
$option = array(
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||||
|
);
|
||||||
|
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$error_message[] = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
if(empty($error_message)){
|
||||||
$option = array(
|
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
$query->execute(array(':userid' => $postUserid));
|
||||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
$result2 = $query->fetch();
|
||||||
);
|
|
||||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
|
||||||
} catch (PDOException $e) {
|
|
||||||
$error_message[] = $e->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(empty($error_message)){
|
if($result2["loginid"] === $loginid){
|
||||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
if($result2["admin"] === "yes"){
|
||||||
$query->execute(array(':userid' => $postUserid));
|
|
||||||
$result2 = $query->fetch();
|
|
||||||
|
|
||||||
if($result2["loginid"] === $loginid){
|
$uploadDir = sys_get_temp_dir();
|
||||||
if($result2["admin"] === "yes"){
|
$uploadFile = $uploadDir . '/' . basename($_FILES['update_zip']['name']);
|
||||||
|
|
||||||
$uploadDir = sys_get_temp_dir();
|
if (move_uploaded_file($_FILES['update_zip']['tmp_name'], $uploadFile)) {
|
||||||
$uploadFile = $uploadDir . '/' . basename($_FILES['update_zip']['name']);
|
$extractPath = $uploadDir . '/uwuzu_update_' . createUniqId();
|
||||||
|
|
||||||
if (move_uploaded_file($_FILES['update_zip']['tmp_name'], $uploadFile)) {
|
$zip = new ZipArchive;
|
||||||
$extractPath = $uploadDir . '/uwuzu_update_' . createUniqId();
|
if ($zip->open($uploadFile) == true) {
|
||||||
|
$zip->extractTo($extractPath);
|
||||||
|
$zip->close();
|
||||||
|
|
||||||
$zip = new ZipArchive;
|
// JSONファイルを読み込む
|
||||||
if ($zip->open($uploadFile) == true) {
|
$jsonFile = $extractPath . '/update.json';
|
||||||
$zip->extractTo($extractPath);
|
if (file_exists($jsonFile)) {
|
||||||
$zip->close();
|
$jsonData = json_decode(file_get_contents($jsonFile), true);
|
||||||
|
if (json_last_error() === JSON_ERROR_NONE) {
|
||||||
// JSONファイルを読み込む
|
$response = [
|
||||||
$jsonFile = $extractPath . '/update.json';
|
'success' => true,
|
||||||
if (file_exists($jsonFile)) {
|
'software_name' => safetext($jsonData['software']) ?? '名前がありません',
|
||||||
$jsonData = json_decode(file_get_contents($jsonFile), true);
|
'version' => safetext($jsonData['version']) ?? 'バージョン情報がありません',
|
||||||
if (json_last_error() === JSON_ERROR_NONE) {
|
'release_notes' => safetext($jsonData['release_notes']) ?? 'リリースノートが見つかりません。',
|
||||||
$response = [
|
'notices' => safetext($jsonData['notices']) ?? '注意事項が見つかりません。',
|
||||||
'success' => true,
|
'file_path' => safetext($extractPath)
|
||||||
'software_name' => safetext($jsonData['software']) ?? '名前がありません',
|
];
|
||||||
'version' => safetext($jsonData['version']) ?? 'バージョン情報がありません',
|
echo json_encode($response);
|
||||||
'release_notes' => safetext($jsonData['release_notes']) ?? 'リリースノートが見つかりません。',
|
} else {
|
||||||
'notices' => safetext($jsonData['notices']) ?? '注意事項が見つかりません。',
|
echo json_encode(['success' => false, 'error' => 'JSONファイルの読み込みに失敗しました。(ROADING_JSON_ERROR)']);
|
||||||
'file_path' => safetext($extractPath)
|
}
|
||||||
];
|
|
||||||
echo json_encode($response);
|
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(['success' => false, 'error' => 'JSONファイルの読み込みに失敗しました。(ROADING_JSON_ERROR)']);
|
echo json_encode(['success' => false, 'error' => 'JSONファイルの読み込みに失敗しました。(ROADING_JSON_ERROR)']);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(['success' => false, 'error' => 'JSONファイルの読み込みに失敗しました。(ROADING_JSON_ERROR)']);
|
echo json_encode(['success' => false, 'error' => '読み込みに失敗しました。1(ROADING_ERROR)']);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
echo json_encode(['success' => false, 'error' => '読み込みに失敗しました。1(ROADING_ERROR)']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($uploadFile)) {
|
if (file_exists($uploadFile)) {
|
||||||
if (is_file($uploadFile)) {
|
if (is_file($uploadFile)) {
|
||||||
unlink($uploadFile);
|
unlink($uploadFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
echo json_encode(['success' => false, 'error' => 'ファイルの移動に失敗しました。(ROADING_ERROR)']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'ファイルの移動に失敗しました。(ROADING_ERROR)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
echo json_encode(['success' => false, 'error' => 'データベースの接続に失敗しました。(ERROR)']);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => 'データベースの接続に失敗しました。(ERROR)']);
|
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo json_encode(['success' => false, 'error' => '読み込みに失敗しました。2(ROADING_ERROR)']);
|
echo json_encode(['success' => false, 'error' => '読み込みに失敗しました。2(ROADING_ERROR)']);
|
||||||
|
|||||||
@@ -171,37 +171,59 @@ if(!empty($pdo)){
|
|||||||
|
|
||||||
if(function_exists("disk_free_space")){
|
if(function_exists("disk_free_space")){
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
||||||
$disk = true;
|
$totalRaw = @disk_total_space('C:');
|
||||||
$totalRaw = disk_total_space('C:');
|
if($totalRaw !== false){
|
||||||
$diskTotal = ($totalRaw > 0) ? (int)$totalRaw / 1024 / 1024 : 0;
|
$disk = true;
|
||||||
$diskFree = (int)disk_free_space('C:') / 1024 / 1024;
|
$diskTotal = ($totalRaw > 0) ? (int)$totalRaw / 1024 / 1024 : 0;
|
||||||
$diskUmari = $diskTotal - $diskFree;
|
$diskFree = (int)disk_free_space('C:') / 1024 / 1024;
|
||||||
|
$diskUmari = $diskTotal - $diskFree;
|
||||||
|
|
||||||
if ($diskTotal > 0 && ($diskFree / $diskTotal < 0.1)) {
|
if ($diskTotal > 0 && ($diskFree / $diskTotal < 0.1)) {
|
||||||
$disk_over90p = true;
|
$disk_over90p = true;
|
||||||
} else {
|
} else {
|
||||||
$disk_over90p = false;
|
$disk_over90p = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$loadAve = null;
|
$loadAve = null;
|
||||||
|
}else{
|
||||||
|
$disk = false;
|
||||||
|
$diskFree = 5000;
|
||||||
|
$diskUmari = 5000;
|
||||||
|
$diskTotal = 10000;
|
||||||
|
$disk_over90p = false;
|
||||||
|
$loadAve = null;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$disk = true;
|
$totalRaw = @disk_total_space('/');
|
||||||
$totalRaw = disk_total_space('/');
|
if($totalRaw !== false){
|
||||||
$diskTotal = ($totalRaw > 0) ? (int)$totalRaw / 1024 / 1024 : 0;
|
$disk = true;
|
||||||
$diskFree = (int)disk_free_space('/') / 1024 / 1024;
|
$diskTotal = ($totalRaw > 0) ? (int)$totalRaw / 1024 / 1024 : 0;
|
||||||
$diskUmari = $diskTotal - $diskFree;
|
$diskFree = (int)disk_free_space('/') / 1024 / 1024;
|
||||||
|
$diskUmari = $diskTotal - $diskFree;
|
||||||
|
|
||||||
if ($diskTotal > 0 && ($diskFree / $diskTotal < 0.1)) {
|
if ($diskTotal > 0 && ($diskFree / $diskTotal < 0.1)) {
|
||||||
$disk_over90p = true;
|
$disk_over90p = true;
|
||||||
} else {
|
} else {
|
||||||
$disk_over90p = false;
|
$disk_over90p = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(function_exists("sys_getloadavg")){
|
if(function_exists("sys_getloadavg")){
|
||||||
$loadAve = sys_getloadavg()[0];
|
$loadAve = sys_getloadavg()[0];
|
||||||
} else {
|
} else {
|
||||||
$loadAve = null;
|
$loadAve = null;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
$disk = false;
|
||||||
|
$diskFree = 5000;
|
||||||
|
$diskUmari = 5000;
|
||||||
|
$diskTotal = 10000;
|
||||||
|
$disk_over90p = false;
|
||||||
|
if(function_exists("sys_getloadavg")){
|
||||||
|
$loadAve = sys_getloadavg()[0];
|
||||||
|
}else{
|
||||||
|
$loadAve = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$disk = false;
|
$disk = false;
|
||||||
|
|||||||
+34
-3
@@ -1,12 +1,43 @@
|
|||||||
{
|
{
|
||||||
"software": "uwuzu",
|
"software": "uwuzu",
|
||||||
"version": "1.6.11",
|
"version": "1.6.12",
|
||||||
"release_date": "2026/01/05",
|
"release_date": "2026/04/22",
|
||||||
"release_notes": "このアップデートには、背景透過画像が投稿できないバグの修正が含まれます!\n詳細はリリースノートをご確認ください。",
|
"release_notes": "このアップデートには、とっても重大な脆弱性の修正が含まれます!また、一部新機能の追加、バグ修正が含まれます。\n詳細はリリースノートをご確認ください。",
|
||||||
"notices": "アップデート前にデータのバックアップを行うことをおすすめします!",
|
"notices": "アップデート前にデータのバックアップを行うことをおすすめします!",
|
||||||
"files": {
|
"files": {
|
||||||
"overwrite": [
|
"overwrite": [
|
||||||
|
"/admin/addadmin.php",
|
||||||
|
"/api/me/settings/index.php",
|
||||||
|
"/api/ueuse/create.php",
|
||||||
|
"/css/home.css",
|
||||||
|
"/js/view_function.js",
|
||||||
|
"/new.php",
|
||||||
|
"/settings_admin/overview_admin.php",
|
||||||
|
"/uwuzu_error_code.txt",
|
||||||
|
"/abi/addabi.php",
|
||||||
|
"/bookmark/bookmark.php",
|
||||||
|
"/delete/delete.php",
|
||||||
|
"/favorite/favorite.php",
|
||||||
|
"/function/delete_apitoken.php",
|
||||||
"/function/function.php",
|
"/function/function.php",
|
||||||
|
"/function/get_customemoji.php",
|
||||||
|
"/function/get_userid.php",
|
||||||
|
"/function/reuse.php",
|
||||||
|
"/function/settings.php",
|
||||||
|
"/function/ueuse.php",
|
||||||
|
"/migration/index.php",
|
||||||
|
"/nextpage/bookmarktimeline.php",
|
||||||
|
"/nextpage/followtimeline.php",
|
||||||
|
"/nextpage/foryoutimeline.php",
|
||||||
|
"/nextpage/localtimeline.php",
|
||||||
|
"/nextpage/notification.php",
|
||||||
|
"/nextpage/searchtimeline.php",
|
||||||
|
"/nextpage/ueusetimeline.php",
|
||||||
|
"/nextpage/userliketimeline.php",
|
||||||
|
"/nextpage/usermediatimeline.php",
|
||||||
|
"/nextpage/usertimeline.php",
|
||||||
|
"/settings_admin/api/code_delete.php",
|
||||||
|
"/settings_admin/api/update_query.php",
|
||||||
"/server/uwuzuabout.txt",
|
"/server/uwuzuabout.txt",
|
||||||
"/server/uwuzuinfo.txt",
|
"/server/uwuzuinfo.txt",
|
||||||
"/server/uwuzurelease.txt"
|
"/server/uwuzurelease.txt"
|
||||||
|
|||||||
@@ -32,15 +32,20 @@ could_not_complete - 処理を完了できなかった場合に表示されま
|
|||||||
user_not_frozen_cant_be_banned - APIからユーザーをBANしようとした際に、ユーザーが事前に凍結されていない場合に発生するエラーです。
|
user_not_frozen_cant_be_banned - APIからユーザーをBANしようとした際に、ユーザーが事前に凍結されていない場合に発生するエラーです。
|
||||||
method_not_allowed - 禁止されたHTTPメゾットで要求があった場合に表示されます。
|
method_not_allowed - 禁止されたHTTPメゾットで要求があった場合に表示されます。
|
||||||
this_API_is_ws_only - WebsocketAPIがWebsocket以外の方法でアクセスされた場合に表示されます。
|
this_API_is_ws_only - WebsocketAPIがWebsocket以外の方法でアクセスされた場合に表示されます。
|
||||||
|
base64_decode_failed - Base64デコードに失敗した場合に表示されます。
|
||||||
|
|
||||||
----------(UWUZU ERR CODE)----------
|
----------(UWUZU ERR CODE)----------
|
||||||
FILE_DEKASUGUI_PHP_INI_KAKUNIN - php.iniで設定されているファイルサイズ上限を上回っている時に表示されます。
|
FILE_DEKASUGUI_PHP_INI_KAKUNIN - php.iniで設定されているファイルサイズ上限を上回っている時に表示されます。
|
||||||
FILE_DEKASUGUI_HTML_KAKUNIN - HTMLフォームで指定されているファイルサイズ上限を上回っている時に表示されます。
|
FILE_DEKASUGUI_HTML_KAKUNIN - HTMLフォームで指定されているファイルサイズ上限を上回っている時に表示されます。
|
||||||
FILE_SUKOSHIDAKE_UPLOAD - アップロードされたファイルが一部のみアップロードされた場合に表示されます。
|
FILE_SUKOSHIDAKE_UPLOAD - アップロードされたファイルが一部のみアップロードされた場合に表示されます。
|
||||||
FILE_UPLOAD_DEKINAKATTA - ファイルのアップロードができない場合に表示されます。
|
FILE_UPLOAD_DEKINAKATTA - ファイルのアップロードができない場合に表示されます。
|
||||||
|
FILE_NAME_NAI - ファイル名が無い場合に表示されます。
|
||||||
|
FILE_PATH_NAI - ファイルパスが無い場合に表示されます。
|
||||||
|
FILE_SIZE_NAI - ファイルサイズが無い場合に表示されます。
|
||||||
TMP_FOLDER_NAI - テンポラリフォルダがない場合に表示されます。
|
TMP_FOLDER_NAI - テンポラリフォルダがない場合に表示されます。
|
||||||
FILE_KAKIKOMI_SIPPAI - 記憶装置へのファイル書き込みに失敗した場合に表示されます。
|
FILE_KAKIKOMI_SIPPAI - 記憶装置へのファイル書き込みに失敗した場合に表示されます。
|
||||||
PHPINFO()_KAKUNIN - PHPの拡張モジュールによりアップロードが中止された場合に表示されます。
|
PHPINFO()_KAKUNIN - PHPの拡張モジュールによりアップロードが中止された場合に表示されます。
|
||||||
|
SAVE_FOLDER_KAKIKOMI_KENNAI - フォルダへの書き込み権が無い場合に表示されます。
|
||||||
|
|
||||||
INVITATION_CODE_INPUT_PLEASE - 招待コードが入力されていない時に表示されます。
|
INVITATION_CODE_INPUT_PLEASE - 招待コードが入力されていない時に表示されます。
|
||||||
INVITATION_CODE_SHIYOUZUMI - 招待コードが使用済みの場合に表示されます。
|
INVITATION_CODE_SHIYOUZUMI - 招待コードが使用済みの場合に表示されます。
|
||||||
|
|||||||
Reference in New Issue
Block a user