Ir para conteúdo

Arquivado

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

Neto Gerbi

[Resolvido] isset nao funciona

Recommended Posts

numa tela de login quando digito um usuario nao existente no banco e deixo a senha do mesmo em branco, ou o usuario e a senha em branco, o login ocorre do mesmo jeito!

 

codigo:

<?php
if(isset($_POST["txtUsuario"]) && isset($_POST["txtSenha"]) && $_SERVER["REQUEST_METHOD"] == "POST")
{
	$user = $_POST["txtUsuario"];
	$pswd = $_POST["txtSenha"];

	/* Conecta com um banco de dados MySQL conforme parâmetros enviados (servidor = localhost)*/
	include("Conecta.php");
	
	$query="SELECT U.USERID, U.PSWD FROM USUARIOS U WHERE U.USERID = '".$user."'";
	$result = mysql_query($query) or die(mysql_error()); 
	$row=mysql_fetch_array($result);
	mysql_close();
	
		if(strcmp($row['PSWD'],$pswd)==0){

			//inicia sessão
			$_SESSION['user'] = $user;
			header("Location: controle.php");
		}else{
			echo "<center><h1>Nome de Usuário ou senha inválidos</h1><br></center>";
			echo "<center><a href='login.php'><h2>Voltar</h2></a></center>";
		}
}


?>

quando o usuario nao existe no banco, o codigo compara o retorno vazio do banco com o campo nao preenchido no post!!!

 

ou seja... o meu if com os isset nao estão funcionando tbm!

 

O que eu faço?!!??

 

Desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para solucionar o problema de campo vazio, use isset e empty juntos.

Exemplo:

 

if ( isset($_POST['campo']) AND !empty($_POST['campo']) ) {
echo 'Variavel $_POST['campo'] setada OU não vazia.';
}else{
echo 'Variavel $_POST['campo'] não setada OU vazia.';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve ter colocado o nome de $_POST diferente do seu INPUT, reveja se não for poste novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para solucionar o problema de campo vazio, use isset e empty juntos.

Exemplo:

 

if ( isset($_POST['campo']) AND !empty($_POST['campo']) ) {
echo 'Variavel $_POST['campo'] setada e não vazia.';
}else{
echo 'Variavel $_POST['campo'] não setada OU vazia.';
}

<?php
if($_POST['campo']){ //[isset?not empty?] true [else] false
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca assim:

 

if (($_POST['txtUsuario'] == "") || ($_POST['txtSenha'] == "")) {
			echo "<center><h1>Nome de Usuário ou senha inválidos</h1><br></center>";
			echo "<center><a href='login.php'><h2>Voltar</h2></a></center>";
			die;
}

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

isset verifica se a variável é existente.

 

nesse caso, a variável sempre existirá, independente de estar vazia ou não

 

o correto é verificar também, após o isset, se a vasriável possui dados.

 

o uso da função empty ou verificação de string vazia, resolve a questão

Compartilhar este post


Link para o post
Compartilhar em outros sites

aee galera... valeuuu deu certo aki!!!

 

eu ainda sou novo em php e nao conhecia o comando empty...

e pelo que entendi, o comando isset serve para ver se a variavel existe e nao se ela esta vazia! correto!?

 

valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aee galera... valeuuu deu certo aki!!!

 

eu ainda sou novo em php e nao conhecia o comando empty...

e pelo que entendi, o comando isset serve para ver se a variavel existe e nao se ela esta vazia! correto!?

 

valeu galera!

Isso mesmo, para isso existe a função empty()

Compartilhar este post


Link para o post
Compartilhar em outros sites
Para solucionar o problema de campo vazio, use isset e empty juntos.

Exemplo:

if ( isset($_POST['campo']) AND !empty($_POST['campo']) ) {

echo 'Variavel $_POST['campo] setada OU não vazia.';

}else{

echo 'Variavel $_POST['campo] não setada OU vazia.';

}

Sei que faz tempo que este tópico foi aberto, mas tive que me logar no fórum só pra agradecer a este comentário. Ele resolveu um problema que estava me irritando muito. Vlw, André!

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.