fork download
  1. <?php
  2.  
  3. class TicketSystem {
  4. private $api_url = 'https://w...content-available-to-author-only...t.com/api';
  5. private $username = 'vanzari@eves.ro';
  6. private $secret_key = 'A64s20lraPqfZgBXesSQJKNwPn0t93';
  7.  
  8. private function generate_hash($action, $event_id = null) {
  9. $timestamp = time();
  10. $hash_string = $this->username . '-' . $action . '-';
  11. if ($event_id !== null) {
  12. $hash_string .= $event_id . '-';
  13. }
  14. $hash_string .= $timestamp . '-' . $this->secret_key;
  15. return hash('sha256', $hash_string);
  16. }
  17.  
  18. private function call_api($action, $params = []) {
  19. $timestamp = time();
  20. $params['action'] = $action;
  21. $params['u'] = $this->username;
  22. $params['ts'] = $timestamp;
  23. $params['s'] = $this->generate_hash($action, isset($params['event_id']) ? $params['event_id'] : null);
  24. $params['out'] = 'json';
  25.  
  26. $url = $this->api_url . '?' . http_build_query($params);
  27.  
  28. $ch = curl_init();
  29. curl_setopt($ch, CURLOPT_URL, $url);
  30. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  31. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  32.  
  33. $response = curl_exec($ch);
  34. curl_close($ch);
  35.  
  36. $result = json_decode($response, true);
  37. if (json_last_error() !== JSON_ERROR_NONE) {
  38. return ['error' => 'Eroare la decodarea JSON'];
  39. }
  40. return $result;
  41. }
  42.  
  43. public function get_events() {
  44. return $this->call_api('list_events');
  45. }
  46.  
  47. public function get_all_tickets() {
  48. return $this->call_api('get_all_tickets');
  49. }
  50.  
  51. public function get_event_tickets($event_id) {
  52. return $this->call_api('get_event', ['event_id' => $event_id]);
  53. }
  54. }
  55.  
  56. $ticketSystem = new TicketSystem();
  57.  
  58. // Gestionarea coșului de cumpărături
  59. if (!isset($_SESSION['cart'])) {
  60. $_SESSION['cart'] = [];
  61. }
  62.  
  63. if (isset($_GET['add_to_cart'])) {
  64. $_SESSION['cart'][] = $_GET['add_to_cart'];
  65. }
  66.  
  67. if (isset($_GET['remove_from_cart'])) {
  68. $key = array_search($_GET['remove_from_cart'], $_SESSION['cart']);
  69. if ($key !== false) {
  70. unset($_SESSION['cart'][$key]);
  71. }
  72. }
  73.  
  74. if (isset($_GET['clear_cart'])) {
  75. $_SESSION['cart'] = [];
  76. }
  77.  
  78. // Afișarea conținutului paginii
  79. echo '<!DOCTYPE html>
  80. <html lang="ro">
  81. <head>
  82. <meta charset="UTF-8">
  83. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  84. <title>Vânzare Bilete</title>
  85. <link rel="stylesheet" href="https://s...content-available-to-author-only...n.com/bootstrap/4.5.2/css/bootstrap.min.css">
  86. </head>
  87. <body>
  88. <div class="container mt-5">';
  89.  
  90. if (isset($_GET['event_id'])) {
  91. $event_id = $_GET['event_id'];
  92. $tickets = $ticketSystem->get_event_tickets($event_id);
  93. if ($tickets) {
  94. echo '<h1>Bilete Disponibile</h1>';
  95. echo '<div class="row">';
  96. foreach ($tickets as $ticket) {
  97. echo '<div class="col-md-4 mb-3">
  98. <div class="card">
  99. <div class="card-body">
  100. <h5 class="card-title">' . $ticket['ticket_type'] . '</h5>
  101. <p class="card-text">Preț: ' . $ticket['price'] . '</p>
  102. <a href="?add_to_cart=' . $ticket['id'] . '" class="btn btn-primary">Adaugă în coș</a>
  103. </div>
  104. </div>
  105. </div>';
  106. }
  107. echo '</div>';
  108. } else {
  109. echo '<p>Nu s-au găsit bilete.</p>';
  110. }
  111. } elseif (isset($_GET['all_tickets'])) {
  112. $tickets = $ticketSystem->get_all_tickets();
  113. if ($tickets) {
  114. echo '<h1>Toate Biletele</h1>';
  115. echo '<div class="row">';
  116. foreach ($tickets as $ticket) {
  117. echo '<div class="col-md-4 mb-3">
  118. <div class="card">
  119. <div class="card-body">
  120. <h5 class="card-title">' . $ticket['ticket_type'] . '</h5>
  121. <p class="card-text">Preț: ' . $ticket['price'] . ' - Eveniment: ' . $ticket['event_name'] . '</p>
  122. <a href="?add_to_cart=' . $ticket['id'] . '" class="btn btn-primary">Adaugă în coș</a>
  123. </div>
  124. </div>
  125. </div>';
  126. }
  127. echo '</div>';
  128. } else {
  129. echo '<p>Nu s-au găsit bilete.</p>';
  130. }
  131. } else {
  132. $events = $ticketSystem->get_events();
  133. if ($events) {
  134. echo '<h1>Evenimente Disponibile</h1>';
  135. echo '<ul class="list-group">';
  136. foreach ($events as $event) {
  137. echo '<li class="list-group-item"><a href="?event_id=' . $event['id'] . '">' . $event['home_team_name'] . ' vs ' . $event['away_team_name'] . '</a></li>';
  138. }
  139. echo '</ul>';
  140. echo '<br><a href="?all_tickets=1" class="btn btn-secondary">Toate Biletele</a>';
  141. } else {
  142. echo '<p>Nu s-au găsit evenimente.</p>';
  143. }
  144. }
  145.  
  146. // Afișarea coșului de cumpărături
  147. if (!empty($_SESSION['cart'])) {
  148. echo '<h2>Coș de Cumpărături</h2>';
  149. echo '<ul class="list-group">';
  150. foreach ($_SESSION['cart'] as $ticket_id) {
  151. echo '<li class="list-group-item">Bilet ID: ' . $ticket_id . ' <a href="?remove_from_cart=' . $ticket_id . '" class="btn btn-danger btn-sm float-right">Șterge</a></li>';
  152. }
  153. echo '</ul>';
  154. echo '<a href="?clear_cart=1" class="btn btn-warning">Golește coșul</a><br>';
  155. echo '<a href="?checkout=1" class="btn btn-success">Finalizează comanda</a>';
  156. }
  157.  
  158. if (isset($_GET['checkout'])) {
  159. echo '<h1>Comanda a fost procesată cu succes!</h1>';
  160. $_SESSION['cart'] = [];
  161. }
  162.  
  163. echo '</div>
  164. <script src="https://c...content-available-to-author-only...y.com/jquery-3.5.1.slim.min.js"></script>
  165. <script src="https://c...content-available-to-author-only...r.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
  166. <script src="https://s...content-available-to-author-only...n.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
  167. </body>
  168. </html>';
  169. ?><?php
  170.  
  171. // your code goes here
Success #stdin #stdout #stderr 0.03s 26504KB
stdin
Standard input is empty
stdout
<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vânzare Bilete</title>
    <link rel="stylesheet" href="https://s...content-available-to-author-only...n.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
    <div class="container mt-5"><h1>Evenimente Disponibile</h1><ul class="list-group"><li class="list-group-item"><a href="?event_id=E">E vs E</a></li></ul><br><a href="?all_tickets=1" class="btn btn-secondary">Toate Biletele</a></div>
    <script src="https://c...content-available-to-author-only...y.com/jquery-3.5.1.slim.min.js"></script>
    <script src="https://c...content-available-to-author-only...r.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
    <script src="https://s...content-available-to-author-only...n.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
stderr
PHP Warning:  Illegal string offset 'id' in /home/eUxLDO/prog.php on line 138
PHP Warning:  Illegal string offset 'home_team_name' in /home/eUxLDO/prog.php on line 138
PHP Warning:  Illegal string offset 'away_team_name' in /home/eUxLDO/prog.php on line 138