•  
     

Sistema de login e senha c/ Session + MD5 em PHP

SQL.php

Código: Selecionar todos

<?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

Código: Selecionar todos

<?
require("SQL.php");


/*
-- 
-- login: teste
-- senha: teste
-- Email: [email protected]
-- 
*/

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', [email protected]');
") or die(mysql_error());
echo "Tabela usuarios Instalada com sucesso";
?>


cadastro.php

Código: Selecionar todos

<!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

Código: Selecionar todos

<?
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

Código: Selecionar todos

<?
//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 &Aacute;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

Código: Selecionar todos

<?
//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

Código: Selecionar todos

<?
session_start();
session_destroy();
echo "<meta http-equiv=\"refresh\" content=\"0; URL=index.php\">";
exit;
?>


mudar_senha.php

Código: Selecionar todos

<?
//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 alterada


if(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&ecirc; saiba sua senha antiga.<br>
  <input name="type" type="radio" value="2">
  Selecione aqui caso voc&ecirc; n&atilde;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

Código: Selecionar todos

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



 
area_restrita.php

Código: Selecionar todos

<?
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>