Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class server {
- public $ch;
- public $ip;
- public $port;
- public $enabled;
- public $prev;
- function check() {
- $socket = @fsockopen($this->ip, $this->port, $errno, $errstr, 0.1);
- $running;
- if ($socket) {
- $running = true;
- fclose($socket);
- } else
- $running = false;
- if ($running && !$this->prev) {
- $this->enabled = date('Y-m-d H:i:s');
- $this->prev = 1;
- return true;
- }
- if (!$running && $this->prev) {
- $this->enabled = NULL;
- $this->prev = 0;
- return true;
- }
- return false;
- }
- }
- $host = "localhost";
- $user = "root";
- $password = "root";
- $dbName = "metin";
- $dsn = 'mysql:host='.$host.';dbname='.$dbName;
- $options = array(
- PDO::ATTR_PERSISTENT => true,
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
- );
- $db = new PDO($dsn, $user, $password, $options);
- $stmt = $db->prepare("SELECT * FROM czech");
- $stmt->execute();
- $result = $stmt->fetchAll(PDO::FETCH_CLASS, "server");
- $changed = array();
- foreach ($result as $server) {
- if ($server->check())
- $changed[] = $server;
- }
- if (!empty($changed)) {
- $enabled;
- $prev;
- $ch;
- try {
- $db->beginTransaction();
- $stmt = $db->prepare("UPDATE czech SET enabled=:enabled, prev=:prev WHERE ch=:ch");
- $stmt->bindParam(':enabled', $enabled);
- $stmt->bindParam(':prev', $prev);
- $stmt->bindParam(':ch', $ch, PDO::PARAM_INT);
- foreach ($changed as $server) {
- $enabled = $server->enabled;
- $ch = $server->ch;
- $prev = $server->prev;
- $stmt->execute();
- }
- $db->commit();
- } catch (PDOException $ex) {
- echo $ex->getMessage();
- $db->rollBack();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement