Pegar Url da Página

26 views
Skip to first unread message

Carlos Alexandre Zucolli

unread,
Jul 8, 2014, 1:13:32 PM7/8/14
to yii-framew...@googlegroups.com
Boa tarde a todos!
Depois de um bom tempo estou de volta, desculpem o sumiço pois estava trabalhando noutra área e totalmente enforcado.

Estou com um problema...

Tenho um pequeno form de cadastro de newsletter que ao clicar no botão vai até a action e envia um email com o dado coletado. Até aí tudo bem.

O problema é que eu uso um redirect pra index, só que o form fica na main.php que na verdade aparece em todas as páginas.

$this->redirect(array('index'));

Existe uma forma de descobrir em que página estou e voltar pra ela mesma?

Já tentei com refresh(), porém ele pára na action de envio da newsletter.

Controller

public function actionNews()
{

if(isset($_POST['email']))
{

Yii::app()->mailer->IsHTML(true);
Yii::app()->mailer->Host = 'smtp.site.com.br';
Yii::app()->mailer->IsSMTP();
Yii::app()->mailer->SMTPAuth=true;
Yii::app()->mailer->From = 'si...@site.com.br';
Yii::app()->mailer->Port = '587';
Yii::app()->mailer->Username = 'si...@site.com.br';
Yii::app()->mailer->Password = 'si...@site.com.br';
Yii::app()->mailer->AddReplyTo($_POST['email']);
Yii::app()->mailer->AddAddress('si...@site.com.br');
Yii::app()->mailer->Subject = utf8_decode('Cadastro de Newsletter - Supermercados Carioca');
Yii::app()->mailer->Body =  $_POST['email'];
echo Yii::app()->mailer->Send();

Yii::app()->user->setFlash('success','Cadastro efetuado!');
$this->redirect(array('index'));
}
}

View
<?php
echo (CHtml::beginForm());
echo (CHtml::textField('email', '', array('class'=>'form-control formnews', 'placeholder'=>'newsletter')));
echo CHtml::button('enviar',array('id'=>'enviar','class'=>'btn btn-primary btn-sm btn-news', 'submit'=>array('news')));
echo (CHtml::endForm());
?>


Desde já agradeço.

Abraço.

Léo

unread,
Jul 9, 2014, 6:19:40 PM7/9/14
to yii-framew...@googlegroups.com
Boa noite Carlos,

Você pode recuperar a url no Controller fazendo assim Yii::app()->request->urlReferrer.

Att,

Leonardo.

Carlos Alexandre Zucolli

unread,
Jul 9, 2014, 7:10:43 PM7/9/14
to yii-framew...@googlegroups.com
Olá Leonardo, boa noite.

Eu até já tentei assim, mas como o forme está na main quando aciono a actionNews ele pega esta url e não a da página que cliquei no enviar.

Continuo tentando.

Muito obrigado.

- -
Carlos Alexandre Zucolli

NUATO COMUNICAÇÃO
11 3057-1592
11 98644-0328


--
YFB - Yii Framework Brasil
04/2011: Anexos de até 250kb foram autorizados pelos membros da lista. Use com moderação.
---
Você recebeu essa mensagem porque está inscrito no grupo quot;YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/1286f94b-7741-4911-b2fa-c01bf6786a24%40googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Leonardo Antônio

unread,
Jul 9, 2014, 7:53:32 PM7/9/14
to yii-framew...@googlegroups.com
Hum, entendi. Mas então talvez você pode capturar a url da página no main (página que contém o form) e guardar na session do usuário. Aí você puxa ela lá no Controller. 


João Paulo Mesquita

unread,
Aug 7, 2014, 10:36:20 AM8/7/14
to yii-framew...@googlegroups.com
Cria um campo escondido no formulário, e coloca "$this->route" como valor.
No redirect do Controller, você redireciona pro valor desse campo. "$this->route" retorna a url (rota) atual, ou seja, mesmo que ele esteja no main.php, ele vai aparecer a página de onde o usuário irá submeter o form.
Reply all
Reply to author
Forward
0 new messages