mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-05 03:24:41 +00:00
uwuzu version 1.2.26
This commit is contained in:
@@ -71,6 +71,8 @@ PHP 8では事前にGDを有効化しておいてください!(QRコードの
|
||||
- ueuse(text) 投稿内容保存用
|
||||
- photo1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo2(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo3(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo4(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- video1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- datetime(datetime) 投稿日時保存用
|
||||
- favorite(text) いいね保存用
|
||||
@@ -128,6 +130,7 @@ PHP 8では事前にGDを有効化しておいてください!(QRコードの
|
||||
- info.txt : サーバー登録時に表示されるメッセージ(好きな内容)
|
||||
- privacypolicy.txt : プライバシーポリシー(サーバーのプライバシーポリシーを記載)
|
||||
- servaricon.txt : サーバーアイコンのURL
|
||||
- servarlogo.txt : サーバーロゴのURL
|
||||
- servername.txt : サーバー名(てすとさば)
|
||||
- serverstop.txt : サーバー停止ページで表示するメッセージ
|
||||
- terms.txt : 利用規約(サーバーの利用規約を記載)
|
||||
|
||||
+6
-6
@@ -131,13 +131,13 @@ if (htmlentities(isset($_POST['uniqid'])) && htmlentities(isset($_POST['abitext'
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res2 = $stmt->execute();
|
||||
|
||||
+17
-3
@@ -18,6 +18,14 @@ require('db.php');
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$onlyuserfile = "server/onlyuser.txt";
|
||||
$onlyuser = file_get_contents($onlyuserfile);
|
||||
|
||||
@@ -198,9 +206,15 @@ $pdo = null;
|
||||
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>二段階認証</h1>
|
||||
|
||||
+6
-6
@@ -457,13 +457,13 @@ if(isset($_GET['token'])&&isset($_GET['type'])) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
|
||||
$mojisizefile = "../server/textsize.txt";
|
||||
|
||||
$adminfile = "../server/admininfo.txt";
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$servericonfile = "../server/servericon.txt";
|
||||
|
||||
$serverinfofile = '../server/info.txt';
|
||||
$serverinfo = file_get_contents($serverinfofile);
|
||||
|
||||
$contactfile = "../server/contact.txt";
|
||||
|
||||
$domain = $_SERVER['HTTP_HOST'];
|
||||
|
||||
$softwarefile = "../server/uwuzuinfo.txt";
|
||||
$softwaredata = file_get_contents($softwarefile);
|
||||
|
||||
$onlyuserfile = "../server/onlyuser.txt";
|
||||
$onlyuser = file_get_contents($onlyuserfile);
|
||||
|
||||
$softwaredata = explode( "\n", $softwaredata );
|
||||
$cnt = count( $softwaredata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$uwuzuinfo[$i] = ($softwaredata[$i]);
|
||||
}
|
||||
|
||||
require('../db.php');
|
||||
|
||||
$datetime = array();
|
||||
$pdo = null;
|
||||
|
||||
session_start();
|
||||
|
||||
// データベースに接続
|
||||
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();
|
||||
}
|
||||
|
||||
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
|
||||
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
|
||||
$result = $mysqli->query("SELECT userid FROM account ORDER BY datetime");
|
||||
|
||||
/* 結果セットの行数を取得します */
|
||||
$count1 = $result->num_rows;
|
||||
|
||||
$result2 = $mysqli->query("SELECT uniqid FROM ueuse ORDER BY datetime");
|
||||
|
||||
/* 結果セットの行数を取得します */
|
||||
$count2 = $result2->num_rows;
|
||||
|
||||
/*-------------------*/
|
||||
$sql = "SELECT title, note, account, datetime FROM notice ORDER BY datetime DESC";
|
||||
$notice_array = $pdo->query($sql);
|
||||
|
||||
while ($row = $notice_array->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
$notices[] = $row;
|
||||
}
|
||||
|
||||
if($onlyuser === "true"){
|
||||
$openregit = false;
|
||||
}elseif($onlyuser === "false"){
|
||||
$openregit = true;
|
||||
}else{
|
||||
$openregit = false;
|
||||
}
|
||||
|
||||
if($onlyuser === "true"){
|
||||
$invitation_code = true;
|
||||
}else{
|
||||
$invitation_code = false;
|
||||
}
|
||||
|
||||
foreach ($notices as $value) {
|
||||
$notices = array(
|
||||
"title" => htmlentities($value['title']),
|
||||
"note" => htmlentities($value['note']),
|
||||
"editor" => htmlentities($value['account']),
|
||||
"datetime" => htmlentities($value['datetime']),
|
||||
);
|
||||
|
||||
$notice[] = $notices;
|
||||
}
|
||||
|
||||
$item = [
|
||||
"server_info" => array(
|
||||
"server_name" => file_get_contents($servernamefile),
|
||||
"server_icon" => file_get_contents($servericonfile),
|
||||
"server_description" => $serverinfo,
|
||||
|
||||
"adminstor" => array(
|
||||
"name" => file_get_contents($adminfile),
|
||||
"email" => file_get_contents($contactfile),
|
||||
),
|
||||
|
||||
"terms_url" => "https://".$domain."/rule/terms",
|
||||
"privacy_policy_url" => "https://".$domain."/rule/privacypolicy",
|
||||
"max_ueuse_length" => (int)htmlspecialchars(file_get_contents($mojisizefile), ENT_QUOTES, 'UTF-8'),
|
||||
|
||||
"invitation_code" => $invitation_code,
|
||||
|
||||
),
|
||||
|
||||
"software" => array(
|
||||
"name" => "uwuzu",
|
||||
"version" => "".str_replace("\r", '', $uwuzuinfo[1])."",
|
||||
"repository" => "https://github.com/Daichimarukana/uwuzu",
|
||||
),
|
||||
|
||||
"server_notice" => $notice,
|
||||
];
|
||||
|
||||
$response = $item; // ループ内で $response にデータを追加
|
||||
|
||||
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
||||
|
||||
?>
|
||||
+17
-3
@@ -13,6 +13,14 @@ require('db.php');
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$onlyuserfile = "server/onlyuser.txt";
|
||||
$onlyuser = file_get_contents($onlyuserfile);
|
||||
|
||||
@@ -142,9 +150,15 @@ $pdo = null;
|
||||
|
||||
|
||||
<div class="leftbox2">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>二段階認証</h1>
|
||||
|
||||
+29
-15
@@ -2,6 +2,14 @@
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
require('db.php');
|
||||
|
||||
|
||||
@@ -122,13 +130,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
// 通知用SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -189,13 +197,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
// 通知用SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -253,9 +261,15 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>二段階認証</h1>
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
require('db.php');
|
||||
|
||||
|
||||
@@ -149,13 +157,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
// 通知用SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -221,9 +229,15 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>確認</h1>
|
||||
|
||||
+361
-15
@@ -880,7 +880,7 @@ main h1{
|
||||
}
|
||||
.select_utl{
|
||||
margin: 0px;
|
||||
background-color: var(--background-color);
|
||||
background-color: var(--tl-color);
|
||||
border: none;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
@@ -896,7 +896,7 @@ main h1{
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
font-size: 16px;
|
||||
background: var(--background-color);
|
||||
background: var(--tl-color);
|
||||
color: var(--dark-subtext-color);
|
||||
text-decoration: none;
|
||||
font-family: 'BIZ UDPGothic', sans-serif;
|
||||
@@ -943,7 +943,7 @@ main h1{
|
||||
object-fit: cover;
|
||||
margin: 0px;
|
||||
width: 100%;
|
||||
height: 10dvh;
|
||||
height: auto;
|
||||
vertical-align:top;
|
||||
}
|
||||
.ueuse{
|
||||
@@ -1192,7 +1192,21 @@ main h1{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.ueuse .photo3 a{
|
||||
width: 48%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.ueuse .photo3_btm a{
|
||||
width: 100%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.ueuse .photo4 a{
|
||||
width: 48%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.ueuse .photo1 a img{
|
||||
object-fit: cover;
|
||||
@@ -1220,6 +1234,48 @@ main h1{
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.ueuse .photo3{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.ueuse .photo3_btm{
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.ueuse .photo3 a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
.ueuse .photo3_btm a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
min-width: 100%;
|
||||
height: 200px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
.ueuse .photo4{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.ueuse .photo4 a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
.ueuse .video1 video{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
@@ -1537,7 +1593,7 @@ main h1{
|
||||
width:auto;
|
||||
padding: 8px auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
@@ -1569,7 +1625,7 @@ main h1{
|
||||
display: block;
|
||||
width:auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
@@ -1602,6 +1658,78 @@ main h1{
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
|
||||
.ueuse .favbox .share{
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
display: block;
|
||||
width:auto;
|
||||
padding: 8px auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
|
||||
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
|
||||
|
||||
background-color: var(--sub-color);
|
||||
|
||||
border-radius: 50px;
|
||||
color:var(--main-color);
|
||||
font-size: 16px;
|
||||
font-family: 'Zen Maru Gothic', sans-serif;
|
||||
font-weight: normal;
|
||||
text-decoration:none;
|
||||
text-align: center;
|
||||
transition: box-shadow 250ms ease-in-out;
|
||||
transition: width 250ms ease-out;
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
.ueuse .favbox .share:hover{
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
display: block;
|
||||
width:auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
|
||||
|
||||
background-color: var(--main-color);
|
||||
|
||||
border-radius: 50px;
|
||||
color: var(--sub-color);;
|
||||
font-size: 16px;
|
||||
font-family: 'Zen Maru Gothic', sans-serif;
|
||||
font-weight: normal;
|
||||
text-decoration:none;
|
||||
text-align: center;
|
||||
transition: box-shadow 250ms ease-in-out;
|
||||
transition: width 250ms ease-out;
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
.ueuse .favbox .share svg {
|
||||
margin-top: -6px;
|
||||
margin-right: 0px;
|
||||
margin-left: -2px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
fill: currentColor;
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
|
||||
.ueuse .favbox img{
|
||||
margin-left: 0px;
|
||||
width: 24px;
|
||||
@@ -2515,7 +2643,7 @@ label>input {
|
||||
margin-left: 0px;
|
||||
margin-right: auto;
|
||||
margin-top: 2px;
|
||||
width: 120px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
.terms{
|
||||
@@ -2603,7 +2731,110 @@ label>input {
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
text-align: left;
|
||||
color: var(--background-color)FFF;
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
.terms .fxbx{
|
||||
display: flex;
|
||||
}
|
||||
.terms .fxbx .new{
|
||||
height: fit-content;
|
||||
margin:0px;
|
||||
margin-right: 6px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
padding:0px 8px;
|
||||
border: 1px solid #00b96c;
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
}
|
||||
.terms .fxbx .new p{
|
||||
line-height: 12px;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
color: #00b96c;
|
||||
font-size: 14px;
|
||||
font-family: 'BIZ UDGothic', sans-serif;
|
||||
font-weight: normal;
|
||||
vertical-align:middle;
|
||||
align-items: center;
|
||||
}
|
||||
.terms .fxbx .fix{
|
||||
height: fit-content;
|
||||
margin:0px;
|
||||
margin-right: 6px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
padding:0px 8px;
|
||||
border: 1px solid #e6890f;
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
}
|
||||
.terms .fxbx .fix p{
|
||||
line-height: 12px;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
color: #e6890f;
|
||||
font-size: 14px;
|
||||
font-family: 'BIZ UDGothic', sans-serif;
|
||||
font-weight: normal;
|
||||
vertical-align:middle;
|
||||
align-items: center;
|
||||
}
|
||||
.terms .fxbx .chg{
|
||||
height: fit-content;
|
||||
margin:0px;
|
||||
margin-right: 6px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
padding:0px 8px;
|
||||
border: 1px solid #1d9bf0;
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
}
|
||||
.terms .fxbx .chg p{
|
||||
line-height: 12px;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
color: #1d9bf0;
|
||||
font-size: 14px;
|
||||
font-family: 'BIZ UDGothic', sans-serif;
|
||||
font-weight: normal;
|
||||
vertical-align:middle;
|
||||
align-items: center;
|
||||
}
|
||||
.terms .fxbx .del{
|
||||
height: fit-content;
|
||||
margin:0px;
|
||||
margin-right: 6px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
padding:0px 8px;
|
||||
border: 1px solid #FF4848;
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
}
|
||||
.terms .fxbx .del p{
|
||||
line-height: 12px;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
color: #FF4848;
|
||||
font-size: 14px;
|
||||
font-family: 'BIZ UDGothic', sans-serif;
|
||||
font-weight: normal;
|
||||
vertical-align:middle;
|
||||
align-items: center;
|
||||
}
|
||||
.terms .space_tab{
|
||||
margin-left: 45px;
|
||||
}
|
||||
|
||||
|
||||
@@ -2618,7 +2849,6 @@ label>input {
|
||||
font-family: 'BIZ UDPGothic', sans-serif;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.terms .p3{
|
||||
margin-top: 24px;
|
||||
text-align: left;
|
||||
@@ -2759,6 +2989,15 @@ label>input {
|
||||
overflow-wrap:break-word;
|
||||
color: var(--text-color);
|
||||
}
|
||||
.rightbox .noticebox a{
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
font-size: 16px;
|
||||
color:var(--link-color);
|
||||
text-decoration: none;
|
||||
font-family: 'BIZ UDPGothic', sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.rightbox .noticebox img{
|
||||
margin-top: auto;
|
||||
@@ -3967,7 +4206,7 @@ summary {
|
||||
|
||||
.f_c_area{
|
||||
margin: 0px;
|
||||
background-color: var(--background-color);
|
||||
background-color: var(--tl-color);
|
||||
border: none;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
@@ -4493,7 +4732,7 @@ summary {
|
||||
width:auto;
|
||||
padding: 8px auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
@@ -4525,7 +4764,7 @@ summary {
|
||||
display: block;
|
||||
width:auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
@@ -4560,6 +4799,70 @@ summary {
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
|
||||
.ueuse .favbox .share{
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
display: block;
|
||||
width:auto;
|
||||
padding: 8px auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
|
||||
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
|
||||
|
||||
background-color: var(--sub-color);
|
||||
|
||||
border-radius: 50px;
|
||||
color:var(--main-color);
|
||||
font-size: 16px;
|
||||
font-family: 'Zen Maru Gothic', sans-serif;
|
||||
font-weight: normal;
|
||||
text-decoration:none;
|
||||
text-align: center;
|
||||
transition: box-shadow 250ms ease-in-out;
|
||||
transition: width 250ms ease-out;
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
|
||||
.ueuse .favbox .share:hover{
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
display: block;
|
||||
width:auto;
|
||||
|
||||
margin-left: auto;
|
||||
margin-right: 6px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
|
||||
|
||||
background-color: var(--main-color);
|
||||
|
||||
border-radius: 50px;
|
||||
color: var(--sub-color);;
|
||||
font-size: 16px;
|
||||
font-family: 'Zen Maru Gothic', sans-serif;
|
||||
font-weight: normal;
|
||||
text-decoration:none;
|
||||
text-align: center;
|
||||
transition: box-shadow 250ms ease-in-out;
|
||||
transition: width 250ms ease-out;
|
||||
transition: all 250ms ease-out;
|
||||
}
|
||||
|
||||
.ueuse{
|
||||
animation: slideInY 0.5s cubic-bezier(0.25, 1, 0.5, 1) 1 forwards;
|
||||
margin: 12px;
|
||||
@@ -4906,14 +5209,45 @@ summary {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.ueuse .photo2 img{
|
||||
.ueuse .photo2 a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 47%;
|
||||
height: auto;
|
||||
width: 100%;
|
||||
height: 25dvh;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.ueuse .photo3 a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 100%;
|
||||
height: 20dvh;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
.ueuse .photo3_btm a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 6px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
min-width: 100%;
|
||||
height: 25dvh;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
.ueuse .photo4 a img{
|
||||
object-fit: cover;
|
||||
border-radius: 10px;
|
||||
margin-top: 8px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 100%;
|
||||
height: 20dvh;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
@@ -5128,6 +5462,7 @@ summary {
|
||||
margin-top: 12px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 48px
|
||||
}
|
||||
|
||||
.modal-content .fbtn{
|
||||
@@ -5596,6 +5931,14 @@ summary {
|
||||
background-color: var(--main-color);
|
||||
color: var(--sub-color);;
|
||||
}
|
||||
.ueuse .favbox .share{
|
||||
background-color: var(--dark-background-color);
|
||||
color:var(--main-color);
|
||||
}
|
||||
.ueuse .favbox .share:hover{
|
||||
background-color: var(--main-color);
|
||||
color: var(--sub-color);;
|
||||
}
|
||||
.ueuse hr{
|
||||
border-top: 1px solid var(--dark-subtext-color);
|
||||
}
|
||||
@@ -5755,6 +6098,9 @@ summary {
|
||||
.rightbox .noticebox p{
|
||||
color: var(--background-color);
|
||||
}
|
||||
.rightbox .noticebox a{
|
||||
color:var(--main-color);
|
||||
}
|
||||
|
||||
.rightbox .noticebox .makeup p{
|
||||
color:var(--sub-color);;
|
||||
|
||||
+156
-7
@@ -296,6 +296,87 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])) {
|
||||
$photo3 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images2']['name'])){
|
||||
$error_message[] = '画像2から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile3 = $_FILES['upload_images3'];
|
||||
|
||||
if( 10000000 < $uploadedFile3["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension3 = pathinfo($uploadedFile3['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename3 = uniqid() . '-'.$userid.'.' . $extension3;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath3 = '../ueuseimages/' . $newFilename3;
|
||||
|
||||
// ファイルを移動
|
||||
$result3 = move_uploaded_file($uploadedFile3['tmp_name'], $uploadedPath3);
|
||||
|
||||
if ($result3) {
|
||||
$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 (empty($_FILES['upload_images4']['name'])) {
|
||||
$photo4 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])){
|
||||
$error_message[] = '画像3から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile4 = $_FILES['upload_images4'];
|
||||
|
||||
if( 10000000 < $uploadedFile4["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension4 = pathinfo($uploadedFile4['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename4 = uniqid() . '-'.$userid.'.' . $extension4;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath4 = '../ueuseimages/' . $newFilename4;
|
||||
|
||||
// ファイルを移動
|
||||
$result4 = move_uploaded_file($uploadedFile4['tmp_name'], $uploadedPath4);
|
||||
|
||||
if ($result4) {
|
||||
$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 (empty($_FILES['upload_videos1']['name'])) {
|
||||
$video1 = "none";
|
||||
} else {
|
||||
@@ -350,7 +431,7 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
try {
|
||||
|
||||
// SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, ueuse, photo1, photo2, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :ueuse, :photo1, :photo2, :video1, :datetime, :abi, :nsfw)");
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, ueuse, photo1, photo2, photo3, photo4, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :ueuse, :photo1, :photo2, :photo3, :photo4, :video1, :datetime, :abi, :nsfw)");
|
||||
|
||||
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':account', $userid, PDO::PARAM_STR);
|
||||
@@ -359,6 +440,8 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
|
||||
$stmt->bindParam(':photo1', $photo1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo2', $photo2, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo3', $photo3, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo4', $photo4, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':video1', $video1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
|
||||
@@ -389,13 +472,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -468,6 +551,9 @@ if ("serviceWorker" in navigator) {
|
||||
<body>
|
||||
|
||||
<div>
|
||||
<div id="clipboard" class="online" style="display:none;">
|
||||
<p>🗒️📎 ユーズのURLをコピーしました!</p>
|
||||
</div>
|
||||
<div id="offline" class="offline" style="display:none;">
|
||||
<p>🦖💨 インターネットへの接続が切断されました...</p>
|
||||
</div>
|
||||
@@ -498,7 +584,7 @@ if ("serviceWorker" in navigator) {
|
||||
<textarea id="ueuse" placeholder="いまどうしてる?" name="ueuse"><?php if( !empty($ueuse) ){ echo htmlspecialchars($ueuse, ENT_QUOTES, 'UTF-8'); } ?></textarea>
|
||||
<p>画像のEXIF情報(位置情報など)は削除されません。<br>情報漏洩に気をつけてくださいね…</p>
|
||||
<div class="fxbox">
|
||||
<label for="upload_images" id="images" title="画像1">
|
||||
<label for="upload_images" id="images" title="画像1">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images" id ="upload_images" accept="image/*">
|
||||
</label>
|
||||
@@ -506,6 +592,14 @@ if ("serviceWorker" in navigator) {
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images2" id ="upload_images2" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images3" id="images3" style="display: none" title="画像3">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images3" id ="upload_images3" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images4" id="images4" style="display: none" title="画像4">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images4" id ="upload_images4" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_videos1" id="videos1" title="動画1">
|
||||
<svg><use xlink:href="../img/sysimage/video_1.svg#video"></use></svg>
|
||||
<input type="file" name="upload_videos1" id ="upload_videos1" accept="video/*">
|
||||
@@ -532,6 +626,29 @@ if ("serviceWorker" in navigator) {
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
document.getElementById("upload_images4").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images4');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images3").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images3');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images4").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images2").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
@@ -539,6 +656,7 @@ if ("serviceWorker" in navigator) {
|
||||
const element = document.querySelector('#images2');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images3").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
@@ -829,6 +947,37 @@ $(document).on('click', '.addabi', function (event) {
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('click', '.share', function (event) {
|
||||
|
||||
var domain = "<?php echo $domain;?>";
|
||||
var share_uniqid = $(this).attr('data-uniqid');
|
||||
var share_userid = $(this).attr('data-userid');
|
||||
|
||||
if (typeof navigator.share === 'undefined') {
|
||||
navigator.clipboard.writeText("https://"+domain+"/!"+share_uniqid+"")
|
||||
$("#clipboard").show();
|
||||
window.setTimeout(function(){
|
||||
$("#clipboard").hide();
|
||||
}, 5000);
|
||||
return;
|
||||
}
|
||||
|
||||
var shareData = {
|
||||
title: ''+share_userid+'さんのID '+share_uniqid+' のユーズ - uwuzu',
|
||||
text: '',
|
||||
url: "https://"+domain+"/!"+share_uniqid+"",
|
||||
};
|
||||
|
||||
navigator.share(shareData)
|
||||
.then(function () {
|
||||
// シェア完了後の処理
|
||||
})
|
||||
.catch(function (error) {
|
||||
// シェア失敗時の処理
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var osho_gats = document.getElementById('osho_gats');
|
||||
$(document).on('click', '.os_exit_btn', function (event) {
|
||||
document.cookie = "event=done; max-age=86400";
|
||||
|
||||
+154
-8
@@ -295,6 +295,86 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])) {
|
||||
$photo3 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images2']['name'])){
|
||||
$error_message[] = '画像2から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile3 = $_FILES['upload_images3'];
|
||||
|
||||
if( 10000000 < $uploadedFile3["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension3 = pathinfo($uploadedFile3['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename3 = uniqid() . '-'.$userid.'.' . $extension3;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath3 = '../ueuseimages/' . $newFilename3;
|
||||
|
||||
// ファイルを移動
|
||||
$result3 = move_uploaded_file($uploadedFile3['tmp_name'], $uploadedPath3);
|
||||
|
||||
if ($result3) {
|
||||
$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 (empty($_FILES['upload_images4']['name'])) {
|
||||
$photo4 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])){
|
||||
$error_message[] = '画像3から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile4 = $_FILES['upload_images4'];
|
||||
|
||||
if( 10000000 < $uploadedFile4["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension4 = pathinfo($uploadedFile4['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename4 = uniqid() . '-'.$userid.'.' . $extension4;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath4 = '../ueuseimages/' . $newFilename4;
|
||||
|
||||
// ファイルを移動
|
||||
$result4 = move_uploaded_file($uploadedFile4['tmp_name'], $uploadedPath4);
|
||||
|
||||
if ($result4) {
|
||||
$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 (empty($_FILES['upload_videos1']['name'])) {
|
||||
$video1 = "none";
|
||||
} else {
|
||||
@@ -349,7 +429,7 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
try {
|
||||
|
||||
// SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, ueuse, photo1, photo2, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :ueuse, :photo1, :photo2, :video1, :datetime, :abi, :nsfw)");
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, ueuse, photo1, photo2, photo3, photo4, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :ueuse, :photo1, :photo2, :photo3, :photo4, :video1, :datetime, :abi, :nsfw)");
|
||||
|
||||
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':account', $userid, PDO::PARAM_STR);
|
||||
@@ -358,6 +438,8 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
|
||||
$stmt->bindParam(':photo1', $photo1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo2', $photo2, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo3', $photo3, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo4', $photo4, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':video1', $video1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
|
||||
@@ -389,13 +471,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -468,6 +550,9 @@ if ("serviceWorker" in navigator) {
|
||||
<body>
|
||||
|
||||
<div>
|
||||
<div id="clipboard" class="online" style="display:none;">
|
||||
<p>🗒️📎 ユーズのURLをコピーしました!</p>
|
||||
</div>
|
||||
<div id="offline" class="offline" style="display:none;">
|
||||
<p>🦖💨 インターネットへの接続が切断されました...</p>
|
||||
</div>
|
||||
@@ -532,6 +617,14 @@ if ("serviceWorker" in navigator) {
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images2" id ="upload_images2" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images3" id="images3" style="display: none" title="画像3">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images3" id ="upload_images3" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images4" id="images4" style="display: none" title="画像4">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images4" id ="upload_images4" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_videos1" id="videos1" title="動画1">
|
||||
<svg><use xlink:href="../img/sysimage/video_1.svg#video"></use></svg>
|
||||
<input type="file" name="upload_videos1" id ="upload_videos1" accept="video/*">
|
||||
@@ -558,6 +651,29 @@ if ("serviceWorker" in navigator) {
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
document.getElementById("upload_images4").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images4');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images3").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images3');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images4").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images2").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
@@ -565,6 +681,7 @@ if ("serviceWorker" in navigator) {
|
||||
const element = document.querySelector('#images2');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images3").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
@@ -853,7 +970,38 @@ $(document).ready(function() {
|
||||
$("#offline").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.share', function (event) {
|
||||
|
||||
var domain = "<?php echo $domain;?>";
|
||||
var share_uniqid = $(this).attr('data-uniqid');
|
||||
var share_userid = $(this).attr('data-userid');
|
||||
|
||||
if (typeof navigator.share === 'undefined') {
|
||||
navigator.clipboard.writeText("https://"+domain+"/!"+share_uniqid+"")
|
||||
$("#clipboard").show();
|
||||
window.setTimeout(function(){
|
||||
$("#clipboard").hide();
|
||||
}, 5000);
|
||||
return;
|
||||
}
|
||||
|
||||
var shareData = {
|
||||
title: ''+share_userid+'さんのID '+share_uniqid+' のユーズ - uwuzu',
|
||||
text: '',
|
||||
url: "https://"+domain+"/!"+share_uniqid+"",
|
||||
};
|
||||
|
||||
navigator.share(shareData)
|
||||
.then(function () {
|
||||
// シェア完了後の処理
|
||||
})
|
||||
.catch(function (error) {
|
||||
// シェア失敗時の処理
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var osho_gats = document.getElementById('osho_gats');
|
||||
$(document).on('click', '.os_exit_btn', function (event) {
|
||||
@@ -861,7 +1009,5 @@ $(document).ready(function() {
|
||||
osho_gats.style.display = 'none';
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
<svg version="1.1" id="share_1" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M720-80q-50 0-85-35t-35-85q0-7 1-14.5t3-13.5L322-392q-17 15-38 23.5t-44 8.5q-50 0-85-35t-35-85q0-50 35-85t85-35q23 0 44 8.5t38 23.5l282-164q-2-6-3-13.5t-1-14.5q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35q-23 0-44-8.5T638-672L356-508q2 6 3 13.5t1 14.5q0 7-1 14.5t-3 13.5l282 164q17-15 38-23.5t44-8.5q50 0 85 35t35 85q0 50-35 85t-85 35Zm0-640q17 0 28.5-11.5T760-760q0-17-11.5-28.5T720-800q-17 0-28.5 11.5T680-760q0 17 11.5 28.5T720-720ZM240-440q17 0 28.5-11.5T280-480q0-17-11.5-28.5T240-520q-17 0-28.5 11.5T200-480q0 17 11.5 28.5T240-440Zm480 280q17 0 28.5-11.5T760-200q0-17-11.5-28.5T720-240q-17 0-28.5 11.5T680-200q0 17 11.5 28.5T720-160Zm0-600ZM240-480Zm480 280Z"/></svg>
|
||||
|
After Width: | Height: | Size: 804 B |
@@ -56,6 +56,14 @@ $servericonfile = "server/servericon.txt";
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
//------------------------
|
||||
|
||||
$serverinfofile = 'server/info.txt';
|
||||
@@ -129,9 +137,15 @@ if ("serviceWorker" in navigator) {
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
|
||||
|
||||
@@ -27,3 +27,4 @@ console.log(
|
||||
"",
|
||||
"uwuzuサーバー運営者及びuwuzu開発者がCookie情報等を要求することはありません。",
|
||||
);
|
||||
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
require('db.php');
|
||||
|
||||
|
||||
@@ -190,9 +198,15 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>ログイン</h1>
|
||||
|
||||
@@ -18,6 +18,14 @@ require('db.php');
|
||||
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$onlyuserfile = "server/onlyuser.txt";
|
||||
$onlyuser = file_get_contents($onlyuserfile);
|
||||
|
||||
@@ -474,9 +482,15 @@ $pdo = null;
|
||||
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>アカウント登録</h1>
|
||||
|
||||
@@ -26,8 +26,8 @@ class MessageDisplay {
|
||||
echo ' </div>';
|
||||
|
||||
// 投稿内のHTMLコードを表示する部分
|
||||
echo ' <h3>' . htmlentities($this->value['title']) . '</h3>';
|
||||
echo ' <p>' . nl2br(htmlentities($this->value['msg'])) . '</p>';
|
||||
echo ' <h3>' . $this->value['title'] . '</h3>';
|
||||
echo ' <p>' . nl2br($this->value['msg']) . '</p>';
|
||||
echo ' <a href="' . htmlentities($this->value['url']) . '">詳細をみる</a>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
@@ -54,7 +54,14 @@ if (!empty($pdo)) {
|
||||
$userQuery->execute();
|
||||
$userData = $userQuery->fetch();
|
||||
|
||||
$messageQuery = $dbh->prepare("SELECT * FROM ueuse WHERE account = :userid AND rpuniqid = '' AND (photo1 NOT IN('none') OR photo2 NOT IN('none') OR video1 NOT IN('none')) ORDER BY datetime DESC LIMIT $offset, $itemsPerPage");
|
||||
$messageQuery = $dbh->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->execute();
|
||||
$message_array = $messageQuery->fetchAll();
|
||||
|
||||
+19
-3
@@ -55,10 +55,10 @@ function replaceEmojisWithImages($postText) {
|
||||
}
|
||||
}, $postTextWithImages);
|
||||
|
||||
$hashtagsPattern = '/#([\p{Han}\p{Hiragana}\p{Katakana}A-Za-z0-9_]+)/u';
|
||||
$hashtagsPattern = '/#([\p{Han}\p{Hiragana}\p{Katakana}A-Za-z0-9ー_]+)/u';
|
||||
$postTextWithHashtags = preg_replace_callback($hashtagsPattern, function($matches) {
|
||||
$hashtags = $matches[1];
|
||||
return "<a class = 'hashtags' href='/search?q=".urlencode('#').$hashtags."'>".'#'.$hashtags."</a>";
|
||||
return "<a class='hashtags' href='/search?q=" . urlencode('#') . $hashtags . "'>" . '#' . $hashtags . "</a>";
|
||||
}, $postTextWithImagesAndUsernames);
|
||||
|
||||
return $postTextWithHashtags;
|
||||
@@ -157,7 +157,22 @@ class MessageDisplay {
|
||||
}
|
||||
echo ' <p>' . processMarkdownAndWrapEmptyLines(replaceEmojisWithImages(replaceURLsWithLinks(nl2br($this->value['ueuse'])))) . '</h1></h2></h3></font></center></p>';
|
||||
|
||||
if (!empty($this->value['photo2']) && $this->value['photo2'] !== 'none') {
|
||||
if (!empty($this->value['photo4']) && $this->value['photo4'] !== 'none') {
|
||||
echo ' <div class="photo4">';
|
||||
echo ' <a href="'.htmlentities($this->value['photo1']).'" target=”_blank”><img src="'.htmlentities($this->value['photo1']).'" alt="画像1" title="画像1"></a>';
|
||||
echo ' <a href="'.htmlentities($this->value['photo2']).'" target=”_blank”><img src="'.htmlentities($this->value['photo2']).'" alt="画像2" title="画像2"></a>';
|
||||
echo ' <a href="'.htmlentities($this->value['photo3']).'" target=”_blank”><img src="'.htmlentities($this->value['photo3']).'" alt="画像3" title="画像3"></a>';
|
||||
echo ' <a href="'.htmlentities($this->value['photo4']).'" target=”_blank”><img src="'.htmlentities($this->value['photo4']).'" alt="画像4" title="画像4"></a>';
|
||||
echo ' </div>';
|
||||
} elseif (!empty($this->value['photo3']) && $this->value['photo3'] !== 'none') {
|
||||
echo ' <div class="photo3">';
|
||||
echo ' <a href="'.htmlentities($this->value['photo1']).'" target=”_blank”><img src="'.htmlentities($this->value['photo1']).'" alt="画像1" title="画像1"></a>';
|
||||
echo ' <a href="'.htmlentities($this->value['photo2']).'" target=”_blank”><img src="'.htmlentities($this->value['photo2']).'" alt="画像2" title="画像2"></a>';
|
||||
echo ' <div class="photo3_btm">';
|
||||
echo ' <a href="'.htmlentities($this->value['photo3']).'" target=”_blank”><img src="'.htmlentities($this->value['photo3']).'" alt="画像3" title="画像3"></a>';
|
||||
echo ' </div>';
|
||||
echo ' </div>';
|
||||
} elseif (!empty($this->value['photo2']) && $this->value['photo2'] !== 'none') {
|
||||
echo ' <div class="photo2">';
|
||||
echo ' <a href="'.htmlentities($this->value['photo1']).'" target=”_blank”><img src="'.htmlentities($this->value['photo1']).'" alt="画像1" title="画像1"></a>';
|
||||
echo ' <a href="'.htmlentities($this->value['photo2']).'" target=”_blank”><img src="'.htmlentities($this->value['photo2']).'" alt="画像2" title="画像2"></a>';
|
||||
@@ -196,6 +211,7 @@ class MessageDisplay {
|
||||
echo '<button class="favbtn" id="favbtn" data-uniqid="' . htmlentities($this->value['uniqid']) . '" data-userid2="' . htmlentities($this->value['account']) . '"><svg><use xlink:href="../img/sysimage/favorite_1.svg#favorite" alt="いいね"></use></svg> <span class="like-count">' . htmlentities($this->value['favcnt']) . '</span></button>';
|
||||
}
|
||||
echo '<a href="/!'.htmlentities($this->value['uniqid']). '~' . htmlentities($this->value['account']) . '" class="tuduki"><svg><use xlink:href="../img/sysimage/reply_1.svg#reply_1"></use></svg>'.htmlentities($this->value['reply_count']).'</a>';
|
||||
echo '<button name="share" id="share" class="share" data-uniqid="' . htmlentities($this->value['uniqid']) . '" data-userid="' . htmlentities($this->value['account']) . '"><svg><use xlink:href="../img/sysimage/share_1.svg#share_1"></use></svg></button>';
|
||||
if($this->value['account'] === $this->userid){
|
||||
if(!($this->value['role'] === "ice")){
|
||||
if($this->value['abi'] === "none"){
|
||||
|
||||
@@ -518,6 +518,10 @@ require('../logout/logout.php');
|
||||
<h1>API</h1>
|
||||
<p>APIの簡単な使用法です。</p>
|
||||
<hr>
|
||||
<li>サーバー情報取得API</li>
|
||||
<p>https://[ドメイン名(uwuzu.netなど)]/api/serverinfo-api</p>
|
||||
<p>これによりサーバーの各種情報を取得できます。</p>
|
||||
<hr>
|
||||
<li>ユーザー情報取得API</li>
|
||||
<p>https://[ドメイン名(uwuzu.netなど)]/api/userdata-api?userid=[ユーザーID]</p>
|
||||
<p>これによりユーザーのユーザーネーム(user_name)、プロフィール(profile)、登録日時(registered_date)、フォローしている人一覧(follow)、フォロワー一覧(follower)、フォロー・フォロワー数(follow_cnt,follower_cnt)が取得できます。</p>
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -20,9 +28,15 @@ $servernamefile = "../server/servername.txt";
|
||||
|
||||
|
||||
<div class="leftbox2">
|
||||
<div class="logo">
|
||||
<img src="../img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty(htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8'))){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>パスワード変更不可</h1>
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -20,9 +28,15 @@ $servernamefile = "../server/servername.txt";
|
||||
|
||||
|
||||
<div class="leftbox2">
|
||||
<div class="logo">
|
||||
<img src="../img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty(htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8'))){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>パスワードの変更が完了しました!</h1>
|
||||
|
||||
+17
-3
@@ -2,6 +2,14 @@
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
require('../db.php');
|
||||
|
||||
|
||||
@@ -144,9 +152,15 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="../img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty(htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8'))){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>パスワードの復元</h1>
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
require('../db.php');
|
||||
|
||||
|
||||
@@ -241,9 +249,15 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div class="leftbox">
|
||||
<div class="logo">
|
||||
<img src="../img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty(htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8'))){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>二段階認証</h1>
|
||||
|
||||
+15
-1
@@ -1,8 +1,22 @@
|
||||
<?php ?>
|
||||
<?php
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
?>
|
||||
<div class="userleftbox">
|
||||
<?php if(!empty($serverlogo_link[0])){ ?>
|
||||
<div class="logo">
|
||||
<img src=<?php echo htmlspecialchars($serverlogo_link[0], ENT_QUOTES, 'UTF-8');?>>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<img src="../img/uwuzucolorlogo.svg">
|
||||
</div>
|
||||
<?php }?>
|
||||
<hr>
|
||||
<div class="lbtnzone">
|
||||
<a href="/home" class="leftbutton"><svg><use xlink:href="../img/sysimage/menuicon/home.svg#home"></use></svg>ホーム</a>
|
||||
|
||||
+25
-1
@@ -18,6 +18,30 @@
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$uwuzuinfo[$i] = ($softwaredata[$i]);
|
||||
}
|
||||
function replaceURLsWithLinks_forRightbox($postText) {
|
||||
// URLを正規表現を使って検出
|
||||
$pattern = '/(https:\/\/[^\s<>\[\]\'"]+)/'; // 改良された正規表現
|
||||
preg_match_all($pattern, $postText, $matches);
|
||||
|
||||
// 検出したURLごとに処理を行う
|
||||
foreach ($matches[0] as $url) {
|
||||
// ドメイン部分を抽出
|
||||
$parsedUrl = parse_url($url);
|
||||
if (!isset($parsedUrl['path'])) {
|
||||
$parsedUrl['path'] = '';
|
||||
}
|
||||
$domain = $parsedUrl['host'].(strlen($parsedUrl['path']) > 24 ? substr($parsedUrl['path'], 0, 24) . '...' : $parsedUrl['path']);
|
||||
|
||||
// 不要な文字を削除してaタグを生成
|
||||
$urlWithoutSpaces = preg_replace('/\s+/', '', $url);
|
||||
$link = "<a href='$urlWithoutSpaces' target='_blank' title='$urlWithoutSpaces'>$domain</a>";
|
||||
|
||||
// URLをドメインのみを表示するaタグで置き換え
|
||||
$postText = preg_replace('/' . preg_quote($url, '/') . '/', $link, $postText);
|
||||
}
|
||||
|
||||
return $postText;
|
||||
}
|
||||
?>
|
||||
<div class="noticearea">
|
||||
<h1>お知らせ</h1>
|
||||
@@ -32,7 +56,7 @@
|
||||
<?php foreach ($notices as $value) {?>
|
||||
<div class="noticebox">
|
||||
<h4><?php echo $value['title'];?></h4>
|
||||
<p><?php echo nl2br($value['note']);?></p>
|
||||
<p><?php echo replaceURLsWithLinks_forRightbox(nl2br($value['note']));?></p>
|
||||
<div class="makeup"><p>編集者 : <a href="/@<?php echo $value['account'];?>">@<?php echo $value['account'];?></a></p></div>
|
||||
<div class="time"><p><?php echo date('Y年m月d日 H:i', strtotime($value['datetime']));?></p></div>
|
||||
</div>
|
||||
|
||||
+19
-3
@@ -1,6 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<?php
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
//-------------------------------------
|
||||
@@ -53,15 +61,23 @@ foreach ($sprivacypolicy as $privacypolicy) {
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../css/home.css">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="apple-touch-icon" type="image/png" href="../favicon/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="../favicon/icon-192x192.png">
|
||||
<title>プライバシーポリシー - <?php echo file_get_contents($servernamefile);?></title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="topbox">
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
||||
<div class="terms">
|
||||
|
||||
+27
-3
@@ -1,6 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<?php
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
//-------------------------------------
|
||||
@@ -39,6 +47,14 @@ function processMarkdownAndWrapEmptyLines($markdownText) {
|
||||
// 箇条書き(-)をHTMLのul/liタグに変換
|
||||
$markdownText = preg_replace('/^- (.+)/m', '<ul><li>$1</li></ul>', $markdownText);
|
||||
|
||||
// リリースノートの項目わけ
|
||||
$markdownText = preg_replace('/^new: (.+)/m', '<div class="fxbx"><div class="new"><p>New</p></div><p>$1</p></div>', $markdownText);
|
||||
$markdownText = preg_replace('/^fix: (.+)/m', '<div class="fxbx"><div class="fix"><p>Fix</p></div><p>$1</p></div>', $markdownText);
|
||||
$markdownText = preg_replace('/^chg: (.+)/m', '<div class="fxbx"><div class="chg"><p>Chg</p></div><p>$1</p></div>', $markdownText);
|
||||
$markdownText = preg_replace('/^del: (.+)/m', '<div class="fxbx"><div class="del"><p>Del</p></div><p>$1</p></div>', $markdownText);
|
||||
|
||||
$markdownText = preg_replace('/^ (.+)/m', '<div class="space_tab"><p>$1</p></div>', $markdownText);
|
||||
|
||||
// 空行の前に何もない行をHTMLのpタグに変換
|
||||
$markdownText = preg_replace('/(^\s*)(?!\s)(.*)/m', '$1<p>$2</p>', $markdownText);
|
||||
|
||||
@@ -62,6 +78,8 @@ foreach ($srelease as $release) {
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../css/home.css">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="apple-touch-icon" type="image/png" href="../favicon/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="../favicon/icon-192x192.png">
|
||||
<title><?php echo $uwuzuinfo[0]?> リリースノート - <?php echo file_get_contents($servernamefile);?></title>
|
||||
</head>
|
||||
|
||||
@@ -69,9 +87,15 @@ foreach ($srelease as $release) {
|
||||
<body>
|
||||
|
||||
<div class="topbox">
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
||||
<div class="terms">
|
||||
|
||||
+18
-10
@@ -7,14 +7,16 @@ require('../db.php');
|
||||
session_name('uwuzu_s_id');
|
||||
session_start();
|
||||
|
||||
$servericonfile = file_get_contents("../server/servericon.txt");
|
||||
$servericondata = explode( "\n", $servericonfile );
|
||||
$cnt = count($servericondata);
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$uwuzuicon[$i] = ($servericondata[$i]);
|
||||
}
|
||||
$servericonfile = "../server/servericon.txt";
|
||||
|
||||
//-------------------------
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$contactfile = "../server/contact.txt";
|
||||
|
||||
@@ -91,9 +93,15 @@ $count2 = $result2->num_rows;
|
||||
<body>
|
||||
|
||||
<div class="topbox">
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
||||
<div class="terms">
|
||||
@@ -101,7 +109,7 @@ $count2 = $result2->num_rows;
|
||||
<h1>サーバー情報</h1>
|
||||
<?php if( !empty(file_get_contents($servericonfile)) ){ ?>
|
||||
<div class="servericon">
|
||||
<img src="<?php echo htmlspecialchars($uwuzuicon[0], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<img src="<?php echo htmlspecialchars(file_get_contents($servericonfile), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
<?php }?>
|
||||
<div class="sp3"><?php echo file_get_contents($servernamefile);?></div>
|
||||
|
||||
+19
-3
@@ -1,6 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<?php
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
//-------------------------------------
|
||||
@@ -53,15 +61,23 @@ foreach ($sterms as $terms) {
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../css/home.css">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="apple-touch-icon" type="image/png" href="../favicon/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="../favicon/icon-192x192.png">
|
||||
<title>利用規約 - <?php echo file_get_contents($servernamefile);?></title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="topbox">
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
||||
<div class="terms">
|
||||
|
||||
+19
-3
@@ -1,6 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<?php
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
//-------------------------------------
|
||||
@@ -62,6 +70,8 @@ foreach ($sterms as $terms) {
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="../css/home.css">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<link rel="apple-touch-icon" type="image/png" href="../favicon/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="../favicon/icon-192x192.png">
|
||||
<title><?php echo $uwuzuinfo[0]?>について - <?php echo file_get_contents($servernamefile);?></title>
|
||||
</head>
|
||||
|
||||
@@ -69,9 +79,15 @@ foreach ($sterms as $terms) {
|
||||
<body>
|
||||
|
||||
<div class="topbox">
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
</div>
|
||||
|
||||
<div class="terms">
|
||||
|
||||
+7
-1
@@ -260,7 +260,6 @@ $pdo = null;
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
if(ueusetext.value){
|
||||
loadPosts();
|
||||
}
|
||||
@@ -269,6 +268,13 @@ $(document).ready(function() {
|
||||
loadPosts();
|
||||
});
|
||||
|
||||
window.document.onkeydown = function(event){
|
||||
if (event.key === 'Enter') {
|
||||
loadPosts();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var isLoading = false;
|
||||
|
||||
function loadPosts() {
|
||||
|
||||
@@ -90,6 +90,8 @@ PHP 8では事前にGDを有効化しておいてください!(QRコードの
|
||||
- ueuse(text) 投稿内容保存用
|
||||
- photo1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo2(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo3(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- photo4(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- video1(varchar(512)) 投稿に添付されたファイルの保存ディレクトリ保存用
|
||||
- datetime(datetime) 投稿日時保存用
|
||||
- favorite(text) いいね保存用
|
||||
@@ -183,4 +185,4 @@ daichimarukanaと一緒に開発したいよ~って人は私のHPからメー
|
||||
|
||||
|
||||
編集者 : daichimarukana
|
||||
最終更新日 : 2023/10/04 00:07
|
||||
最終更新日 : 2023/11/15 21:57
|
||||
@@ -1,4 +1,4 @@
|
||||
uwuzu
|
||||
1.2.25
|
||||
2023/10/22
|
||||
1.2.26
|
||||
2023/11/15
|
||||
daichimarukana,putonfps
|
||||
@@ -1,6 +1,34 @@
|
||||
## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
|
||||
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
|
||||
|
||||
## Version 1.2.26
|
||||
リリース日:2023/11/15
|
||||
fix: 特殊記号を含む通知で表示がバグっちゃう問題を修正しました~
|
||||
fix: サーバーの詳細ページが正しく表示されない問題を修正しました!
|
||||
chg: お知らせでのハイパーリンクに対応しました~
|
||||
chg: 投稿以外でのURL表示を若干変更しました~
|
||||
chg: 広告の縦サイズ制限をなくしました!
|
||||
chg: 色を一部変更しました~
|
||||
chg: ハッシュタグ機能を若干改良しました。
|
||||
chg: 画像を4枚まで添付可能にしました!
|
||||
DBでueuseにphoto3[varchar(512)]とphoto4[varchar(512)]を追加してください。
|
||||
uwuzu_database.sqlも更新済みです。
|
||||
chg: 検索時にEnterで検索できるようにしました。
|
||||
new: 利用規約ページなどでもfaviconを表示するように変更しました。
|
||||
new: サーバーロゴ機能を追加しました。
|
||||
PC版で、左上に表示されているロゴを自由に設定できる機能です。
|
||||
new: リリースノートの書き方を変更しました!
|
||||
リリースノートをわかりやすくするために項目を分類しました。
|
||||
- 「new」=「新機能」=「緑色」
|
||||
- 「fix」=「バグ修正」=「オレンジ色」
|
||||
- 「chg」=「仕様変更」=「青色」
|
||||
- 「del」=「機能廃止」=「赤色」
|
||||
new: サーバー情報APIを実装しました!
|
||||
https://[ドメイン名(uwuzu.netなど)]/api/serverinfo-api
|
||||
new: シェアボタンを実装しました!
|
||||
ユーズ下部のシェアボタンからシェアが可能です。
|
||||
Web Share API非対応のブラウザではURLがコピーされます。
|
||||
|
||||
## Version 1.2.25
|
||||
リリース日:2023/10/22
|
||||
ActivityPubに認識されない問題を修正しました。
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
<?php
|
||||
$servericonfile = "../server/servericon.txt";
|
||||
|
||||
$serverlogofile = "../server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
$servernamefile = "../server/servername.txt";
|
||||
|
||||
$serverinfofile = '../server/info.txt';
|
||||
@@ -231,6 +239,17 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
|
||||
$servericon = $_POST['servericon'];
|
||||
|
||||
$serverlogo_onoff = $_POST['serverlogo_onoff'];
|
||||
|
||||
$serverlogo_light = $_POST['serverlogo_light'];
|
||||
$serverlogo_dark = $_POST['serverlogo_dark'];
|
||||
|
||||
if($serverlogo_onoff === "true"){
|
||||
$saveserverlogo = $serverlogo_light."\n".$serverlogo_dark;
|
||||
}else{
|
||||
$saveserverlogo = "";
|
||||
}
|
||||
|
||||
$servername = $_POST['servername'];
|
||||
|
||||
$serverinfo = $_POST['serverinfo'];
|
||||
@@ -284,6 +303,12 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
fputs($file, $data);
|
||||
fclose($file);
|
||||
|
||||
//鯖ロゴ
|
||||
$file = fopen($serverlogofile, 'w');
|
||||
$data = $saveserverlogo;
|
||||
fputs($file, $data);
|
||||
fclose($file);
|
||||
|
||||
//鯖名
|
||||
$file = fopen($servernamefile, 'w');
|
||||
$data = $servername;
|
||||
@@ -385,6 +410,38 @@ require('../logout/logout.php');
|
||||
<div class="p2">サーバー登録画面などに表示されます。<br>自動的に角が丸くなります。<br>URLより設定してください。</div>
|
||||
<input id="servericon" placeholder="https://~" class="inbox" type="text" name="servericon" value="<?php if( !empty(file_get_contents($servericonfile)) ){ echo htmlspecialchars(file_get_contents($servericonfile), ENT_QUOTES, 'UTF-8'); } ?>">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<p>サーバーロゴ機能のオンオフ</p>
|
||||
<div class="switch_button">
|
||||
<?php if(!empty(file_get_contents($serverlogofile))){?>
|
||||
<input id="serverlogo_onoff" class="switch_input" type='checkbox' name="serverlogo_onoff" value="true" checked/>
|
||||
<label for="serverlogo_onoff" class="switch_label"></label>
|
||||
<?php }else{?>
|
||||
<input id="serverlogo_onoff" class="switch_input" type='checkbox' name="serverlogo_onoff" value="true" />
|
||||
<label for="serverlogo_onoff" class="switch_label"></label>
|
||||
<?php }?>
|
||||
</div>
|
||||
</div>
|
||||
<div id="serverlogo">
|
||||
<p>サーバーロゴ</p>
|
||||
<div class="p2">サーバーの左上に表示されているuwuzuのロゴを独自のロゴに置き換えるときに使用します。<br>自動的に角が丸くなります。<br>URLより設定してください。<br>背景透過画像を推奨します。</div>
|
||||
<div class="p2">ログイン後のロゴ</div>
|
||||
<input id="serverlogo" placeholder="https://~" class="inbox" type="text" name="serverlogo_light" value="<?php if( !empty($serverlogo_link[0]) ){ echo htmlspecialchars($serverlogo_link[0], ENT_QUOTES, 'UTF-8'); } ?>">
|
||||
<div class="p2">ログイン画面と利用規約などドキュメントページのロゴ</div>
|
||||
<input id="serverlogo" placeholder="https://~" class="inbox" type="text" name="serverlogo_dark" value="<?php if( !empty($serverlogo_link[1]) ){ echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8'); } ?>">
|
||||
</div>
|
||||
<script>
|
||||
if ($("#serverlogo_onoff").prop("checked")) {
|
||||
$('#serverlogo').show();
|
||||
}else{
|
||||
$('#serverlogo').hide();
|
||||
}
|
||||
$('#serverlogo_onoff').change(function(){
|
||||
$('#serverlogo').toggle();
|
||||
});
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<p>サーバー名</p>
|
||||
<div class="p2">サーバー名です。</div>
|
||||
|
||||
+12
-12
@@ -268,13 +268,13 @@ if( !empty($_POST['send_ice_submit']) ) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res2 = $stmt->execute();
|
||||
@@ -341,13 +341,13 @@ if( !empty($_POST['send_water_submit']) ) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res2 = $stmt->execute();
|
||||
|
||||
+18
-3
@@ -1,5 +1,14 @@
|
||||
<?php
|
||||
$servernamefile = "server/servername.txt";
|
||||
|
||||
$serverlogofile = "server/serverlogo.txt";
|
||||
$serverlogodata = file_get_contents($serverlogofile);
|
||||
$serverlogodata = explode( "\n", $serverlogodata );
|
||||
$cnt = count( $serverlogodata );
|
||||
for( $i=0;$i<$cnt;$i++ ){
|
||||
$serverlogo_link[$i] = ($serverlogodata[$i]);
|
||||
}
|
||||
|
||||
if(!(empty($_SESSION['backupcode']))){
|
||||
$backupcode = $_SESSION['backupcode'];
|
||||
}else{
|
||||
@@ -25,9 +34,15 @@ if(!(empty($_SESSION['backupcode']))){
|
||||
|
||||
|
||||
<div class="leftbox2">
|
||||
<div class="logo">
|
||||
<img src="img/uwuzulogo.svg">
|
||||
</div>
|
||||
<?php if(!empty($serverlogo_link[1])){ ?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src=<?php echo htmlspecialchars($serverlogo_link[1], ENT_QUOTES, 'UTF-8');?>></a>
|
||||
</div>
|
||||
<?php }else{?>
|
||||
<div class="logo">
|
||||
<a href="../index.php"><img src="../img/uwuzulogo.svg"></a>
|
||||
</div>
|
||||
<?php }?>
|
||||
|
||||
<div class="textbox">
|
||||
<h1>アカウント作成完了!</h1>
|
||||
|
||||
+157
-6
@@ -238,6 +238,7 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (empty($_FILES['upload_images']['name'])) {
|
||||
$photo1 = "none";
|
||||
} else {
|
||||
@@ -311,6 +312,86 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])) {
|
||||
$photo3 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images2']['name'])){
|
||||
$error_message[] = '画像2から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile3 = $_FILES['upload_images3'];
|
||||
|
||||
if( 10000000 < $uploadedFile3["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension3 = pathinfo($uploadedFile3['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename3 = uniqid() . '-'.$userid.'.' . $extension3;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath3 = '../ueuseimages/' . $newFilename3;
|
||||
|
||||
// ファイルを移動
|
||||
$result3 = move_uploaded_file($uploadedFile3['tmp_name'], $uploadedPath3);
|
||||
|
||||
if ($result3) {
|
||||
$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 (empty($_FILES['upload_images4']['name'])) {
|
||||
$photo4 = "none";
|
||||
} else {
|
||||
|
||||
if (empty($_FILES['upload_images3']['name'])){
|
||||
$error_message[] = '画像3から画像を選択してください!!!';
|
||||
}
|
||||
// アップロードされたファイル情報
|
||||
$uploadedFile4 = $_FILES['upload_images4'];
|
||||
|
||||
if( 10000000 < $uploadedFile4["size"] ) {
|
||||
$error_message[] = 'ファイルサイズが大きすぎます!';
|
||||
}
|
||||
// アップロードされたファイルの拡張子を取得
|
||||
$extension4 = pathinfo($uploadedFile4['name'], PATHINFO_EXTENSION);
|
||||
|
||||
// 新しいファイル名を生成(uniqid + 拡張子)
|
||||
$newFilename4 = uniqid() . '-'.$userid.'.' . $extension4;
|
||||
|
||||
// 保存先のパスを生成
|
||||
$uploadedPath4 = '../ueuseimages/' . $newFilename4;
|
||||
|
||||
// ファイルを移動
|
||||
$result4 = move_uploaded_file($uploadedFile4['tmp_name'], $uploadedPath4);
|
||||
|
||||
if ($result4) {
|
||||
$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 (empty($_FILES['upload_videos1']['name'])) {
|
||||
$video1 = "none";
|
||||
} else {
|
||||
@@ -366,7 +447,7 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
try {
|
||||
|
||||
// SQL作成
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, rpuniqid, ueuse, photo1, photo2, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :rpuniqid, :ueuse, :photo1, :photo2, :video1, :datetime, :abi, :nsfw)");
|
||||
$stmt = $pdo->prepare("INSERT INTO ueuse (username, account, uniqid, rpuniqid, ueuse, photo1, photo2, photo3, photo4, video1, datetime, abi, nsfw) VALUES (:username, :account, :uniqid, :rpuniqid, :ueuse, :photo1, :photo2, :photo3, :photo4, :video1, :datetime, :abi, :nsfw)");
|
||||
|
||||
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':account', $userid, PDO::PARAM_STR);
|
||||
@@ -376,6 +457,8 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
|
||||
$stmt->bindParam(':photo1', $photo1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo2', $photo2, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo3', $photo3, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':photo4', $photo4, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':video1', $video1, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
|
||||
@@ -432,13 +515,13 @@ if( !empty($_POST['btn_submit']) ) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -515,6 +598,11 @@ $pdo = null;
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<div id="clipboard" class="online" style="display:none;">
|
||||
<p>🗒️📎 ユーズのURLをコピーしました!</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php require('../require/leftbox.php');?>
|
||||
<main class="outer">
|
||||
<?php if( !empty($error_message) ): ?>
|
||||
@@ -543,6 +631,14 @@ $pdo = null;
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images2" id ="upload_images2" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images3" id="images3" style="display: none" title="画像3">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images3" id ="upload_images3" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_images4" id="images4" style="display: none" title="画像4">
|
||||
<svg><use xlink:href="../img/sysimage/image_1.svg#image"></use></svg>
|
||||
<input type="file" name="upload_images4" id ="upload_images4" accept="image/*">
|
||||
</label>
|
||||
<label for="upload_videos1" id="videos1" title="動画1">
|
||||
<svg><use xlink:href="../img/sysimage/video_1.svg#video"></use></svg>
|
||||
<input type="file" name="upload_videos1" id ="upload_videos1" accept="video/*">
|
||||
@@ -569,6 +665,29 @@ $pdo = null;
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
document.getElementById("upload_images4").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images4');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images3").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
file_reader.addEventListener('load', function(e) {
|
||||
const element = document.querySelector('#images3');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images4").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
|
||||
document.getElementById("upload_images2").addEventListener('change', function(e){
|
||||
var file_reader = new FileReader();
|
||||
// ファイルの読み込みを行ったら実行
|
||||
@@ -576,6 +695,7 @@ $pdo = null;
|
||||
const element = document.querySelector('#images2');
|
||||
const createElement = '<p>画像を選択しました。</p>';
|
||||
element.insertAdjacentHTML('afterend', createElement);
|
||||
$("#images3").show();
|
||||
});
|
||||
file_reader.readAsText(e.target.files[0]);
|
||||
});
|
||||
@@ -849,6 +969,37 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('click', '.share', function (event) {
|
||||
|
||||
var domain = "<?php echo $domain;?>";
|
||||
var share_uniqid = $(this).attr('data-uniqid');
|
||||
var share_userid = $(this).attr('data-userid');
|
||||
|
||||
if (typeof navigator.share === 'undefined') {
|
||||
navigator.clipboard.writeText("https://"+domain+"/!"+share_uniqid+"")
|
||||
$("#clipboard").show();
|
||||
window.setTimeout(function(){
|
||||
$("#clipboard").hide();
|
||||
}, 5000);
|
||||
return;
|
||||
}
|
||||
|
||||
var shareData = {
|
||||
title: ''+share_userid+'さんのID '+share_uniqid+' のユーズ - uwuzu',
|
||||
text: '',
|
||||
url: "https://"+domain+"/!"+share_uniqid+"",
|
||||
};
|
||||
|
||||
navigator.share(shareData)
|
||||
.then(function () {
|
||||
// シェア完了後の処理
|
||||
})
|
||||
.catch(function (error) {
|
||||
// シェア失敗時の処理
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
+46
-9
@@ -233,11 +233,14 @@ if( !empty($pdo) ) {
|
||||
foreach ($matches[0] as $url) {
|
||||
// ドメイン部分を抽出
|
||||
$parsedUrl = parse_url($url);
|
||||
$domain = isset($parsedUrl['host']) ? $parsedUrl['host'] : '';
|
||||
if (!isset($parsedUrl['path'])) {
|
||||
$parsedUrl['path'] = '';
|
||||
}
|
||||
$domain = $parsedUrl['host'].(strlen($parsedUrl['path']) > 24 ? substr($parsedUrl['path'], 0, 24) . '...' : $parsedUrl['path']);
|
||||
|
||||
// 不要な文字を削除してaタグを生成
|
||||
$urlWithoutSpaces = preg_replace('/\s+/', '', $url);
|
||||
$link = "<a href='$urlWithoutSpaces' target='_blank'>$domain</a>";
|
||||
$link = "<a href='$urlWithoutSpaces' target='_blank' title='$urlWithoutSpaces'>$domain</a>";
|
||||
|
||||
// URLをドメインのみを表示するaタグで置き換え
|
||||
$postText = preg_replace('/' . preg_quote($url, '/') . '/', $link, $postText);
|
||||
@@ -363,7 +366,7 @@ if( !empty($pdo) ) {
|
||||
if (!empty($_POST['follow'])) {
|
||||
// フォローボタンが押された場合の処理
|
||||
$followerList = explode(',', $userdata['follower']);
|
||||
if (!in_array($userid, $followerList)) {
|
||||
if (!(in_array($userid, $followerList))) {
|
||||
// 自分が相手をフォローしていない場合、相手のfollowerカラムと自分のfollowカラムを更新
|
||||
$followerList[] = $userid;
|
||||
$newFollowerList = implode(',', $followerList);
|
||||
@@ -395,13 +398,13 @@ if (!empty($_POST['follow'])) {
|
||||
$stmt = $pdo->prepare("INSERT INTO notification (touserid, msg, url, datetime, userchk, title) VALUES (:touserid, :msg, :url, :datetime, :userchk, :title)");
|
||||
|
||||
|
||||
$stmt->bindParam(':touserid', $touserid, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', $msg, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', $url, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', $userchk, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':touserid', htmlentities($touserid), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':msg', htmlentities($msg), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':url', htmlentities($url), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':userchk', htmlentities($userchk), PDO::PARAM_STR);
|
||||
$stmt->bindParam(':title', htmlentities($title), PDO::PARAM_STR);
|
||||
|
||||
$stmt->bindParam(':datetime', $datetime, PDO::PARAM_STR);
|
||||
$stmt->bindParam(':datetime', htmlentities($datetime), PDO::PARAM_STR);
|
||||
|
||||
// SQLクエリの実行
|
||||
$res = $stmt->execute();
|
||||
@@ -559,6 +562,9 @@ $pdo = null;
|
||||
<body>
|
||||
|
||||
<div>
|
||||
<div id="clipboard" class="online" style="display:none;">
|
||||
<p>🗒️📎 ユーズのURLをコピーしました!</p>
|
||||
</div>
|
||||
<div id="offline" class="offline" style="display:none;">
|
||||
<p>🦖💨 インターネットへの接続が切断されました...</p>
|
||||
</div>
|
||||
@@ -1302,6 +1308,37 @@ $(document).ready(function() {
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('click', '.share', function (event) {
|
||||
|
||||
var domain = "<?php echo $domain;?>";
|
||||
var share_uniqid = $(this).attr('data-uniqid');
|
||||
var share_userid = $(this).attr('data-userid');
|
||||
|
||||
if (typeof navigator.share === 'undefined') {
|
||||
navigator.clipboard.writeText("https://"+domain+"/!"+share_uniqid+"")
|
||||
$("#clipboard").show();
|
||||
window.setTimeout(function(){
|
||||
$("#clipboard").hide();
|
||||
}, 5000);
|
||||
return;
|
||||
}
|
||||
|
||||
var shareData = {
|
||||
title: ''+share_userid+'さんのID '+share_uniqid+' のユーズ - uwuzu',
|
||||
text: '',
|
||||
url: "https://"+domain+"/!"+share_uniqid+"",
|
||||
};
|
||||
|
||||
navigator.share(shareData)
|
||||
.then(function () {
|
||||
// シェア完了後の処理
|
||||
})
|
||||
.catch(function (error) {
|
||||
// シェア失敗時の処理
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
+3
-1
@@ -3,7 +3,7 @@
|
||||
-- https://www.phpmyadmin.net/
|
||||
--
|
||||
-- ホスト: ひみつ
|
||||
-- 生成日時: 2023-10-03 17:20:43
|
||||
-- 生成日時: 2023-11-15 14:03:33
|
||||
-- サーバのバージョン: 10.4.28-MariaDB
|
||||
-- PHP のバージョン: 8.2.4
|
||||
|
||||
@@ -171,6 +171,8 @@ CREATE TABLE `ueuse` (
|
||||
`ueuse` text NOT NULL,
|
||||
`photo1` varchar(512) NOT NULL,
|
||||
`photo2` varchar(512) NOT NULL,
|
||||
`photo3` varchar(512) NOT NULL,
|
||||
`photo4` varchar(512) NOT NULL,
|
||||
`video1` varchar(512) NOT NULL,
|
||||
`datetime` datetime NOT NULL,
|
||||
`favorite` text NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user