integrating tiny url with codeigniter

662 views Asked by At

I have PHP code for shortening a URL. I want to integrate it with CodeIgniter. How can I do this?
I have 3 pages: index.php, page.php and a .htaccess file and one database backup file.

index.php

<?php
mysql_connect("localhost","root","");
mysql_select_db("test");

$url=$_GET['url'];
$url_details=mysql_fetch_array(mysql_query("select * from tinyurls where shorturl like ('".$url."')"));
if(!empty($url_details)){
    header("location: ".$url_details['actualurl']);
}else{
    echo '<h2 style="color:red">Error 404: Page not found</h2>';
}
?>


page.php

<?php
if(isset($_POST['url'])){
mysql_connect("localhost","root","");
mysql_select_db("test");

    $exist=mysql_fetch_array(mysql_query("select * from tinyurls where actualurl='".$_POST['url']."'"));
    if(empty($exist))
    {
        function get_random_word($length=6){
            $chars='abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $word="";
            for($i=0;$i<$length;$i++){
                $word.=substr($chars,rand(1,strlen($chars)),1);
            }

            $isexist=mysql_fetch_array(mysql_query("select id from tinyurls where shorturl like ('".$word."')"));
            if(empty($isexist)){
                return $word;
            }else{
                return "";
            }
        }

        $tiny_word="";
        while($tiny_word==""){  
            $tiny_word=get_random_word();
        }
        mysql_query("insert into tinyurls set shorturl='".$tiny_word."', actualurl='".$_POST['url']."'");
    }else{
        $tiny_word=$exist['shorturl'];
    }
    echo "TinyURL: http://".$_SERVER['SERVER_NAME']."/tinyurl/".$tiny_word."<br/><br/>";
}
?>
<html>
    <head><title>Shorten URL</title></head>
    <body>
        <form method="post" action="">
            Enter the URL:<br/>
            <input type="text" name="url" style="padding:5px;width:500px"/><br/><br/>
            <input type="submit" style="padding:5px" value="Shorten URL">
        </form>
    </body>
</html>

.htaccess file

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^p\/(.*)$ page.php?q=$1 [L]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

How can I integrate it with CodeIgniter?

1

There are 1 answers

0
stealthyninja On BEST ANSWER

when iam integrating this with codeigniter the controller goes to the home page of my site not to the original url

In your code you're just echoing the URL instead of redirecting it:

header('Location: http://' . $_SERVER['SERVER_NAME'] . '/tinyurl/' . $tiny_word);