Ir ao conteúdo

Posts recomendados

Postado

Boa noite, estou tentando fazer um sistema de login no Bootstrap 3, porém eu não estou conseguindo, estou usando Method POST, porém, quando eu coloco o usuario e a senha ele mostra na URL e não faz o login.

 

<form action="" class="" method="POST" enctype="multipart/form-data">
  <div class="form-group">
    <label for="exampleInputEmail2">Email</label>
    <input type="email" class="form-control" name="email" id="email" placeholder="Digite o seu e-mail">
  </div>

  <div class="form-group">
    <label for="exampleInputName2">Senha: </label>
    <input type="password" name="password" required=“required” class="form-control" placeholder="Digite a sua senha">
  </div>

  <input type="submit" id="logar" name="logar" class="btn btn-success" value="Logar"/>
  <a class="btn btn-info" href="?pg=cad_membros" role="button">Cadastre-se</a>
</form>

 

Postado

Usa o F12 pra ver se o problema é no front. Mas pelo visto, está tudo ok. O problema pode ser no back também, aí nao sei se voce pode ir verificar isso. 

 

@edit Tem também o campo action que está vazio, o problema deve estar aí. Aí no caso voce tem que saber pra onde está indo esse formulário, se é pra um Servlet jsp ou jsf ou um Controller em Javascript.

 

Postado

O Action em branco é porque ele esta direcionando para mesma página, ele esta enviando as informações para a url

 

igreja_n/?email=fabiomoreira.rp%40gmail.com&password=123&logar=Logar

Mas eu quero que envie com o Method GET POST

Ele funciona normal no site, porém eu quis colocar no Bootstrap e esta dando esse erro

  • Moderador
Postado

@carecazn Isso acontece quando o formulário que está tentando submeter não remete a lugar nenhum.

Seria interessante você postar o código completo, com a parte do php também.

 

O melhor que você tem a fazer é acrescentar o action="recebeDados.php"  e fazer um teste para ver se realmente está submetendo o formulário. Se bem sucedido, você aplica a técnica ajax usando  o jquery a função  $.ajax() para fazer a requisição de login " na mesma " página.

Postado
  Em 12/06/2016 às 08:21, dif disse:

@carecazn Isso acontece quando o formulário que está tentando submeter não remete a lugar nenhum.

Seria interessante você postar o código completo, com a parte do php também.

 

O melhor que você tem a fazer é acrescentar o action="recebeDados.php"  e fazer um teste para ver se realmente está submetendo o formulário. Se bem sucedido, você aplica a técnica ajax usando  o jquery a função  $.ajax() para fazer a requisição de login " na mesma " página.

Expandir  
if(isset($_POST['logar'])){
	//Recuperando os dados do formulário
	$email  	= trim(strip_tags($_POST['email']));
	$password = trim(strip_tags($_POST['password']));
	
	//Selecionar os registros do banco de dados
	$sql = "SELECT * from cadastro_irmaos WHERE BINARY email=:email AND BINARY password=:password";
	try{
	$result = $connect->prepare($sql);
	$result->bindParam(':email', $email, PDO::PARAM_STR);
	$result->bindParam(':password', $password, PDO::PARAM_STR);
	$result->execute();
	$cont = $result->rowCount();
	if($cont>0){
		while($sessao = $result->FETCH(PDO::FETCH_OBJ)){
	$email  	= $_POST['email'];
	$password = $_POST['password'];
	
	$_SESSION['email'] = $email;
	$_SESSION['password'] = $password;
	$_SESSION['nome'] = $sessao;
	
	echo "<script language='javascript'>window.location='index.php';</script>";
	exit;
		}}else{
		echo"<script language='javascript'>
					alert('Erro ao logar, verifique os dados digitados!');
					window.location='index.php';
					</script>";
	}
	}catch(PDOException $e){
	echo 'ERROR:' .$e->getMessage();}			
}//Fecha if isset
?><!--Fim do Login-->
<?php
if(!isset($_SESSION['nome'])){
	echo '<form class="form-signin" action="" method="POST" enctype="multipart/form-data">
	      <div class="form-group">
        <label for="inputEmail">Email</label>
        <input type="email" class="form-control" name="email" id="email" placeholder="Digite o seu e-mail">
				</div>
				
				<div class="form-group">
					<label for="inputSenha">Senha: </label>
					<input type="password" name="password" required=“required” class="form-control" placeholder="Digite a sua senha">
				</div>
				
				
				<input type="submit" id="logar" name="logar" class="btn btn-success" value="Logar"/>
				<a class="btn btn-info" href="?pg=cad_membros" role="button">Cadastre-se</a></form>';
}else{
	if(isset($_SESSION['nome']))
if($_SESSION['nome']->admin <=1){
echo '<a class="btn btn-info" href="adm/adm.php" role="button">Painel Administrativo</a>';
echo '<a class="btn btn-info" href="?sair" role="button">Sair do Sistema</a>';
}}	
?>

Eu não sei fazer esta função em Ajax, se você puder me ensinar eu agradeço.

  • Moderador
Postado

@carecazn

 

Tome como base de exemplo o seu formulário do post inicial.

No jquery ficaria da seguinte maneira:

 

$(document).ready(function()
    //armazena na variável os dados do formulário com a função serialize()              
	var form = $('.form').serialize();
    var btn = $('.btn');

	//chama o evento de click do mouse no botão de enviar
	btn.on('click',function(event)
        event.preventDefault();   
    	$.ajax({
      		url: 'recebeDados.php',
      		dataType: 'html',
      		data: form
    	}).done(function(data){
      		$('.callback').html(data);
    	}).fail(function(data){
      		$('.callback').html(data);
    	});
    )};                 
)};

Basicamente esta é a mágica!

Explicando de uma maneira bem objetiva, o formulário é armazenado em uma variável, chamando a função de serializar os dados. 

Ao clicar no botão de enviar, é chamada a função $.ajax() que tem como parâmetro, a url na qual será invocado,  o tipo de dado e o dado em si.  veja que em data eu chamei a variável que armazenei logo no inicio!

 

A função done() serve para quando o callback, ou seja, o retorno for bem sucedido, e inserindo em um elemento cujo class é callback o valor da mensagem de sucesso. o mesmo acontece com fail() para caso falhar.

 

Já no arquivo recebeDados.php,  deves retirar algumas coisas e deixar que o retorno seja só em texto.

eu deixaria assim:

 

<?php
	//Recuperando os dados do formulário
	$email  	= trim(strip_tags($_POST['email']));
	$password = trim(strip_tags($_POST['password']));
	
	//Selecionar os registros do banco de dados
	$sql = "SELECT * from cadastro_irmaos WHERE BINARY email=:email AND BINARY password=:password";
	try{
	$result = $connect->prepare($sql);
	$result->bindParam(':email', $email, PDO::PARAM_STR);
	$result->bindParam(':password', $password, PDO::PARAM_STR);
	$result->execute();
	$cont = $result->rowCount();

	if($cont>0){
		while($sessao = $result->FETCH(PDO::FETCH_OBJ)){
	$email  	= $_POST['email'];
	$password = $_POST['password'];
	
	$_SESSION['email'] = $email;
	$_SESSION['password'] = $password;
	$_SESSION['nome'] = $sessao;

	exit;
		}else{
		echo"
		Erro ao logar, verifique os dados digitados!";
			
	}
	}catch(PDOException $e){
	echo 'ERROR:' .$e->getMessage();}			
}//Fecha if isset

Vejo que falta ali uma chamada de conexão com o banco de dados. mas talvez você tenha feito isso em outra linha que não mostrou.

 

Outra coisa que vejo de estranho é que no seu formulário estas usando o multipart/form-data.. se você não está enviando um arquivo com o campo file, não precisa por no formulário!

 

Se tiver mais dúvidas sobre o ajax, leia:  http://api.jquery.com/jquery.ajax/ é em inglês mas dá para entender perfeitamente o funcionamento básico! :thumbsup:

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!