Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Bom, antes que vocês percebam eu vou falar.. Sou totalmente novo em PHP, estou "aprendendo" agora.. Sempre tabalhei com desenvolvimento de softwares desktop, usando a linguagem C#..
O meu problema é o seguinte; estou desenvolvendo um sistema de registro e login. No código do arquivo "registro.php", na hora de cadastrar o usuário no banco de dados MySQL, ele informa que o usuário já existe, sendo que não existe, o banco de dados está limpo.
O que ha de errado no código?
<?php
$login = $_POST['login'];
$pwd = MD5($_POST['pswd']);
$dbConnect = mysql_connect('127.0.0.1', 'root', '');
$database = mysql_select_db('dbfs');
$query_select = "SELECT clLogin FROM tbusuarios WHERE clLogin = '$login'";
$select = mysql_query($query_select, $dbConnect);
$array = mysql_fetch_array($select);
$logarray = $array['login'];
if($login == "" || $login == null)
{
echo"<script language='javascript' type='text/javascript'>alert('O campo login deve ser preenchido');window.location.href='registro.html';</script>";
}
else
{
if($logarray = $login)
{
echo"<script language='javascript' type='text/javascript'>alert('Esse login já existe');window.location.href='registro.html';</script>";
die();
}
else
{
$query = "INSERT INTO tbusuarios (clLogin, clSenha) VALUES ('$login', '$pwd')";
$insert = mysql_query($query, $dbConnect);
if($insert)
{
echo"<script language='javascript' type='text/javascript'>alert('Usuário cadastrado com sucesso!');window.location.href='index.html'</script>"; /* index.html = login.html */
}
else
{
echo"<script language='javascript' type='text/javascript'>alert('Não foi possível cadastrar esse usuário');window.location.href='registro.html'</script>";
}
}
}
?>neste seu if está $logarray recebe $login(=) e não comparando(==)
if($logarray == $login)
Então, não sei se você fez assim mesmo, ou só juntou tudo para ficar mais fácil de colocar o código aqui, mas separe a parte dos dados do bd e a conexão em outro arquivo, o porque é meio obvio.
Depois, sugiro que utilize PDO.
E para corrigir o seu problema, propriamente dito, substitua as linhas onde você instancia as variáveis array e logarray por
$num_rows = mysql_num_rows($select);
Note, que nesta linha você terá a variável num_rows com a quantidade de resultados da query, logo, se ele for maior que 0, significa que o login esta em uso, então basta substituir no if correspondente.
http://www.php.net/manual/pt_BR/function.mysql-num-rows.php
Depois que você entender isso, substitua por PDO, como eu já sugeri:
http://www.php.net/manual/pt_BR/book.pdo.php
Até mais.