Jump to content
Fórum Script Brasil
  • 0

Problema com PDO


yuhyuuki

Question

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 ^^.

Edited by yuhyuuki
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...