Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.10 KB | None | 0 0
  1. <?php
  2. main();
  3.  
  4. function main()
  5. {
  6.     // Lista poprawnych haseł
  7.     $passwordList = [
  8.         'heniu',
  9.         'jasiu',
  10.         'stasiu',
  11.         'lasiu',
  12.         'gieniu'
  13.     ];
  14.  
  15.     // Hasło prosto z inputa, zabezpieczone. Blank_password jest zabezpieczeniem na brak wpisania hasła.
  16.     $passwordFromInput = htmlspecialchars(strip_tags($_POST['password'] ?? ''), ENT_QUOTES);
  17.  
  18.     if (isset($_POST['password'])) {
  19.         if (!empty($passwordFromInput) && \in_array($passwordFromInput, $passwordList, true)) {
  20.             switch ($passwordFromInput) {
  21.                 case 'heniu':
  22.                     printSimpleText('dupa', 'b');
  23.                     break;
  24.                 case 'jasiu':
  25.                     loadHiddenHtmlFile('pierwszy.html');
  26.                     break;
  27.                 case 'stasiu':
  28.                     downloadFile('pierwszy.html');
  29.                     break;
  30.                 case 'lasiu':
  31.                     redirectToUrl('http://www.staszekigraszek.pl');
  32.                     break;
  33.             }
  34.             echo '<strong style="color: green">Dobre hasło</strong>';
  35.         } else {
  36.             echo '<strong style="color: red">Złe hasło lamo!</strong>';
  37.             waitAndRefresh();
  38.         }
  39.     } else {
  40.         ?>
  41.         <p>Co tam <b>ciemięgo</b><u>?</u></p>
  42.         <a href="index.html">Idź</a> grzecznie na początek kolejki!
  43. <?php
  44.     }
  45. }
  46.  
  47. function waitAndRefresh(): void
  48. {
  49.     unset($_POST['password']);
  50.     header('Refresh:3; url=index.html');
  51. }
  52.  
  53. function redirectToUrl($url): void
  54. {
  55.     \assert(filter_var($url, FILTER_VALIDATE_URL), 'To nie jest poprawny URL');
  56.  
  57.     header("Location: {$url}");
  58.     die();
  59. }
  60.  
  61. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  62. /**
  63.  * Pozwala ściągnąć plik fizycznie.
  64.  */
  65. function downloadFile($file): void
  66. {
  67.     $path = __DIR__ . '/' . $file;
  68.  
  69.     if (file_exists($path)) {
  70.         header('Content-Description: File Transfer');
  71.         header('Content-Type: application/octet-stream');
  72.         header('Content-Disposition: attachment; filename="' . basename($path) . '"');
  73.         header('Expires: 0');
  74.         header('Cache-Control: must-revalidate');
  75.         header('Pragma: public');
  76.         header('Content-Length: ' . filesize($path));
  77.  
  78.         readfile($path);
  79.         exit;
  80.     }
  81. }
  82.  
  83. /**
  84.  * Drukuje zadany tekst o wybranym tagu.
  85.  */
  86. function printSimpleText($textToPrint, $tag): void
  87. {
  88.     assert(
  89.         \in_array($tag, ['b', 'strong', 'p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'], true),
  90.         'Wpisany tag jest nieprawidłowy. Wpisz jeden z listy dostępnych.');
  91.  
  92.     echo "<{$tag}>{$textToPrint}<{$tag}>";
  93. }
  94.  
  95. /**
  96.  * Pozwala pobrać plik HTML (na przykład) jako treść tej strony.
  97.  */
  98. function loadHiddenHtmlFile($filename): void
  99. {
  100.     $path = __DIR__ . '/' . $filename;
  101.  
  102.     if (file_exists($path)) {
  103.         $doc = new DOMDocument();
  104.         $doc->loadHTMLFile($path);
  105.  
  106.         echo $doc->saveHTML();
  107.     } else {
  108.         throw new \Exception("Wybrany plik: {$path} nie istnieje.");
  109.     }
  110. }
  111. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement