Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Zepp

Form enviado mesmo após erro

Recommended Posts

Bom dia!

 

Sou novo tanto no fórum quanto um pouco menos em PHP e acredito que minha dúvida seja algo simples: estou tentando desenvolver um formulário de cadastro simples, com um campo de usuário, email, senha e confirmação de senha, inclusive um recaptcha. Até aqui, tudo bem, mas na hora do envio do Form, mesmo após a página apresentar uma mensagem de erro em Alert ocorre o redirecionamento para a página .php do action do Form, ou seja, ao invés da mensagem de erro barrar o envio (tentei adicionar os comandos die, return false e exit na página.php), o mesmo ainda ocorre. Pesquisei sobre isso e a solução mais viável que encontrei foi utilizar Ajax o qual resolveu meu problema do envio incorreto, mas se não me engano retornava os Alerts de forma incorreta ao invés de simplesmente de somente realizar o envio do Form. Se possível gostaria de uma orientação de como poderia resolver esse problema do Form de uma maneira simples, pois minha única expectativa é que ao ocorrer um erro na validação o mesmo seja apresentado em um Alert e depois só então que todos os campos estiverem validados ele seja enviado e redirecionado para a página PHP. Essa é a idéia. Segue abaixo a expressão que citei linhas a cima e o comando na linha final não cumpre com o esperado.

 

Desde já, obrigado!

if(@!ereg("^[a-zA-Z0-9]{4,14}$", $login)){
		$error = "<script type=\"text/javascript\"> alert ('Digite apenas letras e números.') </script>";
		echo "$error";
		die;

Compartilhar este post


Link para o post
Compartilhar em outros sites

if(@!ereg("^[a-zA-Z0-9]{4,14}$", $login)){
header("login.php?connect=error");
//Ou se quiser: login.php?ltrasnmbrs=apenas_letras_e_nmrs

} else {

//Caso não, adicione as ações de conexão ao usuário.

}

No formulário:

<?

if (isset($_GET['connect'])) {
//se existe a variável connect no URL da página, $_GET['suavariablenourl']
if ($_GET['connect'] == "error") {

echo "Conexão com usuário falhada. Motivo: nome de usuário/senha estão inválidos.";
//Ações...
//Isso é apenas um exemplo.

//Para caso o erro seja de captcha, você pode fazer uma variável no URL assim:
// login?captcha=fail&login=error
// Se você não sabe, $_GET[''] pode pegar variáveis dentro do URL.
// Outro exemplo de variável em URL: index.php?variable=hi
// Se deseja adicionar +1 de uma variável, você deve acrescentar &.
// index.php?variable=hi&outravariable=hiii

}

?>

 

Opa, obrigado! Vou tentar como orientou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.