コード例 #1
0
ファイル: ShortURLTest.php プロジェクト: Hiroto-K/ShortURL
 /**
  * Test urlList()
  *
  * @return void
  */
 public function testUrlList()
 {
     $check = [];
     foreach ($this->test_urls as $url => $result) {
         if ($result) {
             $check[] = $url;
         }
     }
     foreach ($this->short_url->urlList() as $item) {
         $this->assertContains($item["url"], $check);
     }
 }
コード例 #2
0
ファイル: list.php プロジェクト: Hiroto-K/ShortURL
<?php

require_once __DIR__ . "/bootstrap.php";
use HirotoK\ShortURL\App\ShortURL;
if (config("https") && !is_https()) {
    header("location: https://" . config("url") . "/list.php");
    exit;
}
$ShortURL = new ShortURL(config("db"));
header("Content-Type: text/html; charset=utf-8", true);
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>List | ShortURL</title>
    <meta name="description" content="このサイトは短縮URLサイトを簡単に構築出来るアプリ、ShortURLの短縮したURLの一覧ページです。">
    <meta name="keywords" content="ShortURL,Hiroto-K/ShortURL,PHP,Apache,短縮URL,サイト,自作">
    <meta name="format-detection" content="telephone=no">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <link rel="stylesheet" href="/assets/css/style.css">
    <script src="/assets/js/lib.js"></script>
  </head>

  <body>
    <div class="container">

      <div class="navbar navbar-default navbar-fixed-top">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">
コード例 #3
0
ファイル: redirect.php プロジェクト: Hiroto-K/ShortURL
<?php

require_once __DIR__ . "/bootstrap.php";
use HirotoK\ShortURL\App\ShortURL;
use HirotoK\ShortURL\App\ShortURLException;
try {
    if (empty($_GET["hash"]) && !is_string($_GET["hash"])) {
        throw new ShortURLException("エラーが発生しました。");
    }
    $hash = $_GET["hash"];
    $ShortURL = new ShortURL(config("db"));
    $result = $ShortURL->getUrlById($hash);
    if (!isset($result["url"])) {
        throw new ShortURLException("そのようなURLは存在しません。");
    }
    header("Location: {$result["url"]}");
    exit;
} catch (PDOException $e) {
    header("Content-Type: text/html; charset=utf-8", true);
    $msg = config("debug") ? $e->getMessage() : "データベースエラーが発生しました。";
    print_error("Error", $msg);
} catch (RuntimeException $e) {
    header("Content-Type: text/html; charset=utf-8", true);
    $msg = $e->getMessage();
    print_error("Error", $msg);
}
コード例 #4
0
ファイル: new.php プロジェクト: Hiroto-K/ShortURL
    if (config("https") && !is_https()) {
        throw new ShortURLException("HTTPSで通信してください。");
    }
    if ($_SERVER["REQUEST_METHOD"] !== "POST") {
        throw new ShortURLException("POSTで通信してください。");
    }
    if (empty($url) && !is_string($url)) {
        throw new ShortURLException("URLを送信してください。");
    }
    if (!is_url($url)) {
        throw new ShortURLException("URLはhttp://もしくはhttps://から入力してください。");
    }
    if (!is_active_url($url)) {
        throw new ShortURLException("有効なURLを送信して下さい。");
    }
    $ShortURL = new ShortURL(config("db"));
    $result = $ShortURL->add($url);
    $array = ["status" => "ok", "hash" => $result["id"], "url" => config("url") . "/" . $result["id"]];
} catch (PDOException $e) {
    header("HTTP/1.1 500 Internal Server Error");
    $message = config("debug") ? $e->getMessage() : "データベースエラーでエラーが発生しました。";
    $array = ["error" => ["message" => $message]];
} catch (RuntimeException $e) {
    header("HTTP/1.1 500 Internal Server Error");
    $message = $e->getMessage();
    $array = ["error" => ["message" => $message]];
}
if (isset($array) && is_array($array)) {
    header("Content-Type: application/json; charset=utf-8", true);
    echo json_encode($array, JSON_UNESCAPED_UNICODE);
}