2012-01-05 11 views
0

URLを短縮するためのPHPコードがあります。私はCodeIgniterと統合したい。これどうやってするの?
私は3ページ:index.php,page.php.htaccessファイルと1つのデータベースバックアップファイルを持っています。私はCodeIgniterのとそれを統合することができますどのように小さなURLとcodeigniterを統合する

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ファイル

<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> 

+0

何が問題なのですか? –

+0

iamがこれをcodeigniterと統合すると、コントローラーは元のURLではなく私のサイトのホームページに行きます – Kichu

答えて

0

ときCodeIgniterのコントローラは、あなただけのecho URLをINGの代わりにそれをリダイレクトしているあなたのコードでは

ない元のURLに自分のサイトのホームページに移動してIAMは、この統合:

header('Location: http://' . $_SERVER['SERVER_NAME'] . '/tinyurl/' . $tiny_word); 
関連する問題