Advertisement
Guest User

Untitled

a guest
Jun 11th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. <?php
  2. // Inclui o arquivo com o sistema de segurança
  3. require_once("seguranca.php");
  4. // Verifica se um formulário foi enviado
  5. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  6. // Salva duas variáveis com o que foi digitado no formulário
  7. // Detalhe: faz uma verificação com isset() pra saber se o campo foi preenchido
  8. $loginname = (isset($_POST['loginname'])) ? $_POST['loginname'] : '';
  9. $password = (isset($_POST['password'])) ? $_POST['password'] : '';
  10. // Utiliza uma função criada no seguranca.php pra validar os dados digitados
  11. if (validaLogin($loginname, $password) == true) {
  12. // O usuário e a senha digitados foram validados, manda pra página interna
  13. header("Location: index.php");
  14. } else {
  15. // O usuário e/ou a senha são inválidos, manda de volta pro form de login
  16. // Para alterar o endereço da página de login, verifique o arquivo seguranca.php
  17. expulsaVisitante();
  18. }
  19. }
  20. ?>
  21.  
  22. <?php
  23. // estabelecer a ligação à base de dados
  24. //include ("connect.php");
  25. // Configurações do Script
  26. // ==============================
  27. $_SG['conectaServidor'] = true; // Abre uma conexão com o servidor PostgreSQL?
  28. $_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?
  29. $_SG['caseSensitive'] = false; // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
  30. $_SG['validaSempre'] = true; // Deseja validar o utilizador e a password a cada carregamento de página?
  31. // Evita que, ao mudar os dados do login na base de dado o mesmo contiue logado.
  32. //$_SG['servidor'] = '192.168.0.4'; // Servidor
  33. //$_SG['loginname'] = 'julia'; // Utilizador
  34. //$_SG['password'] = 'postgresqlphp'; // Password
  35. //$_SG['base'] = 'datbase'; // Base de dados
  36. $_SG['paginaLogin'] = 'hoteis.php'; // Página de login
  37. //$_SG['tabela'] = 'extranet_login'; // Nome da tabela onde os utilizadores são salvos
  38. // ==============================
  39. // ======================================
  40. // ~ Não edite a partir deste ponto ~
  41. // ======================================
  42. // Verifica se precisa fazer a conexão com o PostgreSQL
  43. if ($_SG['conectaServidor'] == true) {
  44. $_SG['link'] = pg_connect("host=192.168.0.4 dbname=datbase user=julia password=postgresqlphp") or die("PostgreSQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
  45. //mysql_select_db($_SG['base'], $_SG['link']) or die("MySQL: Não foi possível conectar-se a base de dados [".$_SG['base']."].");
  46. }
  47. // Verifica se precisa iniciar a sessão
  48. if ($_SG['abreSessao'] == true)
  49. session_start();
  50. /**
  51. * Função que valida um login e password
  52. *
  53. * @param string $login - O login a ser validado
  54. * @param string $password - A password a ser validada
  55. *
  56. * @return bool - Se o login foi validado ou não (true/false)
  57. */
  58. function validaLogin($loginname, $password) {
  59. global $_SG;
  60.  
  61. $cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
  62. // Usa a função addslashes para escapar as aspas
  63. $nlogin = addslashes($loginname);
  64. $npassword = addslashes($password);
  65. // Monta uma consulta SQL (query) para procurar um utilizador
  66. $sql = "SELECT login', 'password' FROM '".$_SG['extranet_login']."', WHERE ".$cS." 'login' = '".$nlogin."' AND ".$cS." 'password' = '".$npassword."' LIMIT 1"; /* ou coloca soma nºlogin > 1*/
  67. $query = pg_query($sql); //or die('Query failed: ' . pg_result_error());
  68. $resultado = pg_fetch_all($query);
  69. // Verifica se encontrou algum registro
  70. if (empty($resultado)) {
  71. // Nenhum registro foi encontrado => o utilizador é inválido
  72. return false;
  73. } else {
  74. // Definimos dois valores na sessão com os dados do utilizador
  75. $_SESSION['loginID'] = $resultado['login']; // Pega o valor da coluna 'id do registro encontrado no PostgreSQL
  76. $_SESSION['loginPass'] = $resultado['password']; // Pega o valor da coluna 'nome' do registro encontrado no PostgreSQL
  77. // Verifica a opção se sempre validar o login
  78. if ($_SG['validaSempre'] == true) {
  79. // Definimos dois valores na sessão com os dados do login
  80. $_SESSION['userLogin'] = $login;
  81. $_SESSION['userPassword'] = $password;
  82. }
  83. return true;
  84. }
  85. }
  86.  
  87. /**
  88. * Função que protege uma página
  89. */
  90. function protegePagina() {
  91. global $_SG;
  92. if (!isset($_SESSION['loginID']) OR !isset($_SESSION['loginPass'])) {
  93. // Não há utilizador logado, manda pra página de login
  94. expulsaVisitante();
  95. } else if (!isset($_SESSION['loginID']) OR !isset($_SESSION['loginPass'])) {
  96. // Há usuário logado, verifica se precisa validar o login novamente
  97. if ($_SG['validaSempre'] == true) {
  98. // Verifica se os dados salvos na sessão batem com os dados do base de dados
  99. if (!validaLogin($_SESSION['userLogin'], $_SESSION['userPassword'])) {
  100. // Os dados não batem, manda pra tela de login
  101. expulsaVisitante();
  102. }
  103. } else {
  104.  
  105. }
  106. }
  107. }
  108. /**
  109. * Função para expulsar um visitante
  110. */
  111. function expulsaVisitante() {
  112. global $_SG;
  113. // Remove as variáveis da sessão (caso elas existam)
  114. unset($_SESSION['loginID'], $_SESSION['loginPass'], $_SESSION['userLogin'], $_SESSION['userPassword']);
  115. // Manda pra tela de login
  116. header("Location: ".$_SG['paginaLogin']);
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement