Arm@ni_m@n 0 Denunciar post Postado Março 25, 2007 Gostaria que alguem me explica-se ao pormenor como fazer o login com banco de dados, para assim conseguir colocar no meu site pronto a ser utilizado pelos utilizadores....MAis uam coisa.... O meu site está feito, falta apenas esse sitema, será que vou ter de of azer todo desde o inicio? será que nao dá para adaptar? Queria as ajudas possiveis e imaginarias......Abraço aqui do irmao de Portugal Compartilhar este post Link para o post Compartilhar em outros sites
kwnds 0 Denunciar post Postado Março 25, 2007 Não é preciso fazer todo de novo. Vou então dizer o basico do sistema de login com password. O usuario diz ao site quais os dados de username e password, o site faz a conecção a uma base de daods (neste caso mysql) e verifica se os dados inseridos estão correctos. Caso estejam ele procede a outra página a que apenas podem aceder usuarios com login feito, caso contrário envia o usuario para outra página a avisar que os dados estão mal e pede-lhe outra vez para fazer login. As forms a serem criadas vão ser 2 "TextFields" para inserirem o username e a password e um "button" para enviar os dados para a base de dados. Vamos então criar 2 páginas: A primeira vai ser onde inserimos os dados para o login (pode ser uma página que já tenhas e apenas adiciones os textfields e o button) e a segunda vai ser da extensão .php e vai confirmar perante a base de dados se o login e a password estão correctos. Também te aconselho a criares uma 3ª página com a extensão .php chamada "config" onde vais declarar as variáveis para a base de dados e outras que precises no teu site. Na página config.php aconselho-te a usares isto: <?$bd_ligar = mysql_connect("localhost", $bd_user, $bd_password) or die(mysql_error());mysql_select_db($bd_nome, $bd_ligar) or die(mysql_error());//Configuração da BD$bd_nome="nome-da-bd";$bd_user="meu-user";$bd_password="password";?>Assim sempre que usares a variavel $bd_ligar ele vai-se ligar á base de dados. Na página para fazeres o login aconselho-te a teres estes códigos: <?include("config.php");session_name("MeuLogin");session_start();session_destroy(); if($_GET['login'] == "falhou") { print $_GET['causa'];}?><form name="form1" method="post" action="entrando.php?accao=entrar">Login: <input name="username" type="text" id="username"><BR>Password: <input name="password" type="password" id="password"><BR><input type="submit" value="Entrar"></form><p><a href="registar.php">Registar</a></p>Estás a incluir o "config.php" para te ligares á base de dados, depois tens os processos para poderes usares as sessões. Neste caso o "button" chama-se "form1" e quando executado vai ter a uma terceira página chamada "entrando.php". Eis o código dela: <?//Esta codigo serve para verificar se o user já fez o logininclude("config.php");session_name("MeuLogin");session_start(); if($_GET['accao'] == "entrar") { global $bd_ligar; $banco = mysql_select_db('$bd_nome'); $username= $_POST['username']; $q_user = mysql_query("SELECT * FROM info WHERE username='$username'"); if(mysql_num_rows($q_user) == 1) { $query = mysql_query("SELECT * FROM info WHERE username='$username'"); $dados = mysql_fetch_array($query); if($_POST['password'] == $dados['password']) { session_register("username"); header("Location: page.php"); exit; } else { header("Location: entrar.php?login=falhou&causa=".urlencode('Senha Errada')); exit; } } else { header("Location: entrar.php?login=falhou&causa=".urlencode('User Inválido')); exit; }//Verifica se o login já foi efectuado e com sucessoif(session_is_registered("username") == false) { header("Location: entrar.php");}?>}O que ele vai fazer é ir á base de dados e confirmar o username e password. Caso estejam certos ele procede e envia-te para a página "page.php". Caso o username e a password forem errados, ele envia o user para a página "entrar.php" onde ele vai ter de fazer um novo login. Aqui aconselho-te a criar uma página nova a avisar que o login e a senha estão errados e com opções de recuperar a password. Agora quando criares uma página nova e queres que ela esteja protegida com o login (o usuario apenas acede a ela se estiver com o login feito) tens de usar este codigo no cimo da página: <?require("entrando.php");?>Que vai verificar se ele fez o login ou não. Como podes ver não é assim tão dificil, no entanto, estes scripts costuman ser muito vulneráveis a sql injection. Lê um bocado sobre essa matéria e vais-te aperceber de como é perigosa. Para a evitares podes por exemplo substituir isto $username= $_POST['username']; por isto $username = mysql_real_escape_string($_POST['username']);Alguma dúvida posta e eu ajudo-te. PS: Como este foi o meu segundo post e eu so tenho 1 semana de dreamweaver/php, posso ter dito alguma asneira, mas eu propio já testei estes código e correu sem problemas. Apenas tens de melhorar a vulnerabilidade dele a sql injection. Já agora, também sou de Portugal, mais precisamente de Viseu. Compartilhar este post Link para o post Compartilhar em outros sites
kwnds 0 Denunciar post Postado Março 25, 2007 Pensei que irias gostar de mais uma coisa. Um código para o usuario fazer "logout". Fica aqui então: <?session_start(); if(session_is_registered('username')){session_unset();session_destroy();}else{ header("Location: entrar.php");}?>Neste caso, ao fim de fazer logout ele vai para a página "entrar.php" onde irá fazer login. Ser quiseres podes alterar esse endereço assim como todos os outros dos outros códigos, mas apenas se estiveres a perceber como funionam. Abraços Compartilhar este post Link para o post Compartilhar em outros sites