このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
urloli.php/www/index.php

107 行
3.1 KiB
PHP
Raw Blame 履歴

このファイルには曖昧(ambiguous)なUnicode文字が含まれています

このファイルには、他の文字と見間違える可能性があるUnicode文字が含まれています。 それが意図的なものと考えられる場合は、この警告を無視して構いません。 それらの文字を表示するにはエスケープボタンを使用します。

<?php
$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'ja';
if (isset($_POST['langchange'])) {
$lang = null !== $_COOKIE['lang'] && $_COOKIE['lang'] == 'en' ? 'ja' : 'en';
setcookie('lang', $lang);
unset($_POST['langchange']);
header('Location: /');
}
include('../lang/'.$lang.'.php');
require_once('../config.php');
$title = $lang == 'en' ? SITE_NAME_EN : SITE_NAME_JA;
function mkstring () {
$stringchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$newstring = '';
for ($i = 0; $i < 5; $i++) $newstring .= $stringchars[rand(0, strlen($stringchars))];
foreach ($arr as $k => $v) {
if ($newstring == $k) return mkstring();
}
return $newstring;
}
// パラメートルがなければ、スキップ。
if (isset($_POST['sosin'])) {
$newadd = $_POST['newadd'];
if (!str_starts_with($newadd, 'http://') && !str_starts_with($newadd, 'https://')) {
$title .= '〜'.LOC_FUSEINA_URL;
$err = LOC_ERROR_URL_HTTP_HTTPS;
include_once('../views/404.php');
exit;
}
if (strlen($newadd) > 500) {
$title .= '〜'.LOC_FUSEINA_URL;
$err = 'URLは500文字以内です。';
include_once('../views/404.php');
exit;
}
$data = file_get_contents('links.json');
$arr = json_decode($data, true);
foreach ($arr as $k => $v) {
if ($newadd == $v) {
if (isset($_POST['api']) && $_POST['api'] == 1) {
header('Content-Type: application/json');
echo json_encode(['res' => $k]);
}
else header('Location: /?newurl='.$k);
exit;
}
}
$newstring = mkstring();
$arr[$newstring] = $newadd;
$newdata = json_encode($arr);
file_put_contents('links.json', $newdata);
if (isset($_POST['api']) && $_POST['api'] == 1) {
header('Content-Type: application/json');
echo json_encode(['res' => $newstring]);
}
else header('Location: /?newurl='.$newstring);
exit;
}
else if (!isset($_GET['url']) && isset($_GET['newurl'])) {
$title .= '〜'.LOC_TANSYUKUZUMI;
$newurl = $_GET['newurl'];
include_once('../views/submitted.php');
}
else if (isset($_GET['url']) && $_GET['url'] != '') {
$data = file_get_contents('links.json');
foreach (json_decode($data) as $k => $v) {
// jsonファイルでキーを見つければ、転送されます。なければ、エラーが出ます。
if ($_GET['url'] == $k) {
if (isset($_GET['api']) && $_GET['api'] == 1) {
header('Content-Type: application/json');
echo json_encode(['res' => $v]);
}
else header('Location: '.$v);
exit;
}
else {
$title .= '〜'.LOC_MIKENSYUTU;
$err = LOC_ERROR_URL_MITUKAREMASEN;
include_once('../views/404.php');
}
}
}
else if (!isset($_GET['url']) && $_SERVER['REQUEST_URI'] == '/') {
$title .= '〜'.LOC_TOP;
include_once('../views/index.php');
}
else {
$title .= '〜'.LOC_MIKENSYUTU;
$err = LOC_ERROR_URL_MITUKAREMASEN;
include_once('../views/404.php');
}
?>