mysql = new mysqli($host, $user, $password, $database); if ($this->mysql->connect_error) { header('HTTP/1.0 503 Service Unavailable'); die('MySQL Connect Error (' . $this->mysql->connect_errno . ') ' . $this->mysql->connect_error); } $this->table = $table; if (! $this->mysql->query("CREATE TABLE IF NOT EXISTS $table ( pid VARCHAR(40) PRIMARY KEY, nick VARCHAR(255), language VARCHAR(40), content MEDIUMTEXT, description TEXT, remote VARCHAR(15), time TIMESTAMP, FULLTEXT INDEX (content), FULLTEXT INDEX (description), INDEX (language), INDEX (nick) );")) { header('HTTP/1.0 503 Service Unavailable'); die('MySQL Error (' . $this->mysql->errno . ') ' . $this->mysql->error); } } function __destruct() { $this->mysql->close(); } public function setContent($content, $language, $nick, $description) { global $config; if (!is_subclass_of($config['id_generator'], 'IdGeneratorEngine')) { header('HTTP/1.0 503 Service Unavailable'); die('Invalid config'); } $name = $config['id_generator']->generateId(); if ($stmt = $this->mysql->prepare( 'INSERT INTO ' . $this->table . ' (pid, nick, language, content, description, remote) VALUES (?, ?, ?, ?, ?, ?)')) { $stmt->bind_param('ssssss', $name, $nick, $language, $content, $description, $_SERVER["REMOTE_ADDR"]); /* execute query */ if (!$stmt->execute()) { header('HTTP/1.0 503 Service Unavailable'); die('MySQL Error (' . $this->mysql->errno . ') ' . $this->mysql->error); } $stmt->close(); } if (isset($config['short_results_path'])) return $config['short_results_path'] . $name . '.html'; return $config['site_domain'] . $config['site_path'] . 'get.php?p=' . $name; } public function getContent($pid) { global $config; if ($stmt = $this->mysql->prepare( 'SELECT nick, language, content, description, time FROM ' . $this->table . ' WHERE pid = ? LIMIT 1')) { $stmt->bind_param('s', $pid); /* execute query */ if (!$stmt->execute()) { header('HTTP/1.0 503 Service Unavailable'); die('MySQL Error (' . $this->mysql->errno . ') ' . $this->mysql->error); } $stmt->bind_result($nick, $lang, $content, $description, $time); if (!$stmt->fetch()) { header('HTTP/1.0 404 Not Found'); die('No such paste'); } $stmt->close(); $get_url = $config['site_domain'] . $config['site_path'] . 'get.php?p=' . $pid; if (isset($config['short_results_path'])) $get_url = $config['short_results_path'] . $pid . '.html'; $remove_url = $config['site_domain'] . $config['site_path'] . 'remove.php?p=' . $pid . '&t=' . $this->generateToken($pid); echo PastifyText($content, $lang, $description, $get_url, $remove_url); } } public function delContent($pid) { if ($stmt = $this->mysql->prepare('DELETE FROM ' . $this->table . ' WHERE pid = ? LIMIT 1')) { $stmt->bind_param('s', $pid); /* execute query */ if (!$stmt->execute()) { header('HTTP/1.0 503 Service Unavailable'); die('MySQL Error (' . $this->mysql->errno . ') ' . $this->mysql->error); } } } } ?>