function post_send() { $this->setTitle('Recuperar senha'); $c = new Criteria(); $c->addCondition($this->email, '=', $_POST['email']); $model = $this->model; $user = $model::getFirst($c); if ($user) { $d = new DateTime(); $agora = $d->format('Ymdhi'); # email: $headers = "From: nao-responder@" . $_SERVER['HTTP_HOST'] . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; $subject = "Recuperação de senha em " . $_SERVER['HTTP_HOST']; $message = "Olá,<p>Alguém (provavelmente você) pediu para mudar a senha da sua conta em "; $message .= $_SERVER['HTTP_HOST'] . ".</p>"; $message .= "<p>Para confirmar este pedido e cadastrar uma nova senha, vá ao seguinte endereço web: "; $message .= "<a href='" . $_SERVER['HTTP_HOST'] . "/" . SITE_PATH . "/index.php?m=Login&p=reset&recuperar=" . Cript::cript(Config::get('salt') . $user->{$model::PK}) . "&d=" . urlencode(Cript::cript($agora)) . "'>Gerar uma nova senha</a></p>"; $message .= '<p>Ou copie este endereço e cole no seu navegador: ' . $_SERVER['HTTP_HOST'] . "/" . SITE_PATH . "/index.php?m=Login&p=reset&recuperar=" . Cript::cript(Config::get('salt') . $user->{$model::PK}) . "&d=" . urlencode(Cript::cript($agora)) . '</p>'; mail($_POST['email'], $subject, $message, $headers); new Msg('Um e-mail foi enviado para ' . $_POST['email'] . ' com as instruções. <br>Caso não tenha recebido, verifique sua caixa de spam e tente novamente.'); $this->go('Login', 'login'); } else { new Msg('E-mail não cadastrado!', 3); } }
/** * Constrói uma URL no padrão lazyphp. * * <b>Exemplo de uso 1:</b><br> * <?php echo $this->Html->getUrl('Usuario', 'all');?> * * <b>Retorna se rewriteURL estiver definido: </b><br> * /Usuario/all<br> * * <b>Retorna se rewriteURL NÃO estiver definido: </b><br> * index.php?m=Usuario&p=all<br> * * <b>Exemplo de uso 2:</b><br> * <?php echo $this->Html->getUrl('Usuario', 'all', array('id' => 1));?> * * <b>Retorna se rewriteURL estiver definido: </b><br> * /Usuario/all/?id=1<br> * * <b>Retorna se rewriteURL NÃO estiver definido: </b><br> * index.php?m=Usuario&p=all&id=1<br> * * @param String $controller * @param String $action * @param array $urlParams * @return string */ public function getUrl($controller, $action, array $urlParams = NULL) { $link = ''; $url = SITE_PATH . '/?m=' . $controller . '&p=' . $action; if (Config::get('rewriteURL')) { $url = SITE_PATH . '/' . $controller . '/' . $action . '/'; } $link .= $url; if (is_array($urlParams)) { $carr = Config::get('criptedGetParamns'); if (is_array($carr)) { foreach ($carr as $param) { foreach ($urlParams as $key => $value) { if (is_int($key) && $param === $key + 1) { $urlParams[$key] = Cript::cript($value); continue; } elseif ($param === $key) { $urlParams[$key] = Cript::cript($value); } } } } if (Config::get('rewriteURL')) { foreach ($urlParams as $key => $value) { if (is_int($key)) { $link .= $value . '/'; } else { $link .= $key . ':' . $value . '/'; } unset($urlParams[$key]); } } foreach ($urlParams as $key => $value) { if (is_int($key)) { $urlParams['arg' . ++$key] = $value; } } if (Config::get('rewriteURL') && count($urlParams)) { $link .= '?'; } if (count($urlParams)) { $params = '&' . http_build_query($urlParams); $link .= $params; } } return str_replace('//', '/', $link); }
/** * Redireciona para uma´página do sistema (Controller e seu método). * (opcional) Utilize um array associativo para enviar parâmetros adicionais via GET. * * Exemplo 1: Para se construir a url /Produto/all/?categoria=Foo&tipo=Bar * $this->go('Produto','all', array('categoria'=>'Foo', 'tipo'=>'Bar') ) * * Exemplo 2: Para se construir uma URL para /Index/index * $this->go('Index','index' ) * * @param String $controller * @param String $action * @param array $urlParams */ protected function go($controller, $action, $urlParams = array(), $name = NULL) { if (isset($_GET['ajax']) || isset($_POST['ajax'])) { echo Msg::getMsg(); exit; } $carr = Config::get('criptedGetParamns'); if (is_array($carr)) { foreach ($carr as $param) { foreach ($urlParams as $key => $value) { if (is_int($key) && $param === $key + 1) { $urlParams[$key] = Cript::cript($value); continue; } elseif ($param === $key) { $urlParams[$key] = Cript::cript($value); } } } } $link = '?m=' . $controller . '&p=' . $action; if (Config::get('rewriteURL')) { $link = SITE_PATH . '/' . $controller . '/' . $action . '/'; } $i = 1; if (Config::get('rewriteURL')) { foreach ($urlParams as $key => $value) { if ($key == 'param' . $i++ || is_int($key)) { $link .= $value . '/'; } } } if (Config::get('rewriteURL') && count($urlParams)) { $link .= '?'; } if (count($urlParams)) { $link .= '&' . http_build_query($urlParams); } $link = str_replace('//', '/', $link); if ($name) { $link .= "#{$name}"; } header('Location:' . $link); exit; }