[RESOLVIDO] Formulário PHP não envia dados via POST

Olá pessoal.
Bem, estou tendo um problema que não consigo resolver de jeito nenhum, já tentou inumeras soluções mas nenhuma funcionou.
Estou tentando fazer uma tela de login utilizando php. O arquivo login.php contem os um formulário de login que deve enviar as informações via POST para o arquivo dados.php e esse verificaria se os dados estão corretos. Acontece que não consigo recuperar os dados via POST. O GET funciona, mas o POST não. Observando as ferramentas do desenvolvedor do chrome, na aba network percebi que a requisição é enviada via GET mesmo tendo definido como POST. Abaixo o código:

Login.php

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
</head>
<body>
	
	<form  method="POST" action="dados.php">
		<label>Login</label>
		<input type="text" name="usuario" class="form-control" id="usuario" autocomplete="off" autofocus required>

		<label for="senha">Senha</label>
		<input type="password" class="form-control" id="pass" name="pass" autocomplete="off" required>

		<input type="submit" value="Login" id="entrar" name="entrar">
	</form>

		<!-- Scripts -->
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/ocultarSenha.js"></script>

</body>
</html>

Dados.php


<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
</head>
<body>
	<?php
		// Conexão com o banco
		$bdServidor = '127.0.0.1';
		$bdUsuario = 't3carvvo_MatheusEdnei';
		$bdSenha = 't3carvvo_#';
		//$bdUsuario = 'root';
		//$bdSenha = 'root';
		$bdBanco = 't3carvvo_pessoas';

		$conexao = mysqli_connect($bdServidor, $bdUsuario, $bdSenha, $bdBanco);

		if(mysqli_connect_errno($conexao)) {
			echo "Problemas para conectar no banco. Erro:";
			echo mysqli_connect_errno;
			die();
		}

		if (isset($_POST['usuario'])) {
			echo "entrei";
			$usuario = $_POST['usuario'];
		} 
		if (isset($_POST['pass'])) {
			echo "entrei na senha";
			$pass = MD5($_POST['pass']);	
		} 
		//$entrar = $_POST['entrar'];
		$arroba = '@';
		echo $usuario;
		echo $pass;
		$contem = strpos($usuario, $arroba);

		if($contem === false){
			echo "cpf";

		} else {
			echo "email";
			$sqlSelecionarEmail = "SELECT email FROM pessoa WHERE email = '$login'";
			$selecaoEmail = mysqli_query($sqlSelecionarEmail,$conexao);
			$arrayEmail = mysqli_fetch_array($selecaoEmail);
			print($arrayEmail);
			$loginarray = $arrayEmail['email'];

			$sqlSelecionarSenha = "SELECT senha FROM pessoa WHERE senha = '$senha'";
			$selecaoSenha = mysqli_query($sqlSelecionarSenha,$conexao);
			$arraySenha = mysqli_fetch_array($selecaoSenha);
			$senhaArray = $arraySenha['senha'];

			if(($loginarray == $login) and ($senhaArray == $senha) ) {
				echo"
				<script language='javascript' type='text/javascript'>
					alert('Login e senha corretos');
					window.location.href='dados.php';
				</script>
				";
			} else {
				echo"
				<script language='javascript' type='text/javascript'>
					alert('Login ou senha incorretos');
					window.location.href='dados.php';
				</script>
				";
			}

		}

	?>
</body>
</html>

Já tentou utilizar via Session?

session_start();
$_SESSION[‘usuario’]
$_SESSION[‘pass’]

Tenta alterar o POST para SESSION

Mas nesse caso eu necessito gravar os dados em um banco de dados. Via Session isso seria possível?

Testei com o session e ficou no mesmo, ainda não consigo pegar os valores. Recebo a mensagem: Notice : Undefined variable: usuario

Antes de realizar a conexão, colocando
echo $_POST[‘usuario’];

Ele encontra o usuario digitado na pagina Login.php?
digitei aqui e aparece normalmente

Não, ele não chega a encontrar, é como se o usuário estivesse vazio. Qual ambiente esta utilizando?

Estou utilizando o WampServer,
Segue alguns print,

Não terá a conexão com o banco, mas, ele deu um echo


É, é estranho. Aqui eu também consigo imprimir os dados mas quando eu os salvo em uma variável para fazer consultar no banco eles me retornam:

Warning : mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 39

Warning : mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 40

Warning : mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 46

Warning : mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 47

Notice : Undefined variable: usuario in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 50

Notice : Undefined variable: pass in C:\xampp\htdocs\t3carvvo_tarefa1\dados.php on line 50

Neste campo não deveria ser ‘$usuario’" em vez de ‘$login’" ?

Em momento algum você declara $login somente $usuario

O select está trazendo null com login

SELECT email FROM pessoa WHERE email = ‘’

E aqui não deveria ser $pass?

É, foram algumas modificações que eu fiz, mas eu já concertei. Mesmo assim, ele não funciona. Dei um var_dump($_POST); e ele não me retorna array{0}. Aparentemente ele não ta conseguindo pegar os valores enviados.

Me mostra a página completa do Dados.php, quero verificar em quais Echo ele está estrando

Desculpe pela demora, então, depois de muito tentar consegui resolver esse problema com algumas modificações. Eu troquei o nome do arquivo para “valida.php” e a partir dele eu chamei o arquivo “dados.php” salvando o usuário logado na sessão para selecionar as informações dele no banco de dados. Com isso funcionou perfeitamente. Obrigado pelo seu tempo e esforço : ).

1 curtida

me explica direitinho isso?
algumas coisas nao entendi como: a partir dele eu chamei o arquivo “dados.php” salvando o usuário logado na sessão para selecionar as informações dele no banco de dados.

-Estou com o mesmo problema :confused: