Advertisement
Guest User

Untitled

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