withPersistentSessions(true)->build(); $keyspace = 'glink'; $session = $cluster->connect($keyspace); $url = $_GET["url"]; if (isset($_GET["restricted"])) { $is_geo = 1; } else { $is_geo = 0; } if ($is_geo == 1) { $radius = $_GET["radius"]; $latitude = $_GET["latitude"]; $latitude = doubleval($latitude); $longitude = $_GET["longitude"]; $longitude = doubleval($longitude); } $matches = preg_match('/^http(s)*:\\/\\/[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)+$/',$url); if (($matches == 0) || ($matches == false)) { printf("The URL entered was invalid. Please try again."); return; } $shortlink = $_GET["glink"]; if ($shortlink != '') { $matches_shortlink = preg_match('/^[a-zA-Z]+$/',$shortlink); if (($matches_shortlink == 0) || ($matches_shortlink == false)) { printf("The GLink entered was invalid. The GLink can only contain letters. Please try again."); return; } } else { /* generate a random shortlink */ gen_shortlink: $rand_string = gen_rand_shortlink(6); /* the function is defined at the start of this file */ $shortlink = $rand_string; /* Check if shortlink is already taken by querying the database */ $statement = $session->prepare('SELECT url FROM data WHERE shortlink=? ALLOW FILTERING'); $result = $session->execute($statement,array('arguments' => array($shortlink))); if ($result->count() != 0) { goto gen_shortlink; } } //$statement = new Cassandra\SimpleStatement('SELECT name FROM data WHERE id=5'); $statement = $session->prepare('SELECT url FROM data WHERE shortlink=? ALLOW FILTERING'); $options = array('arguments' => array($shortlink)); $result = $session->execute($statement,$options); if ($result->count() != 0) { printf('That GLink is already taken. Please try another one.'); exit; } $rand_num = rand(0,99999999); $statement = $session->prepare('INSERT INTO data (id, url, shortlink, is_geo, radius, latitude, longitude, when_created) VALUES (?,?,?,?,?,?,?,toTimestamp(now())) USING TTL 20'); if ($is_geo == 1) { $options = array($rand_num,$url,$shortlink,boolval($is_geo),intval($radius), $latitude, $longitude); } else { $options = array($rand_num,$url,$shortlink,boolval($is_geo),null,null,null); } $result = $session->execute($statement,array('arguments' => $options)); //$stringRepresentation= json_encode($result[0]); //printf("%s\n\n\n",$stringRepresentation); //foreach($result as $row) { // if (is_null($row)) { // printf('Unsuccessful'); // } else { printf('Successful: The URL you entered was: %s and your GLink is: https://glink.zip/%s', $url,$shortlink); // } //} //printf('Done'); ?>