public function send($to, $message) { $retVal = Db::query(['INSERT INTO "pms" ("from","to","message") VALUES (:id,:to,:message)', [':id' => $_SESSION['id'], ':to' => $to, ':message' => $message]], Db::FETCH_ERRSTR); $wentWell = $retVal == Db::NO_ERRSTR; if ($wentWell && $this->user->wantsPush($to) && Config\PUSHED_ENABLED) { try { $pushed = Pushed::connectIp(Config\PUSHED_PORT, Config\PUSHED_IP6); $msg = json_encode(['messageFrom' => html_entity_decode(User::getUsername(), ENT_QUOTES, 'UTF-8'), 'messageFromId' => (string) $this->user->getId(), 'messageBody' => substr(html_entity_decode($message, ENT_QUOTES, 'UTF-8'), 0, 2000)]); //truncate to 2000 chars because of possibile service limitations $pushed->push($to, $msg); } catch (PushedException $e) { Db::dumpException($e); } } return $retVal; }
public static function upsertGuest() { try { Db::getDb()->beginTransaction(); $stmt = Db::getDb()->prepare('UPDATE guests SET last = NOW() WHERE remote_addr = :ip'); $stmt->execute([':ip' => $_SERVER['REMOTE_ADDR']]); $stmt = Db::getDb()->prepare('INSERT INTO guests(remote_addr, http_user_agent) SELECT :ip, :ua WHERE NOT EXISTS (SELECT 1 FROM guests WHERE remote_addr = :ip)'); $stmt->execute([':ip' => $_SERVER['REMOTE_ADDR'], ':ua' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '']); Db::getDb()->commit(); } catch (PDOException $e) { Db::dumpException($e); } }