【问题标题】:Is there any reason why a urlencoded string would throw a 404 error?urlencoded 字符串是否会引发 404 错误?
【发布时间】:2013-02-04 20:12:31
【问题描述】:

我正在尝试传递两个参数,其中一个是电子邮件地址。

路线(也尝试过 (:any)

Route::any(
    'user/confirm_request/(:any?)/(:any?)', array(
                                             'uses' => 'user@confirm_request'));

控制器(也尝试过 post_confirm_request()

public function get_confirm_request($email, $term)
{ 
  //do stuff
}

最终,我要做的就是点击该路线并使用这两个参数向用户发送电子邮件。但我不断收到 404 错误。电子邮件被编码,路由如下所示:

/email%40gmail.com/someString

我能够取出 %40 并且它工作得很好(只是给我发送邮件的错误)。 为什么 %40 会抛出 404 错误?会不会是 Laravel 的东西?

【问题讨论】:

    标签: urlencode laravel url-encoding laravel-3


    【解决方案1】:

    一种解决方案是将电子邮件作为 url 参数传递。

    首先,从路由中删除第二个参数。 (如果需要,您也可以同时删除两者。)

      Route::any('user/confirm_request/(:any?)', array('uses' => 'user@confirm_request'));
    

    然后将电子邮件附加到操作 url,类似这样..

      $url = URL::base() . '/user/confirm_request?email=' . $email;
    

    然后在您的控制器中,您可以获取该数据。

      public function get_confirm_request()
      { 
        $email = Input::get('email');
      }
    

    【讨论】:

      猜你喜欢
      • 2014-04-14
      • 2020-05-26
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2015-10-18
      • 1970-01-01
      相关资源
      最近更新 更多