Jump to content
CDanielOL

[Resolvido] Verificar se usuário já existe!

Recommended Posts

CDanielOL

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.

Share this post


Link to post
Share on other sites
brunoais

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

Share this post


Link to post
Share on other sites
CDanielOL

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

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

Share this post


Link to post
Share on other sites
bmiguel84

É sempre bom copiar o erro para ver-mos onde se encontra.

Nas tuas query's SELECT, experimenta fazer assim:

$sqlquery = "SELECT * FROM users WHERE username = '$login'";

e

$sqlquery = "SELECT * FROM users WHERE email = '$login'";

Share this post


Link to post
Share on other sites
brunoais

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

Share this post


Link to post
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

×
×
  • 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.