문제

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?

도움이 되었습니까?

해결책

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top