Jump to content

Verificar se usuário já existe


CDanielOL
 Share

Go to solution Solved by bmiguel84,

Recommended Posts

Código:

<?php
require_once "config.php";

$login = $_POST["username"];

$sqlquery = "SELECT * FROM users WHERE username = $login";
$sqlresult = mysql_query($sqlquery);
$sqlnum = mysql_num_rows($sqlresult); 

if($sqlnum==1)
{
echo '<script> history.go(-1); alert("Este username já se encontra em uso!");</script>';
}
else
{
$login = $_POST["email"];

$sqlquery = "SELECT * FROM users WHERE email = $login";
$sqlresult = mysql_query($sqlquery);
$sqlnum = mysql_num_rows($sqlresult); 
if($sqlnum==1)
{
	echo '<script> history.go(-1); alert("Este email já se encontra em uso!");</script>';
}
else
{
	$pass = sha1($_POST['password']);
	$user = mysql_real_escape_string($_POST['username']);
	$email = $_POST['email'];
	mysql_query("INSERT INTO users (id, username, email, password) VALUES (NULL, '$user', '$email', '$pass')") or die("Alguma coisa correu mal durante o registo. MySQL erro: ".mysql_error());
	echo "Registo Completo - <a href=\"index.htm\">Entrar na Conta</a>.";
}
}
?>

Código a funcionar: Visitar

Agora preciso que alguém me ajude a descobrir porque dá erro no "mysql_num_rows()".

NOTA: Ele faz registo na base de dados, mas só entra o ID.

Link to comment
Share on other sites

ok... dá erro. Qual é o erro?

vejamos...

erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a4783436/public_html/registar.php on line 16

Tenho 99,9% a certesa de que o que está na variável: $sqlresult é: FALSE.

Substitui a linha:

$sqlresult = mysql_query($sqlquery);

por

$sqlresult = mysql_query($sqlquery) OR die(mysql_error());

Para saberes qual é o erro.

Pelo menos enquanto não tiveres a certeza que o teu código SQL não tem erros.

Edit:

Não me admira!

<td><label>Username:</label><input type="text" id="username" onkeypress="nome()" onblur="nome()" onchange="nome()" onfocus="nome()"/></td>
            <td id="ausername" align="left"></td>

O username não é enviado para a página quando se submete o formulário!

Para ele enviar tens que usar o atributo name nas tags input.

Ex: <input type="text" name="nome" id="id">

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Obrigado pela ajuda, mas continua a não funcionar...  👍

Desta vez dá um erro "Unknown column '' in 'where clause'"

EDIT:

<?php
require_once "config.php";

$login = $_POST["username"];

$sqlquery = "SELECT * FROM users WHERE username = $login";
$sqlresult = mysql_query($sqlquery) OR die(mysql_error());;
$sqlnum = mysql_num_rows($sqlresult); 

if($sqlnum==1)
{
echo '<script> history.go(-1); alert("Este username já se encontra em uso!");</script>';
}
else
{
$login = $_POST["email"];

$sqlquery = "SELECT * FROM users WHERE email = $login";
$sqlresult = mysql_query($sqlquery) OR die(mysql_error());;
$sqlnum = mysql_num_rows($sqlresult); 
if($sqlnum==1)
{
	echo '<script> history.go(-1); alert("Este email já se encontra em uso!");</script>';
}
else
{
	$pass = sha1($_POST['password']);
	$user = mysql_real_escape_string($_POST['username']);
	$email = $_POST['email'];
	mysql_query("INSERT INTO users (id, username, email, password) VALUES (NULL, '$user', '$email', '$pass')") or die("Alguma coisa correu mal durante o registo. MySQL erro: ".mysql_error());
	echo "Registo Completo - <a href=\"index.htm\">Entrar na Conta</a>.";
}
}
?>
EDIT 2:

http://s3.amazonaws.com/awesome_screenshot/265062?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2%26Expires=1294570090%26Signature=ojgcMUD6VdbBR6mQ7ajoh9PMCFU=&key=9892e77d43523b32b69ee48ad4627394bc57fc905f4fe3d252e6dead9df113c9

Link to comment
Share on other sites

Não esquecer a seguança.

Usa a função: mysql_real_escape_string()

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.