2014-12-01 124 views
0

我在codeigniter框架中使用cloudflare,并且在操作完成时尝试将脚本重定向到另一个页面时遇到奇怪的问题,服务器使用抛出错误520(cloudflare server)重定向在php中抛出520错误CloudFlare

$input = $this->input->post(); 

if(!empty($input)){ 

     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('email', 'Email', 'required|email'); 
     $this->form_validation->set_rules('password', 'Password', 'required'); 

     if ($this->form_validation->run() == TRUE) 
     { 
      $r = $this->userModel->login($input["email"], $input["password"]); 
      if($r["success"] == "t"){ 

       $this->userModel->setSession($r["_user_id"], $r["token"]); 

       //Both redirect methods does not works 
       //echo '<html><head><META http-equiv="refresh" content="0;URL='.$this->glob->exec_redirect().'"></head><body></body></html>'; 
       redirect($this->glob->exec_redirect()); 
       die(); 
      }else{ 
       $data["errors"] = $r["message"]; 
      } 
     }else 
      $data["errors"] = validation_errors(); 
    } 
    $this->load->view("user/login", $data); 

此脚本工作正常,没有cloudflare,也没有重定向功能的脚本工作良好的cloudflare。 演示:

Sample which throws error

用户:测试

:TEST12

有时候你应该尝试更多的再一次崩溃

Sample without redirect

工作正常,用户登录只需重定向曼努埃尔。

问候。

+1

尝试删除'die()'? – w00d 2014-12-01 16:52:46

+0

我做到了,它没有工作 – 2014-12-01 17:05:28

回答

1

我登录了,它工作。然后,我注销并尝试再次登录,我看到您正在谈论的520错误。

我认为这与您的重定向网址有关。

https://www.plac24.com/user/login?rdr=http%3A%2F%2Fwww.plac24.com%2F 

当您将它们重定向到您的网站时,是否需要http://?

+0

有几个页面正在使用https这样的登录,注册...,他们被迫在https旁边别人强制HTTP! – 2014-12-01 16:48:08

+0

问题似乎是表单动作,它只是#这意味着相同的网址:'https://www.plac24.com/user/login?rdr = http%3A%2F%2Fwww.plac24.com%2F'我将它替换为'https:// www.plac24.com/user/login',现在它工作正常:) – 2014-12-02 10:02:37

0

你是否在做任何发送大型cookie或头文件的事情?这可能是因为&支持可以帮助排除故障。

+0

$ this-> userModel-> setSession()方法保存所有必要的会话! – 2014-12-01 21:34:08