PHP在同一页面上重定向,URL中包含不同的参数

时间:2014-10-24 08:08:48

标签: php codeigniter

我有一个页面, 应从URL更改ID和slug。 我正在使用codeigniter并从db

获取随机记录
public function view_post()
 {
      $query = $this->db->query('SELECT * FROM `tbl_links` ORDER BY RAND() LIMIT 0,1');
      $src = $query->row();
      $URL = $src->URL;
      $ID = $src->ID;        

      $tmpurl = parse_url($URL);


      $scheme = $tmpurl['scheme'];
      $host = $tmpurl['host'];

      if(!empty($tmpurl['path']))
      {
           $path = $tmpurl['path'];
           $finalURL = $host . $path;
      }
      else
      {
           $finalURL = $host;
      }

      redirect(base_url() . 'index.php/post/view_post/'.$ID.'/'.$finalURL.'');

 }

我想在具有不同ID的同一页面上重定向 它给出了错误 该页面未正确重定向

我需要在<iframe>

中显示该网址

所需网址

http://localhost:81/link/index.php/post/view_post/1/url comes here

2 个答案:

答案 0 :(得分:0)

检查您的重定向网址是否正确。我认为这可能是错误的,因为你连接的$ finalURL包含$ host name和last。只需评论此重定向行并打印网址即可。尝试检查输出的网址是否正确。

如果url是正确的并且在post控制器中一切都比htaccess问题好。
https://ellislab.com/forums/viewthread/151471/#870328

答案 1 :(得分:0)

这应该这样做

public function view_post($action = NULL)
 {

   if(isset($action)){
      include "http://" . substr($action, strrpos( $action , '/' ));
   } else {

      $query = $this->db->query('SELECT * FROM `tbl_links` ORDER BY RAND() LIMIT 0,1');
      $src = $query->row();
      $URL = $src->URL;
      $ID = $src->ID;        

      $tmpurl = parse_url($URL);


      $scheme = $tmpurl['scheme'];
      $host = $tmpurl['host'];

      if(!empty($tmpurl['path']))
      {
           $path = $tmpurl['path'];
           $finalURL = $host . $path;
      }
      else
      {
           $finalURL = $host;
      }

      redirect(base_url() . 'index.php/post/view_post/'.$ID.'/'.$finalURL.'');
    }
 }