170 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			170 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								session_start();
							 | 
						||
| 
								 | 
							
								include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/config.php";
							 | 
						||
| 
								 | 
							
								$id = "";
							 | 
						||
| 
								 | 
							
								$argument = preg_split("/\//", $_SERVER["REQUEST_URI"]);
							 | 
						||
| 
								 | 
							
								if ($argument[1] != "d" && $argument[1] != null) {
							 | 
						||
| 
								 | 
							
								  $dsn =
							 | 
						||
| 
								 | 
							
								    "mysql:host=" .
							 | 
						||
| 
								 | 
							
								    $mysql_address .
							 | 
						||
| 
								 | 
							
								    ";dbname=" .
							 | 
						||
| 
								 | 
							
								    $mysql_db .
							 | 
						||
| 
								 | 
							
								    ";port=" .
							 | 
						||
| 
								 | 
							
								    $mysql_port .
							 | 
						||
| 
								 | 
							
								    ";charset=utf8mb4";
							 | 
						||
| 
								 | 
							
								  $options = [
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_EMULATE_PREPARES => false,
							 | 
						||
| 
								 | 
							
								  ];
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    $pdo = new PDO($dsn, $mysql_username, $mysql_password, $options);
							 | 
						||
| 
								 | 
							
								    $pdo->exec("use " . $mysql_db);
							 | 
						||
| 
								 | 
							
								  } catch (PDOException $e) {
							 | 
						||
| 
								 | 
							
								    die($e->getMessage() . " " . (int) $e->getCode());
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  $req = $pdo->prepare("select * from " . $mysql_table . " where id = ?");
							 | 
						||
| 
								 | 
							
								  $req->execute([$argument[1]]);
							 | 
						||
| 
								 | 
							
								  $row = $req->fetch();
							 | 
						||
| 
								 | 
							
								  if (isset($row["original"])) {
							 | 
						||
| 
								 | 
							
								    http_response_code(301);
							 | 
						||
| 
								 | 
							
								    header("Location: " . $row["original"]);
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    http_response_code(404);
							 | 
						||
| 
								 | 
							
								    $pagename =
							 | 
						||
| 
								 | 
							
								      "The shortened link you wish to access does not exist or no longer exists";
							 | 
						||
| 
								 | 
							
								    include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/header.php";
							 | 
						||
| 
								 | 
							
								?>
							 | 
						||
| 
								 | 
							
								    <main role="main" class="cover fadeIn">
							 | 
						||
| 
								 | 
							
								      <h1 class="cover-heading">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        <?php $translate->__("Oh no..."); ?>
							 | 
						||
| 
								 | 
							
								      </h1>
							 | 
						||
| 
								 | 
							
								      <p class="lead">
							 | 
						||
| 
								 | 
							
								        <?php $translate->__(
							 | 
						||
| 
								 | 
							
								          "The shortened link you wish to access does not exist or no longer exists."
							 | 
						||
| 
								 | 
							
								        ); ?>
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								      <a class="btn btn-outline-primary btn-block" type="button" href="/">
							 | 
						||
| 
								 | 
							
								        <span class="bi-fix"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-door-fill" viewBox="0 0 16 16" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								            <path d="M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5z" />
							 | 
						||
| 
								 | 
							
								          </svg> <?php $translate->__("Return to the homepage"); ?></span>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      </a>
							 | 
						||
| 
								 | 
							
								    </main>
							 | 
						||
| 
								 | 
							
								  <?php include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/footer.php";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								} else if ($argument[1] == "d") {
							 | 
						||
| 
								 | 
							
								  if ($argument[2] == null) {
							 | 
						||
| 
								 | 
							
								    header("Location: /");
							 | 
						||
| 
								 | 
							
								    exit();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  $dsn =
							 | 
						||
| 
								 | 
							
								    "mysql:host=" .
							 | 
						||
| 
								 | 
							
								    $mysql_address .
							 | 
						||
| 
								 | 
							
								    ";dbname=" .
							 | 
						||
| 
								 | 
							
								    $mysql_db .
							 | 
						||
| 
								 | 
							
								    ";port=" .
							 | 
						||
| 
								 | 
							
								    $mysql_port .
							 | 
						||
| 
								 | 
							
								    ";charset=utf8mb4";
							 | 
						||
| 
								 | 
							
								  $options = [
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
							 | 
						||
| 
								 | 
							
								    PDO::ATTR_EMULATE_PREPARES => false,
							 | 
						||
| 
								 | 
							
								  ];
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    $pdo = new PDO($dsn, $mysql_username, $mysql_password, $options);
							 | 
						||
| 
								 | 
							
								    $pdo->exec("use " . $mysql_db);
							 | 
						||
| 
								 | 
							
								  } catch (PDOException $e) {
							 | 
						||
| 
								 | 
							
								    die($e->getMessage() . " " . (int) $e->getCode());
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  $req = $pdo->prepare("select * from " . $mysql_table . " where deleteId = ?");
							 | 
						||
| 
								 | 
							
								  $req->execute([$argument[2]]);
							 | 
						||
| 
								 | 
							
								  $row = $req->fetch();
							 | 
						||
| 
								 | 
							
								  if (isset($row["deleteId"])) {
							 | 
						||
| 
								 | 
							
								    $req = $pdo->prepare(
							 | 
						||
| 
								 | 
							
								      "delete from " . $mysql_table . " where deleteId = ?"
							 | 
						||
| 
								 | 
							
								    );
							 | 
						||
| 
								 | 
							
								    $req->execute([$argument[2]]);
							 | 
						||
| 
								 | 
							
								    $pagename = "Shortened link deleted";
							 | 
						||
| 
								 | 
							
								    include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/header.php";
							 | 
						||
| 
								 | 
							
								  ?>
							 | 
						||
| 
								 | 
							
								    <main role="main" class="cover fadeIn">
							 | 
						||
| 
								 | 
							
								      <h1 class="cover-heading">
							 | 
						||
| 
								 | 
							
								        <i class="fa fa-thumbs-up fa-fw" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								        </i>
							 | 
						||
| 
								 | 
							
								        <?php $translate->__("Your shortened link has been deleted"); ?>
							 | 
						||
| 
								 | 
							
								      </h1>
							 | 
						||
| 
								 | 
							
								      <p class="lead">
							 | 
						||
| 
								 | 
							
								        <?php $translate->__("Thank you for your trust."); ?>
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								      <a class="btn btn-outline-primary btn-block" type="button" href="/">
							 | 
						||
| 
								 | 
							
								        <span class="bi-fix"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-door-fill" viewBox="0 0 16 16" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								            <path d="M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5z" />
							 | 
						||
| 
								 | 
							
								          </svg> <?php $translate->__("Return to the homepage"); ?></span>
							 | 
						||
| 
								 | 
							
								      </a>
							 | 
						||
| 
								 | 
							
								    </main>
							 | 
						||
| 
								 | 
							
								  <?php
							 | 
						||
| 
								 | 
							
								    include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/footer.php";
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $pagename = "The shortened link could not be removed";
							 | 
						||
| 
								 | 
							
								    include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/header.php";
							 | 
						||
| 
								 | 
							
								  ?>
							 | 
						||
| 
								 | 
							
								    <main role="main" class="cover fadeIn">
							 | 
						||
| 
								 | 
							
								      <h1 class="cover-heading">
							 | 
						||
| 
								 | 
							
								        <?php $translate->__("Oh no..."); ?>
							 | 
						||
| 
								 | 
							
								      </h1>
							 | 
						||
| 
								 | 
							
								      <p class="lead">
							 | 
						||
| 
								 | 
							
								        <?php $translate->__(
							 | 
						||
| 
								 | 
							
								          "This deletion link does not exist."
							 | 
						||
| 
								 | 
							
								        ); ?><br><?php $translate->__(
							 | 
						||
| 
								 | 
							
								                            "Therefore, the deletion of the shortened link cannot be processed."
							 | 
						||
| 
								 | 
							
								                          ); ?>
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								      <a class="btn btn-outline-primary btn-block" type="button" href="/">
							 | 
						||
| 
								 | 
							
								        <span class="bi-fix"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-door-fill" viewBox="0 0 16 16" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								            <path d="M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5z" />
							 | 
						||
| 
								 | 
							
								          </svg> <?php $translate->__("Return to the homepage"); ?></span>
							 | 
						||
| 
								 | 
							
								      </a>
							 | 
						||
| 
								 | 
							
								    </main>
							 | 
						||
| 
								 | 
							
								  <?php
							 | 
						||
| 
								 | 
							
								    include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/footer.php";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								} else {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  $token = bin2hex(random_bytes(32));
							 | 
						||
| 
								 | 
							
								  $_SESSION["token"] = $token;
							 | 
						||
| 
								 | 
							
								  include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/header.php";
							 | 
						||
| 
								 | 
							
								  ?>
							 | 
						||
| 
								 | 
							
								  <main role="main" class="cover fadeIn">
							 | 
						||
| 
								 | 
							
								    <h1 class="cover-heading">
							 | 
						||
| 
								 | 
							
								      <?php $translate->__(
							 | 
						||
| 
								 | 
							
								        "Welcome to collabore link"
							 | 
						||
| 
								 | 
							
								      ); ?>
							 | 
						||
| 
								 | 
							
								    </h1>
							 | 
						||
| 
								 | 
							
								    <p class="lead">
							 | 
						||
| 
								 | 
							
								      <?php $translate->__("Shorten all the links you want, efficiently, without any fuss."); ?>
							 | 
						||
| 
								 | 
							
								    </p>
							 | 
						||
| 
								 | 
							
								    <form method="post" action="shorten">
							 | 
						||
| 
								 | 
							
								      <div class="input-group mb-3">
							 | 
						||
| 
								 | 
							
								        <input type="text" name="link" class="form-control" placeholder="<?php $translate->__(
							 | 
						||
| 
								 | 
							
								                                                                            "Original link"
							 | 
						||
| 
								 | 
							
								                                                                          ); ?>" aria-label="<?php $translate->__(
							 | 
						||
| 
								 | 
							
								                                                                                                "Original link"
							 | 
						||
| 
								 | 
							
								                                                                                              ); ?>" aria-describedby="button-addon2" required autofocus>
							 | 
						||
| 
								 | 
							
								        <input type="hidden" value="<?= $token; ?>" name="token" />
							 | 
						||
| 
								 | 
							
								        <div class="input-group-append">
							 | 
						||
| 
								 | 
							
								          <button class="btn btn-outline-primary" type="submit">
							 | 
						||
| 
								 | 
							
								            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-arrows-angle-contract" viewBox="0 0 16 16" aria-hidden="true">
							 | 
						||
| 
								 | 
							
								              <path fill-rule="evenodd" d="M.172 15.828a.5.5 0 0 0 .707 0l4.096-4.096V14.5a.5.5 0 1 0 1 0v-3.975a.5.5 0 0 0-.5-.5H1.5a.5.5 0 0 0 0 1h2.768L.172 15.121a.5.5 0 0 0 0 .707zM15.828.172a.5.5 0 0 0-.707 0l-4.096 4.096V1.5a.5.5 0 1 0-1 0v3.975a.5.5 0 0 0 .5.5H14.5a.5.5 0 0 0 0-1h-2.768L15.828.879a.5.5 0 0 0 0-.707z" />
							 | 
						||
| 
								 | 
							
								            </svg>
							 | 
						||
| 
								 | 
							
								          </button>
							 | 
						||
| 
								 | 
							
								        </div>
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    </form>
							 | 
						||
| 
								 | 
							
								  </main>
							 | 
						||
| 
								 | 
							
								<?php include_once $_SERVER["DOCUMENT_ROOT"] . "/assets/includes/footer.php";
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								?>
							 |