Ir para conteúdo

Arquivado

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

Raul Bismarck

[Resolvido] Logins iguais

Recommended Posts

Boa tarde. Eu tenho um formulário que cadastra um usuário no banco de dados (Mysql) tudo bonitinho e certinho.

Mas eu queria o seguinte: não deixar eu cadastrar dois logins iguais.

Ex: eu cadastrei o login "admin", se eu tentar cadastrar outro login chamado "admin", gera um erro.

 

Segue o código abaixo:

 

<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>

 

<?php

if(!$_SESSION["login"])

die("<h3>Você não tem autorização para entrar nesta página!</h3>");

else

?>

 

<form method="post">

<table>

 

<tr>

<td><b>CADASTRAR RELATOR</b></td>

</tr>

 

<tr>

<td>Nome Completo:*</td>

<td><input type="text" name="nome" size="40"></input></td>

</tr>

 

<tr>

<td>CPF:*</td>

<td><input type="text" name="cpf" size="9" maxlength="11"></input>(Apenas Números)</td>

</tr>

 

<tr>

<td>E-mail:*</td>

<td><input type="text" name="email" size="40"></input></td>

</tr>

 

<tr>

<td>Ramal:</td>

<td><input type="text" name="ramal" size="4" maxlength="4"></input></td>

</tr>

 

<tr>

<td>Departamento:*</td>

<td><input type="text" name="departamento" size="20"></input></td>

</tr>

 

<tr>

<td>Login:*</td>

<td><input type="text" name="loginREL" size="25"></input></td>

</tr>

 

<tr>

<td>Senha:*</td>

<td><input type="password" name="senhaREL" size="25"></input></td>

</tr>

 

<tr>

<td><input type="submit" name="enviar" value="Cadastrar"></input></td>

</tr>

 

</table>

 

</form>

 

</body>

 

<?php

include ("conexao.php");

?>

 

<?php

if($_POST["enviar"])

{

$nome = $_POST["nome"];

$cpf = $_POST["cpf"];

$email = $_POST["email"];

$ramal = $_POST["ramal"];

$departamento = $_POST["departamento"];

$loginREL = $_POST["loginREL"];

$senhaREL = $_POST["senhaREL"];

 

if(empty($nome) OR empty($cpf) OR

empty($email) OR empty($departamento) OR

empty($loginREL) OR empty($senhaREL)){

echo "<script>

alert('* Campos obrigatórios!');

 

</script>";

exit;

 

}

 

$insert="INSERT INTO relatores(codigo,nome,cpf,email,ramal,departamento,loginREL,senhaREL) VALUES(NULL,'$nome','$cpf','$email','$ramal','$departamento','$loginREL','$senhaREL')";

mysql_query($insert,$conexao);

echo "Dados inseridos com sucesso!";

}

?>

 

<br />

<a href='relator.php'><img src="voltar.png"></img></a>

 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um SLELECT e conte quantos registros com aquele login tem:

<?php
if($_POST["enviar"])
{
$nome = $_POST["nome"];
$cpf = $_POST["cpf"];
$email = $_POST["email"];
$ramal = $_POST["ramal"];
$departamento = $_POST["departamento"];
$loginREL = $_POST["loginREL"];
$senhaREL = $_POST["senhaREL"];

if(empty($nome) OR empty($cpf) OR 
empty($email) OR empty($departamento) OR 
empty($loginREL) OR empty($senhaREL)){
echo "<script>
alert('* Campos obrigatórios!');

</script>";
exit; 

/* - SELECT - */
$sql = "SELECT * FROM `relatores` WHERE `login` = '$loginREL'";
$query = mysql_query( $sql );
$total_registered = mysql_num_rows( $query );

if( $total_registered > 0 ){
echo "Login já registrado! Escolha outro.";
}else{
$insert="INSERT INTO relatores(codigo,nome,cpf,email,ramal,departamento,loginREL,senhaREL) VALUES(NULL,'$nome','$cpf','$email','$ramal','$departamento','$loginREL','$senhaREL')";
mysql_query($insert,$conexao);
echo "Dados inseridos com sucesso!";
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tinha vista, mas coloquei o nome do campo errado, coloquei login, mas é loginREL.

Troque a var $sql, por isto:

$sql = "SELECT * FROM `relatores` WHERE `login` = '$loginREL'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tinha vista, mas coloquei o nome do campo errado, coloquei login, mas é loginREL.

Troque a var $sql, por isto:

$sql = "SELECT * FROM `relatores` WHERE `login` = '$loginREL'";

 

 

Mano, não funcionou não, tem como você me mandar o código inteiro até o </html>?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem nada haver com o HTML.

Faça o seguinte, mude esta outra linha ($query) ativando os erros SQL.

Havia esquecido disso:

$query = mysql_query( $sql ) or die ( mysql_error() );

Poste aqui o que aparecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem nada haver com o HTML.

Faça o seguinte, mude esta outra linha ($query) ativando os erros SQL.

Havia esquecido disso:

$query = mysql_query( $sql ) or die ( mysql_error() );

Poste aqui o que aparecer.

 

Simplesmente não aparece nada e também não cadastra. Eu to usando o código abaixo:

 

<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>

 

<?php

if(!$_SESSION["login"])

die("<h3>Você não tem autorização para entrar nesta página!</h3>");

else

?>

 

<form method="post">

<table>

 

<tr>

<td><b>CADASTRAR RELATOR</b></td>

</tr>

 

<tr>

<td>Nome Completo:*</td>

<td><input type="text" name="nome" size="40"></input></td>

</tr>

 

<tr>

<td>CPF:*</td>

<td><input type="text" name="cpf" size="9" maxlength="11"></input>(Apenas Números)</td>

</tr>

 

<tr>

<td>E-mail:*</td>

<td><input type="text" name="email" size="40"></input></td>

</tr>

 

<tr>

<td>Ramal:</td>

<td><input type="text" name="ramal" size="4" maxlength="4"></input></td>

</tr>

 

<tr>

<td>Departamento:*</td>

<td><input type="text" name="departamento" size="20"></input></td>

</tr>

 

<tr>

<td>Login:*</td>

<td><input type="text" name="loginREL" size="25"></input></td>

</tr>

 

<tr>

<td>Senha:*</td>

<td><input type="password" name="senhaREL" size="25"></input></td>

</tr>

 

<tr>

<td><input type="submit" name="enviar" value="Cadastrar"></input></td>

</tr>

 

</table>

 

</form>

 

</body>

 

<?php

include ("conexao.php");

?>

 

<?php

if($_POST["enviar"])

{

$nome = $_POST["nome"];

$cpf = $_POST["cpf"];

$email = $_POST["email"];

$ramal = $_POST["ramal"];

$departamento = $_POST["departamento"];

$loginREL = $_POST["loginREL"];

$senhaREL = $_POST["senhaREL"];

 

if(empty($nome) OR empty($cpf) OR

empty($email) OR empty($departamento) OR

empty($loginREL) OR empty($senhaREL)){

echo "<script>

alert('* Campos obrigatórios!');

 

</script>";

exit;

 

/* - SELECT - */

$sql = "SELECT * FROM `relatores` WHERE `login` = '$loginREL'";

$query = mysql_query( $sql ) or die ( mysql_error() );

$total_registered = mysql_num_rows( $query );

 

if( $total_registered > 0 ){

echo "Login já registrado! Escolha outro.";

}else{

$insert="INSERT INTO relatores(codigo,nome,cpf,email,ramal,departamento,loginREL,senhaREL) VALUES(NULL,'$nome','$cpf','$email','$ramal','$departamento','$loginREL','$senhaREL')";

mysql_query($insert,$conexao);

echo "Dados inseridos com sucesso!";

}

 

}}

?>

 

<br />

<a href='relator.php'><img src="voltar.png"></img></a>

 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Juro, desculpa, fiz bobagem, no post #4 que fiz, disse que iria fazer as mudanças mas não fiz.

Troque aquela linha que eu disse por isso:

$sql = "SELECT * FROM `relatores` WHERE `loginREL` = '$loginREL'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está nesse if:

if(empty($nome) OR empty($cpf) OR 
empty($email) OR empty($departamento) OR 
empty($loginREL) OR empty($senhaREL)){

Você esqueceu de fechá-lo depois do exit.

Tente assim:

<?php
if($_POST["enviar"])
{
$nome = $_POST["nome"];
$cpf = $_POST["cpf"];
$email = $_POST["email"];
$ramal = $_POST["ramal"];
$departamento = $_POST["departamento"];
$loginREL = $_POST["loginREL"];
$senhaREL = $_POST["senhaREL"];

if(empty($nome) OR empty($cpf) OR 
empty($email) OR empty($departamento) OR 
empty($loginREL) OR empty($senhaREL)){
echo "<script>
alert('* Campos obrigatórios!');

</script>";
exit;
}

/* - SELECT - */
$sql = "SELECT * FROM `relatores` WHERE `login` = '$loginREL'";
$query = mysql_query( $sql ) or die ( mysql_error() );
$total_registered = mysql_num_rows( $query );

if( $total_registered > 0 ){
echo "Login já registrado! Escolha outro.";
}else{
$insert="INSERT INTO relatores(codigo,nome,cpf,email,ramal,departamento,loginREL,senhaREL) VALUES(NULL,'$nome','$cpf','$email','$ramal','$departamento','$loginREL','$senhaREL')";
mysql_query($insert,$conexao);
echo "Dados inseridos com sucesso!";
}

}
?>

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.