密码重置代码示例请求解析URL

时间:2011-07-08 08:17:25

标签: php codeigniter uri password-recovery

我正在使用Codeigniter进行开发并使用与Amazon类似的模型进行密码重置:用户点击我发送电子邮件的链接,这会导致启动相应视图的控制器。但是出于安全原因,我需要将一些令牌附加到uri的末尾。我在哪里拦截Codeigniter中的uri以删除令牌?我很感激一个演示这个的代码片段。 非常感谢提前。

1 个答案:

答案 0 :(得分:1)

您可以发送www.yousite.com/index.php/password/reset/116wef4wef4325w6e4

之类的网址

在你的控制器密码.php中你有:

class Password extends CI_Controller {

function reset($token)
{
  if(isset($token) AND $token != '')
  {
    $retrived_token = $token; //it's automatically passed by CI to this method.
    //It would output 116wef4wef4325w6e4
    //you may do some validation of it through a model here.
    //ex. if($this->mymodel->validate_token($retrieved_token)
    //{ do something } else { }
  }
}

}

你没有提供有关你的应用程序结构的任何信息,所以我猜你可能只有一个控制器来处理密码。如果不是这种情况,您可以在父控制器内部使用“密码”方法,该方法又需要2个参数,在本例中为“重置”和“令牌”。或者您可以使用自定义路线。如果您提供此信息,我可能会帮助更新我的代码建议。