Php 变量操作名zend
我正在尝试创建一个密码重置链接,我想知道是否可以使用令牌的名称进行操作。因此,我将访问以下链接:site.com/auth/resetpassword/token 我在网上找不到任何文件 我正在生成我的令牌,如下所示:Php 变量操作名zend,php,zend-framework,Php,Zend Framework,我正在尝试创建一个密码重置链接,我想知道是否可以使用令牌的名称进行操作。因此,我将访问以下链接:site.com/auth/resetpassword/token 我在网上找不到任何文件 我正在生成我的令牌,如下所示: $lengthSalt = 24; $token = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, $lengthSalt); 你需要定义正确的路线 Zend 1.10的示例: 这取决于您定义路线的
$lengthSalt = 24;
$token = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, $lengthSalt);
你需要定义正确的路线 Zend 1.10的示例: 这取决于您定义路线的方式,有多种方法 编辑:如果要使用默认路由,则需要使用以下模式:www.yoursite.com/controller/action/var1/value1/var2/value2 因此,对于您来说,它应该是site.com/auth/resetpassword/token/[token],在这里您将您的令牌值放在[token]的位置 然后,您可以在控制器中访问变量:
$token = $this->getRequest()->getParam('token');
为什么要使用变量操作名称?你的令牌是一个参数,不是一个动作。我猜这是个错误。从URL中,我猜“resetpassword”是一个操作名。@MaciejJaśniaczyk resetpassword是一个操作名,是的。我就是这样做的,它不起作用:$password=new Zend_Controller_Router_Route('/auth/resetpassword/reset/:token',array('Controller'=>'Forgotpassword',action'=>'reset');访问auth/forgotpassword/reset/token/asdadasada不会显示任何内容(我在token上放置了一个var_转储)。“auth”是模块,不是控制器。那么,你能解释一下到底是什么不起作用吗?你在哪个url上测试这个(包括参数)?操作启动是否正常?站点/auth/forgotpassword/reset/正在工作。site/auth/forgotpassword/reset/token/[token]它不工作。是的,动作正常。那么什么不起作用?你使用标准路线吗?在这种情况下,auth是您的控制器,forgot password是action,reset是什么?在我之前参与过这个项目的人,创建了如下路由:$all=new Zend\u controller\u Router\u Route('/auth/:controller/:action',array('controller'=>'index',action'=>'index');在此之后,我添加了如上所示的路线。
$token = $this->getRequest()->getParam('token');