login.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. // require_once "sessions.php";
  3. require_once "sanity_check.php";
  4. require_once "version.php";
  5. require_once "config.php";
  6. require_once "functions.php";
  7. $error_msg = "";
  8. $url_path = get_script_urlpath();
  9. if (ENABLE_LOGIN_SSL) {
  10. $redirect_base = "https://" . $_SERVER["SERVER_NAME"] . $url_path;
  11. } else {
  12. $redirect_base = "http://" . $_SERVER["SERVER_NAME"] . $url_path;
  13. }
  14. if (SINGLE_USER_MODE) {
  15. header("Location: $redirect_base/tt-rss.php");
  16. exit;
  17. }
  18. $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
  19. $login = $_POST["login"];
  20. $password = $_POST["password"];
  21. $return_to = $_POST["rt"];
  22. $action = $_POST["action"];
  23. if ($_COOKIE[get_session_cookie_name()]) {
  24. require_once "sessions.php";
  25. if ($_SESSION["uid"]) {
  26. initialize_user_prefs($link, $_SESSION["uid"]);
  27. header("Location: $redirect_base/tt-rss.php");
  28. exit;
  29. }
  30. }
  31. if ($login && $password) {
  32. if ($_POST["remember_me"]) {
  33. session_set_cookie_params(SESSION_COOKIE_LIFETIME_REMEMBER);
  34. } else {
  35. session_set_cookie_params(SESSION_COOKIE_LIFETIME);
  36. }
  37. require_once "sessions.php";
  38. if (authenticate_user($link, $login, $password)) {
  39. initialize_user_prefs($link, $_SESSION["uid"]);
  40. if ($_POST["remember_me"]) {
  41. $_SESSION["cookie_lifetime"] = time() + SESSION_COOKIE_LIFETIME_REMEMBER;
  42. } else {
  43. $_SESSION["cookie_lifetime"] = time() + SESSION_COOKIE_LIFETIME;
  44. }
  45. setcookie("ttrss_cltime", $_SESSION["cookie_lifetime"],
  46. $_SESSION["cookie_lifetime"]);
  47. if (!$return_to) {
  48. $return_to = "tt-rss.php";
  49. }
  50. header("Location: $redirect_base/$return_to");
  51. exit;
  52. } else {
  53. $error_msg = "Error: Unable to authenticate user. Please check login and password.";
  54. }
  55. } else if ($action) {
  56. $error_msg = "Error: Either login or password is blank.";
  57. }
  58. ?>
  59. <html>
  60. <head>
  61. <title>Tiny Tiny RSS : Login</title>
  62. <link rel="stylesheet" type="text/css" href="tt-rss.css">
  63. <!--[if gte IE 5.5000]>
  64. <script type="text/javascript" src="pngfix.js"></script>
  65. <![endif]-->
  66. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  67. </head>
  68. <body>
  69. <script type="text/javascript">
  70. function init() {
  71. if (arguments.callee.done) return;
  72. arguments.callee.done = true;
  73. var login = document.forms["loginForm"].login;
  74. login.focus();
  75. }
  76. </script>
  77. <script type="text/javascript">
  78. if (document.addEventListener) {
  79. document.addEventListener("DOMContentLoaded", init, null);
  80. }
  81. window.onload = init;
  82. </script>
  83. <form action="login.php" method="POST" name="loginForm">
  84. <table width="100%" class="loginForm2">
  85. <tr>
  86. <td class="loginTop" valign="bottom" align="left">
  87. <img src="images/ttrss_logo_big.png" alt="Logo">
  88. </td>
  89. </tr><tr>
  90. <td align="center" valign="middle" class="loginMiddle" height="100%">
  91. <?php if ($error_msg) { ?>
  92. <div class="loginError"><?php echo $error_msg ?></div>
  93. <?php } ?>
  94. <table>
  95. <tr><td align="right">Login:</td>
  96. <td><input name="login"></td></tr>
  97. <tr><td align="right">Password:</td>
  98. <td><input type="password" name="password"></td></tr>
  99. <tr><td colspan="2">
  100. <input type="checkbox" name="remember_me" id="remember_me">
  101. <label for="remember_me">Remember me on this computer</label>
  102. </td></tr>
  103. <tr><td colspan="2" align="right">
  104. <input type="submit" class="button" value="Login">
  105. <input type="hidden" name="action" value="login">
  106. <input type="hidden" name="rt" value="<?php echo $_GET['rt'] ?>">
  107. </td></tr>
  108. </table>
  109. </td>
  110. </tr><tr>
  111. <td align="center" class="loginBottom">
  112. <a href="http://tt-rss.spb.ru/">Tiny-Tiny RSS</a> v<?php echo VERSION ?> &copy; 2005-2006 Andrew Dolgov
  113. <?php if (WEB_DEMO_MODE) { ?>
  114. <br>Running in demo mode, some functionality is disabled.
  115. <?php } ?>
  116. </td>
  117. </tr>
  118. </table>
  119. </form>
  120. <?php db_close($link); ?>
  121. <script type="text/javascript">
  122. /* for IE */
  123. function statechange() {
  124. if (document.readyState == "interactive") init();
  125. }
  126. if (document.readyState) {
  127. if (document.readyState == "interactive" || document.readyState == "complete") {
  128. init();
  129. } else {
  130. document.onreadystatechange = statechange;
  131. }
  132. }
  133. </script>
  134. </body>
  135. </html>