View Full Version : Quero fazer uma login


BitKiller
06-04-2007, 17:07
Boas

Pediram-me que fizessem uma caixa de login de preferencia em javascript

mas eu não sei como atribuir uma função ao botão para validar

também ñ sei como fazer para criar uma base de dados para criar uma login e faze-la corresponder a uma password e caso, depois de login, encaminhá-la para uma página, por exemplo :www.somee.com/.

Já fiz esta parte do código html:

<html>
<head>
<title>Login</title>
<body>
<form name=teste>
<h4 align="left">Login:</h4><input type="text" name="login" weight=20>
<h4 align="left">Password:</h4><input type="password" name="pass" weight=20>
<input type="button" name="enviar" value="Validar">
</form>
</body>
</html>


Algúem me pode dizer como é que isso se faz?

Neurotical
07-04-2007, 20:24
Antes de mais esse form precisa de mais atributos nomeadamente a action e o method

tal que

<form name="teste" action="URL_PARA_ONDE_QUERES_ENVIAR_OS_DADOS" method="post" ou "get">
....
</form>

depois é nessa página para onde "atiras" os valores do "login" e da "pass" que vais validar o utilizador (acedes à base de dados, vês se existe tal utilizador e se tem a tal password).
Não te sei é explicar isto com javascript porque nunca gostei muito da ideia de usar isso para os logins.

p3dro
08-04-2007, 16:48
Fazer o login em javascript? Não me parece muito correcto, até porque o visitante depois poderia ver facilmente os dados de acesso; quanto mto poderás usar o javascript para validar a inserção dos dados, se por ex. inseriu o username e password, etc; apesar de, por razões de segurança e não só, "teres" de fazer sempre essa validação a nivel de servidor, porque o cliente pode por ex. ter o javascript desactivo.

Como não fazes menção à linguagem k estás a usar, parto do principio k é: php+mysql

Pelo que percebi queres verificar se o login está correcto e se estiver redirecionar para outro site externo, ou seja não vais trabalhar com sessões, se bem k se estás a redirecionar para 1 site externo, kker pessoa poderá aceder directamente no browser ... ou eu percebi mal, ou não te explicaste bem :-D


Supõe k tens uma BD com esta estrutura: dados_login(id, nome, username, password);

CREATE TABLE `dados_login` (
`id` tinyint(4) unsigned NOT NULL auto_increment,
`nome` varchar(150) NOT NULL default '',
`username` varchar(8) NOT NULL default '',
`password` varchar(12) NOT NULL default '',
PRIMARY KEY (`id`)
);


Exemplificando com 1 código feito às "3 pancadas" poderia ser +/- isto (o conteúdo encontra-se todo no mesmo ficheiro, por ex. login.php):



<?php
$username=$_POST["username"];
$password=$_POST["password"];
$action=$_POST["action"];

if($action && $username && $password) { //estamos a fazer o login
$db = mysql_connect("db_server", "db_username", "db_password");
mysql_select_db("db_name",$db);

$sql="select id from dados_login where username='$username' and password='$password' ";
$sql=mysql_query($sql);
$myrow=mysql_fetch_array($sql);
mysql_close($db);

if($myrow["id"]){ //o login está correcto
header ("Location: http://www.somee.com"); //redirecionar para a página pretendida
}
else{ //o login está errado
echo "Os dados de Login estão errados, tente novamente ...";
}
}
?>



<html>
<head>
<title>Login</title>
<script text="text/javascript">
function DoOnSubmit(form){
var username=form.elements["username"].value;
var password=form.elements["password"].value;

if(!username || !password){
alert("Falta o username e/ou password");
return false;
}
return true;
}
</script>
</head>
<body>
<form method="post" name="frmLogin" onsubmit="return DoOnSubmit(this);">
Username: <input type="text" name="username">
Password: <input type="password" name="password">
<input type="submit" value="Login" name="action">
</form>
</body>
</html>


Atenção que em produção tens de fazer algumas modificações, por exemplo fazer o tratamento das variáveis, usar passwords encriptadas, etc, etc, mas espero k tenhas ficado com algumas "luzes". Se por exemplo kiseres manter 1 estado de login pelas várias possiveis páginas que estejam no teu site, será recomendado recorrer a sessões (http://pt2.php.net/session).

Espero ter ajudado :joker:

BitKiller
17-04-2007, 13:16
Fazer o login em javascript? Não me parece muito correcto, até porque o visitante depois poderia ver facilmente os dados de acesso; quanto mto poderás usar o javascript para validar a inserção dos dados, se por ex. inseriu o username e password, etc; apesar de, por razões de segurança e não só, "teres" de fazer sempre essa validação a nivel de servidor, porque o cliente pode por ex. ter o javascript desactivo.

Como não fazes menção à linguagem k estás a usar, parto do principio k é: php+mysql

Pelo que percebi queres verificar se o login está correcto e se estiver redirecionar para outro site externo, ou seja não vais trabalhar com sessões, se bem k se estás a redirecionar para 1 site externo, kker pessoa poderá aceder directamente no browser ... ou eu percebi mal, ou não te explicaste bem :-D


Supõe k tens uma BD com esta estrutura: dados_login(id, nome, username, password);

CREATE TABLE `dados_login` (
`id` tinyint(4) unsigned NOT NULL auto_increment,
`nome` varchar(150) NOT NULL default '',
`username` varchar(8) NOT NULL default '',
`password` varchar(12) NOT NULL default '',
PRIMARY KEY (`id`)
);


Exemplificando com 1 código feito às "3 pancadas" poderia ser +/- isto (o conteúdo encontra-se todo no mesmo ficheiro, por ex. login.php):



<?php
$username=$_POST["username"];
$password=$_POST["password"];
$action=$_POST["action"];

if($action && $username && $password) { //estamos a fazer o login
$db = mysql_connect("db_server", "db_username", "db_password");
mysql_select_db("db_name",$db);

$sql="select id from dados_login where username='$username' and password='$password' ";
$sql=mysql_query($sql);
$myrow=mysql_fetch_array($sql);
mysql_close($db);

if($myrow["id"]){ //o login está correcto
header ("Location: http://www.somee.com"); //redirecionar para a página pretendida
}
else{ //o login está errado
echo "Os dados de Login estão errados, tente novamente ...";
}
}
?>



<html>
<head>
<title>Login</title>
<script text="text/javascript">
function DoOnSubmit(form){
var username=form.elements["username"].value;
var password=form.elements["password"].value;

if(!username || !password){
alert("Falta o username e/ou password");
return false;
}
return true;
}
</script>
</head>
<body>
<form method="post" name="frmLogin" onsubmit="return DoOnSubmit(this);">
Username: <input type="text" name="username">
Password: <input type="password" name="password">
<input type="submit" value="Login" name="action">
</form>
</body>
</html>


Atenção que em produção tens de fazer algumas modificações, por exemplo fazer o tratamento das variáveis, usar passwords encriptadas, etc, etc, mas espero k tenhas ficado com algumas "luzes". Se por exemplo kiseres manter 1 estado de login pelas várias possiveis páginas que estejam no teu site, será recomendado recorrer a sessões (http://pt2.php.net/session).

Espero ter ajudado :joker:

Em k servidor e k eu ponho o codigo sql?
__________________________________________________ _______________
P.S.:Eu ñ percebo nada de sql

sunn
17-04-2007, 16:00
O código SQL está embutido no php, por isso vais ter o código do login num ficheiro .php, para ter tudo a funcionar terás de ter algo do estilo WAMP (se estiveres a trabalhar em windows) consulta mais informação em http://www.wampserver.com/en/
A parte de SQL que poderás ter de executar será carregar as tabelas, neste caso a tabela `dados_login` mas isto através do phpMyAdmin, uma interface para a base de dados MySql (presente no WAMP), dá para fazer com uns cliks.
Isto é uma explicação muito por alto, mas este forum tem bons tutoriais sobre isso, e o google é um mundo.