Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com PDO


yuhyuuki

Pergunta

Olá, estou criando um sistema basico de login e cadastro com PHP e MySQ (PHPMyAdmin) e utilizando a ferramenta PDO para conexao e acesso ao banco de dados.

Tudo ocorre bem porem, ao cadastrar um usuario ele cadastra com sucesso mas aprensenta uma mensagem de erro dizendo que as variaveis "$logarray" e "$emailarray" não estão definidas. E eu preciso delas para verificar se o login ou email já esta cadastrado.

<?php
// Conexao do Banco.
$con = new PDO("mysql:host=localhost;dbname=loja", "root", "");
// Variaveis pegando info do formulario.
$login = $_POST["user"];
$senha = $_POST["pass"];
$email = $_POST["email"];
// Inserindo os dados na variavel query
$query = $con->prepare("INSERT INTO login(user,pass,email) values(:user ,:pass ,:email)"); 
$query->bindParam(':user', $login);
$query->bindParam(':pass', $senha);
$query->bindParam(':email', $email);
// Colocando os dados em um array
// $row = $query->fetch(PDO::FETCH_OBJ)
while($row = $query->fetch()){
	$logarray = $row['user'];
	$passarray = $row['pass'];
	$emailarray = $row['email'];}
// Verificando se campo está nulo.
	if($login == "" || $login == null){
		echo"<script type='text/javascript'>
		alert('Oops..., Campo Login esta Vazio!');</script>";
	}else if($senha == "" || $senha == null){
		echo"<script language='javascript' type='text/javascript'>
		alert('O campo senha deve ser preenchido')</script>";
	}else if($email == "" || $email == null){
		echo"<script language='javascript' type='text/javascript'>
		alert('O campo email deve ser preenchido');window.location.href='cadastro.html';</script>";
	}else{
	// Verifica se já existe
		if($logarray == $login){
			echo"<script language='javascript' type='text/javascript'>
			alert('Esse login já existe');window.location.href='cadastro.html';</script>";
			die();

		}else if ($emailarray == $email){
			echo"<script language='javascript' type='text/javascript'>
			alert('Esse email já existe');window.location.href='cadastro.html';</script>";
			die();
		}
		else{
		// Executa a query INSERT
			$insert =$query->execute();
			if($insert){
				echo"<script language='javascript' type='text/javascript'>
				alert('Usuario cadastrado com sucesso!');window.location.href='index.html'</script>";
			}else{
				echo"<script language='javascript' type='text/javascript'>
				alert('Usuario não cadastrado!');window.location.href='cadastro.html'</script>";
			}
		}
	}
?>

Obrigado!

------------------------

Achei uma Solução:

Ao invez de usar assim:

while($row = $query->fetch()){
	$logarray = $row['user'];
	$passarray = $row['pass'];
	$emailarray = $row['email'];}

Usar deste jeito:

$row = $query->fetch(PDO::FETCH_ASSOC);
	$logarray = $row['user'];
	$passarray = $row['pass'];
	$emailarray = $row['email'];

Resolvido por mim mesmo ^^.

Editado por yuhyuuki
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...