Pergunta
Qual é o melhor método para fazer o seguinte:Eu tenho a página A com 2 botões (para coisas diferentes) que levam você a uma página de login (página 3). Quando os detalhes de login são preenchidos na página 3, a página que trata os dados é a página 4.Quero que a página 4 mostre coisas dependendo de qual botão foi clicado na página a.Eu li sobre o referenciador http, mas acredito que se eu colocar um referenciador na página 4, ele mostrará a página anterior de onde venho, que é o login.
Como posso resolver isto?Obrigado
Solução
HTTP-Refferer não é a melhor solução para fazer isso. A maneira mais simples é adicionar um pouco de parâmetro para obter a matriz, por exemplo ?clicked_button=2
HTTP-Refferrer pode estar desligado. Além disso, o referente será exibido o mesmo URL para esses botões (ambos estão em uma página)
Editar mediante solicitação: você pode fazer isso sem forma,<button id="button1" onClick = "javascript:location = "page3.php?clicked_button=1"; />
e em page3.php
Basta ler o valor em $_GET['clicked_button']
:
if($_GET['clicked_button'] == 1) ...
Outras dicas
O referente nem sempre é enviado por navegadores e pode ser falsificado (E, neste caso, como ambos os botões estão na mesma página, seria meio inútil) ; Portanto, você não deve depender de estar definido nem correto.
Nesta situação, uma possível solução seria:
- Na página A, adicione alguma variável em seus dois botões
- Curti "
page_login.php?button=1
" - e "
page_login.php?button=2
"
- Curti "
- O login da página receberá essa variável (ou seja,
$_GET['button']
) e armazene -o em um campo oculto da forma - Page 4, por sua vez, receberá essa variável; E você pode usá -lo para saber qual botão foi usado pela primeira vez.
Use uma variável de sessão, por exemplo $_SESSION['clicked_button'] = $the_button
.
Lembre-se de ter um padrão em qualquer caso se essas variáveis não existirem, ou seja, o usuário interfere no seu formulário...mas você deveria usar métodos para evitar isso de qualquer maneira;)