Пример #1
0
function hashDecode($hashedUrl)
{
    $urlEncode = new UrlEncode();
    $result = array();
    //No hash was given as input
    if (!$hashedUrl) {
        $result["error"] = "No input given";
    } else {
        $hashedUrl = $urlEncode->parseHash($hashedUrl);
        if ($hashedUrl != -1) {
            $id = $urlEncode->decodeToOriginalUrl($hashedUrl);
            //Database stuff
            global $dbConnStr;
            //This comes from dbConfig.php
            $dbConnection = pg_connect($dbConnStr);
            $query = sprintf("SELECT url FROM urls WHERE id = %d", $id);
            //sprintf to reduce SQL injection attack
            $dbResult = pg_query($query);
            $row = pg_fetch_assoc($dbResult);
            if ($row) {
                $result["originalUrl"] = $row["url"];
            } else {
                //The URL does not exist in our database
                $result["error"] = "Url does not exist: {$hashedUrl}";
            }
        } else {
            $result["error"] = "Hashed url host incorrect";
        }
    }
    return json_encode($result);
}
Пример #2
0
function urlHash($url)
{
    $urlEncode = new UrlEncode();
    $url = $urlEncode->returnUrl($url);
    $result = array();
    global $HOST;
    if (!$url) {
        $result["error"] = "No input given";
    } else {
        //Database stuff
        global $dbConnStr;
        //This comes from dbConfig.php
        $dbConnection = pg_connect($dbConnStr);
        //First try get the id
        $query = sprintf("SELECT id FROM urls WHERE url = '%s'", $url);
        //sprintf to reduce SQL injection attack
        $dbResult = pg_query($dbConnection, $query);
        $row = pg_fetch_assoc($dbResult);
        //The URL does not exist in the DB, so insert it
        if (!$row) {
            $query = sprintf("INSERT INTO urls(url) VALUES('%s') RETURNING id", $url);
            $dbResult = pg_query($dbConnection, $query);
            $row = pg_fetch_assoc($dbResult);
        }
        if ($row) {
            $shortenedUrl = $urlEncode->encodeToShortenedUrl($row["id"]);
            $result["hashedUrl"] = "http://{$HOST}/{$shortenedUrl}";
        } else {
            $result["error"] = "Unspecified error: Please email barry.steyn@gmail.com with details";
        }
    }
    return json_encode($result);
}