_M!K0L_ 1 Denunciar post Postado Outubro 7, 2007 Sistema de Login e Senha c/ Session + MD5 Script por: _M!K0L_Arquivos [*]SQL.php [*]install.php [*]cadastro.php [*]cad_done.php [*]index.php [*]restringir.php [*]area_restrita.php [*]logout.php [*]gerar_senha.php [*]mudar_senha.phpConfigure antes de instalar...SQL.php<?php$hostname_SQL = ""; //Default: localhost$database_SQL = "";$username_SQL = ""; //Default: root$password_SQL = "";$SQL = mysql_pconnect($hostname_SQL, $username_SQL, $password_SQL) or trigger_error(mysql_error(),E_USER_ERROR); mysql_select_db($database_SQL, $SQL);//Anti-SQL-Inject não mexer./* Criado por Michael Andrei Donini 08/12/2007 as 04:39pm */function anti_injection($string){ $string = str_ireplace(" or ", "", $string); $string = str_ireplace("select ", "", $string); $string = str_ireplace("delete ", "", $string); $string = str_ireplace("create ", "", $string); $string = str_ireplace("drop ", "", $string); $string = str_ireplace("update ", "", $string); $string = str_ireplace("drop table", "", $string); $string = str_ireplace("show table", "", $string); $string = str_ireplace("'", "", $string); $string = str_replace("#", "", $string); $string = str_replace("=", "", $string); $string = str_replace("--", "", $string); $string = str_replace("-", "", $string); $string = str_replace(";", "", $string); $string = str_replace("*", "", $string); $string = strip_tags($string); $string = addslashes($string); return $string;}?> install.php<?require("SQL.php");/*-- -- login: teste-- senha: teste-- Email: teste@teste-- */mysql_query("CREATE TABLE `usuarios` ( `id` int(6) NOT NULL auto_increment, `login` varchar(255) NOT NULL default '', `senha` varchar(255) NOT NULL default '', `email` varchar(255) NOT NULL default '', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2; ") or die(mysql_error());mysql_query("INSERT INTO `usuarios` VALUES (1, 'teste', '698dc19d489c4e4db73e28a713eab07b', 'teste@teste');") or die(mysql_error());echo "Tabela usuarios Instalada com sucesso";?> cadastro.php<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css"><!--.text_form {font-family: Verdana; font-size: 10px; font-weight: bold; }.table{ margin: 0px; padding: 2px;}#field { margin: 0px; padding: 2px; width: 360px;}.FonTop{ font-family: Verdana;}--></style></head><body><center><fieldset id="field"><legend><font size="2" face="verdana">Cadastro</font></legend><form action="cad_done.php" method="post" name="form1"> <table width="200" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="text_form">Login</td> <td><div align="center"> <input name="login" type="text" id="login" size="20"> </div></td> </tr> <tr> <td class="text_form">Senha</td> <td><div align="center"> <input name="senha" type="password" id="senha" size="20"> </div></td> </tr> </table> <br><fieldset><legend><font size="2" face="verdana">Contato</font></legend><table width="320" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="50" class="text_form">E-mail</td> <td><div align="center"> <input name="email" type="text" id="email" size="40"> </div></td> </tr></table></fieldset><br><fieldset><legend><font size="2" face="verdana">Ação</font></legend><input name="Cadastrar" type="submit" value="Cadastrar"><input name="Limpar" type="reset" value="Limpar"></fieldset></form></fieldset></center></body></html> cad_done.php<?require("SQL.php");$local = "index.php"; // Local onde deve ser redirecionado a pessoa apos o cadastro.$login = anti_injection($_POST['login']);$senha = anti_injection($_POST['senha']);$senha = md5($senha);$email = anti_injection($_POST['email']);if(isset($login) && isset($senha) && $login != "" && $email != ""){mysql_query(" INSERT INTO usuarios (id, login, senha, email) VALUES (NULL, '$login', '$senha', '$email') ") or die(mysql_error());?><script language="javascript" type="text/javascript">alert("Cadastro Feito com Sucesso");</script><?echo "<meta content=\"0; URL=$local\" http-equiv=\"refresh\">";}?> index.php<?//Mude aqui para onde o usuário vai ser redirecionado caso o Login for bem sucedido$pagina_restrita = "area_restrita.php";if(isset($_GET['msg']) && $_GET['msg'] != "") { require("SQL.php"); $mensagem = anti_injection($_GET['msg']);} else { $mensagem = base64_encode("Acesso para Área Restrita");}if($_SERVER['REQUEST_METHOD'] == "POST"){ if(isset($_POST['login']) && isset($_POST['senha'])){ require("SQL.php"); $login = anti_injection($_POST['login']); $senha = md5(anti_injection($_POST['senha'])); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error()); $rTestar = mysql_num_rows($query); $row = mysql_fetch_assoc($query); if($rTestar > '0'){ //session_start(); session_register('email'); session_register('login'); session_register('senha'); $_SESSION['email'] = $row['email']; $_SESSION['login'] = $row['login']; $_SESSION['senha'] = $row['senha']; echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">"; exit; } else { $mensagem = base64_encode("<font color=\"red\"><b>Login ou senha Invalida</b></font>"); } }}?><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css"><!--.text_form {font-family: Verdana; font-size: 10px; font-weight: bold; }.table{ margin: 0px; padding: 2px;}#field { margin: 0px; padding: 2px; width: 260px;}--></style></head><body><form name="form1" method="post" action=""><div align="center"><fieldset id="field"><legend><? echo "<font face=\"Verdana\" size=\"2\"><b>" . base64_decode($mensagem) . "</b></font>"; ?></legend> <table width="245" border="0" align="center" cellpadding="0" cellspacing="0" class="table"> <tr> <td width="100" scope="col"><span class="text_form">Login:</span></td> <td width="145" scope="col"><input name="login" type="text" id="login"></td> </tr> <tr> <td width="100" scope="row"><span class="text_form">Senha:</span></td> <td width="145"><input name="senha" type="password" id="senha"></td> </tr> <tr> <td width="100" scope="row"></td> <td width="145"><input type="submit" name="Submit" value="Logar"> <input type="reset" name="Submit2" value="Limpar"></td> </tr> </table><a href="mudar_senha.php">Esqueci/Mudar a senha</a><br><a href="cadastro.php">Cadastrar-se</a> </fieldset> </div></form></body></html> restringir.php<?//Coloque aqui uma mensagem caso a pessoa tente entrar em uma página protegida sem autenticação$mensagem = base64_encode("Faça o Login primeiro"); session_start();if(isset($_SESSION['login']) && isset($_SESSION['senha'])) { $login = $_SESSION['login']; $senha = $_SESSION['senha']; require("SQL.php"); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error()); $rTestar = mysql_num_rows($query);}if(isset($rTestar) && $rTestar > '0'){ $row = mysql_fetch_assoc($query);} else { echo "<meta http-equiv=\"refresh\" content=\"0; URL=index.php?msg=$mensagem\">"; exit;}?> logout.php<?session_start();session_destroy();echo "<meta http-equiv=\"refresh\" content=\"0; URL=index.php\">";exit;?> mudar_senha.php<?//Mude aqui as Menssagens$mensagem = "Senha alterada com sucesso"; //Menssagem exibida se a senha for alterada com sucesso$mensagem1 = "Error ao alterar a senha"; // Mensagem de error caso a senha não foi alteradaif(isset($_POST['login']) && isset($_POST['senha']) && isset($_POST['nsenha']) && isset($_POST['type']) && $_POST['type'] == "1") { require('SQL.php'); $login = anti_injection($_POST['login']); $senha = md5(anti_injection($_POST['senha'])); $nsenha = md5(anti_injection($_POST['nsenha'])); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error()); $n_rows = mysql_num_rows($query); $row = mysql_fetch_assoc($query); if($n_rows > "0"){ $update = mysql_query("UPDATE usuarios SET senha='$nsenha' WHERE login='$login'") or die(mysql_error()); echo "<font face=\"verdana\" color=\"#FF0000\"><b>" . $mensagem . "</b></font><br>"; } else { echo "<font face=\"verdana\" color=\"#FF0000\"><b>" . $mensagem1 . "</b></font><br>"; }}if(isset($_POST['login']) && isset($_POST['email']) && isset($_POST['nsenha']) && isset($_POST['type']) && $_POST['type'] == "2") { require('SQL.php'); $login = anti_injection($_POST['login']); $email = anti_injection($_POST['email']); $nsenha = md5(anti_injection($_POST['nsenha'])); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND email='$email'") or die(mysql_error()); $n_rows = mysql_num_rows($query); $row = mysql_fetch_assoc($query); if($n_rows > "0"){ $update = mysql_query("UPDATE usuarios SET senha='$nsenha' WHERE login='$login'") or die(mysql_error()); echo "<font face=\"verdana\" color=\"#FF0000\"><b>" . $mensagem . "</b></font><br>"; } else { echo "<font face=\"verdana\" color=\"#FF0000\"><b>" . $mensagem1 . "</b></font><br>"; }}?><html><head><title>Mudar Senha</title></head><body><form name="form1" id="form1" action="mudar_senha.php" method="POST"><center><table border="0" width="100%"><tr><td>Login:</td><td><input type="text" name="login" id="login"></td></tr><tr><td>Senha Antiga:</td><td><input type="password" name="senha" id="senha"></td></tr><tr><td>Nova Senha:</td><td><input type="password" name="nsenha" id="nsenha"></td></tr><tr><td>E-mail:</td><td><input type="text" name="email" id="email"></td></tr><tr><td>Tipo:</td><td><input name="type" type="radio" value="1"> Selecione aqui caso você saiba sua senha antiga.<br> <input name="type" type="radio" value="2"> Selecione aqui caso você não saiba sua senha antiga.</td></tr><tr><td></td><td><input name="submit" type="submit" value="Mudar Senha"></td></tr></table></center></form></body></html> gerar_senha.php <~ Para gerar senha em MD5<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><?if(isset($_POST['md5'])) {echo md5($_POST['md5']);echo "<hr>";}?><form name="form1" method="post" action=""> <input name="md5" type="text" id="md5"> <input type="submit" name="Submit" value="Gerar Senha em MD5"></form></body></html> Bom seguinte, agora está pronta seu sistema de login e senha...para restringir as páginhas que so quem tiver logado poderá ver inclua isso antes das tag <html><?include("restringir.php");?> Exemplo de uma página restritaarea_restrita.php<?include("restringir.php");?><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><?echo "Login: " . $_SESSION['login'] . "<br />";echo "Senha: " . $_SESSION['senha'] . "<br />";echo "E-mail: " . $_SESSION['email'] . "<br />";echo "<a href=\"logout.php\">Sair</a>";?></body></html> COMENTEM OBRIGADO...Sistema pronto para teste:[-- Clique Aqui para ver o Sistema Pronto --]Caso queira também pode fazer o download em *.RAR do sistema pronto...Tamanho: 5KBSenha: by mikol Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Outubro 8, 2007 kra mto bom, ta quase 100%, pelo menos no meu aki, qdo você digita o login correto ele nem examina a senha e ja passa direto.... Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Outubro 8, 2007 ai ferro tudo 0opassa direto ... ;P..aqui ele é normal, tem que digitar os 2 campo certo...o que será que pode ser?... podemos melhorar... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Outubro 9, 2007 opaaa.... 100%, consegui achar o erro aki, era eu mesmo q tinha trocado um parâmetro aki... fmz... 100% agora...rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Outubro 9, 2007 quando trabalho com ele no servidor intranet ele funciona normalmente, agora qdo mando ele pro ar... ta dando os seguintes errosWarning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/editorab/public_html/site/top/sql.php:2) in /home/editorab/public_html/site/top/index.php on line 20Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/editorab/public_html/site/top/sql.php:2) in /home/editorab/public_html/site/top/index.php on line 20Warning: Cannot modify header information - headers already sent by (output started at /home/editorab/public_html/site/top/sql.php:2) in /home/editorab/public_html/site/top/index.php on line 27 Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Outubro 9, 2007 agora fiz umas mudança e já testei em localhost e em um host dedicado ai,, e funciono certinho do jeito que está ai com as novas mudanças..... Compartilhar este post Link para o post Compartilhar em outros sites
SHWE12 1 Denunciar post Postado Outubro 9, 2007 aki ta funfando certo, mas ta aparecendo em cima um erro q é no arquivos restringir.php e no index.php onde tem o session_start(); nessas duas chamadas esta dando erro... mas isso nao está afetando o sistema, só q fica escrita a msg em cima Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Outubro 9, 2007 cara coloca assim PHP ...// session_start(); ... no index.php onde tem lá!!! o session_start(); ... eu fiz aqui e ele loga normal, ve se assim desaparece as msg... Compartilhar este post Link para o post Compartilhar em outros sites
bones 0 Denunciar post Postado Outubro 11, 2007 Como ficaria o script para alteração de senha, com o md5? Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Outubro 11, 2007 bom, pessoal aperfeiçoei o script e adicionei o mudar_senha.phpquem já tinha copiado o sistema, copie de novo porque fiz algumas mudanças!!Obrigado!!! Compartilhar este post Link para o post Compartilhar em outros sites
SimoneAmorin 0 Denunciar post Postado Outubro 19, 2007 Olá '_M!K0L_' ...Esta funcionando certinho, porém ao alterar a senha caso um outro usuario tenha somente o login ele conseguirá fazer a alteração e entrar na página restrita. :(/>Abraço.Si Compartilhar este post Link para o post Compartilhar em outros sites
Mutar 0 Denunciar post Postado Outubro 30, 2007 Ta faltando deslogar ao fechar o navegador... se não o usuario pode esqucer de deslogar. Compartilhar este post Link para o post Compartilhar em outros sites
vidaloukaig 0 Denunciar post Postado Outubro 31, 2007 Eh... o sisteminha ta bom... mais ainda não to entendendo como funciona... eu coloco o script dentro do arquivo que eu quero proteger... mais msm assim a pagina entra direto.... alguem pode explicar melhor? Compartilhar este post Link para o post Compartilhar em outros sites
sidney cezar 0 Denunciar post Postado Outubro 31, 2007 Olá pessoal, gostei muito do sistema de login, já consegui fazer rodar no servidor, mesmo sem ter muito conhecimento de PHP, agora vou comecar a implementar. Estou com um problema na hora em que logo no index.php ele retorna o seguinte erro antes de mostrar os dados do usuario, detalhe, este erro aparece e logo some. Warning: session_register() [function.session-register]: Cannot send session cache limiter - headers already sent (output started at /home/doperco/public_html/SQL.php:11) in /home/doperco/public_html/index.php on line 24 Compartilhar este post Link para o post Compartilhar em outros sites
grakz_br 0 Denunciar post Postado Novembro 8, 2007 opa galera , desculpa minhas perguntas bem iniciantes se alguem tiver um tempo sobrando ai , me da um toque por favor tipo eu preciso baixar o phpAdmin ou aquele Easyphp ou soh com o http://mysql01.dominio.com/ ja pra fazer isso ? outra pergunta seria $hostname_SQL = "localhost"; $database_SQL = "teste"; $username_SQL = "root"; $password_SQL = ""; como ficaria essa parte configurada pro meu servidor ? o proprio instal.php ja cria as tabelas no mysql neh ? nao preciso criar nda ? desculpa de novo pelas newbiessis grato rodrigo Compartilhar este post Link para o post Compartilhar em outros sites
rakh 0 Denunciar post Postado Novembro 10, 2007 Oi galera nossa 100% o login ae! só tenho uma dúvida, e se eu quizer fazer um esquema tipo um orkut da vida q cada usuario cai numa pagina diferente tipo: O "a" cai na "area_restrita" já o "b" cai na "area_restrita2" se alguem puder ajudar eu agradeço as paginas restritas 1 e 2 talz eu ja criei só queria saber como diferenciar. vlw! abraços! Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Novembro 17, 2007 cara faiz assim ali no index.php onde tem session_register .. etc.. coloca isso PHP session_register("id");$_SESSION['id'] = $row['id']; e no restringir.php na linha onde tem PHP if(isset($_SESSION['login']) && isset($_SESSION['senha'])) { $login = $_SESSION['login']; $senha = $_SESSION['senha']; require("SQL.php"); mysql_select_db($database_SQL, $SQL); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error()); $rTestar = mysql_num_rows($query); } bota ssim PHP if(isset($_SESSION['login']) && isset($_SESSION['senha'])) { $login = $_SESSION['login']; $senha = $_SESSION['senha']; $id = $_SESSION['id']; require("SQL.php"); mysql_select_db($database_SQL, $SQL); $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha' AND id='$id'") or die(mysql_error()); $rTestar = mysql_num_rows($query); } Compartilhar este post Link para o post Compartilhar em outros sites
Mutar 0 Denunciar post Postado Dezembro 12, 2007 Não consigo deixar logado no site... toda vez que mudo de link pede login e senha de novo. Como resolvo isso? tenho varias areas restritas... o script suporta isso? Compartilhar este post Link para o post Compartilhar em outros sites
vagner.amorim 0 Denunciar post Postado Janeiro 10, 2008 E aí galera do forum. muito bom o script, mas eu to com uma duvida no redirecionamento do usuario. Como eu faço para que quando o usuario faça o login, ele volte para a página onde estava navegando antes de se logar e não volte sempre para a mesma página que eu indiquei no script? Compartilhar este post Link para o post Compartilhar em outros sites
Madefh 0 Denunciar post Postado Janeiro 10, 2008 "Totalmente seguro...."???????????? Tive que me cadastrar aqui só pra te responder.... Cada, além de ele estar aberto pra SQL Injection e Session Crash você usa META (idade da pedra) pra direcionar os usuários de volta. Quando você aprender a utilizar as funções direito eu volto a responder... Valeu! Compartilhar este post Link para o post Compartilhar em outros sites