]> git.wh0rd.org - tt-rss.git/blob - include/login_form.php
login system fixes
[tt-rss.git] / include / login_form.php
1 <html>
2 <head>
3 <title>Tiny Tiny RSS : Login</title>
4 <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
5 <link rel="stylesheet" type="text/css" href="tt-rss.css">
6 <link rel="shortcut icon" type="image/png" href="images/favicon.png">
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
8 <script type="text/javascript" src="lib/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
9 <script type="text/javascript" src="lib/prototype.js"></script>
10 <script type="text/javascript" src="lib/scriptaculous/scriptaculous.js?load=effects,dragdrop,controls"></script>
11 <script type="text/javascript" src="js/functions.js"></script>
12 <script type="text/javascript" charset="utf-8" src="errors.php?mode=js"></script>
13 </head>
14
15 <body id="ttrssLogin" class="claro">
16
17 <script type="text/javascript">
18 function init() {
19
20 dojo.require("dijit.Dialog");
21
22 var test = setCookie("ttrss_test", "TEST");
23
24 if (getCookie("ttrss_test") != "TEST") {
25 return fatalError(2);
26 }
27
28 var limit_set = getCookie("ttrss_bwlimit");
29
30 if (limit_set == "true") {
31 document.forms["loginForm"].bw_limit.checked = true;
32 }
33
34 document.forms["loginForm"].login.focus();
35
36 fetchProfiles();
37 }
38
39 function fetchProfiles() {
40 try {
41 var query = "?op=getProfiles&login=" + param_escape(document.forms["loginForm"].login.value);
42
43 if (query) {
44 new Ajax.Request("public.php", {
45 parameters: query,
46 onComplete: function(transport) {
47 if (transport.responseText.match("select")) {
48 $('profile_box').innerHTML = transport.responseText;
49 }
50 } });
51 }
52
53 } catch (e) {
54 exception_error("fetchProfiles", e);
55 }
56 }
57
58
59 function languageChange(elem) {
60 try {
61 document.forms['loginForm']['click'].disabled = true;
62
63 var lang = elem[elem.selectedIndex].value;
64 setCookie("ttrss_lang", lang, <?php print SESSION_COOKIE_LIFETIME ?>);
65 window.location.reload();
66 } catch (e) {
67 exception_error("languageChange", e);
68 }
69 }
70
71 function gotoRegForm() {
72 window.location.href = "register.php";
73 return false;
74 }
75
76 function bwLimitChange(elem) {
77 try {
78 var limit_set = elem.checked;
79
80 setCookie("ttrss_bwlimit", limit_set,
81 <?php print SESSION_COOKIE_LIFETIME ?>);
82
83 } catch (e) {
84 exception_error("bwLimitChange", e);
85 }
86 }
87
88 function validateLoginForm(f) {
89 try {
90
91 if (f.login.value.length == 0) {
92 new Effect.Highlight(f.login);
93 return false;
94 }
95
96 if (f.password.value.length == 0) {
97 new Effect.Highlight(f.password);
98 return false;
99 }
100
101 document.forms['loginForm']['click'].disabled = true;
102
103 return true;
104 } catch (e) {
105 exception_error("validateLoginForm", e);
106 return true;
107 }
108 }
109 </script>
110
111 <script type="text/javascript">
112 Event.observe(window, 'load', function() {
113 init();
114 });
115 </script>
116
117 <?php $return = urlencode($_SERVER["REQUEST_URI"]) ?>
118
119 <form action="public.php?return=<?php echo $return ?>"
120 method="POST" id="loginForm" name="loginForm" onsubmit="return validateLoginForm(this)">
121
122 <input type="hidden" name="op" value="login">
123
124 <table class="loginForm2">
125 <tr>
126 <td class="loginTop" valign="bottom" align="left">
127 <img src="images/logo_wide.png">
128 </td>
129 </tr><tr>
130 <td align="center" valign="middle" class="loginMiddle" height="100%">
131 <?php if ($_SESSION['login_error_msg']) { ?>
132 <div class="loginError"><?php echo $_SESSION['login_error_msg'] ?></div>
133 <?php $_SESSION['login_error_msg'] = ""; ?>
134 <?php } ?>
135 <table>
136 <tr><td align="right"><?php echo __("Login:") ?></td>
137 <td align="right"><input name="login"
138 onchange="fetchProfiles()" onfocus="fetchProfiles()" onblur="fetchProfiles()"
139 value="<?php echo $_SESSION["fake_login"] ?>"></td></tr>
140 <tr><td align="right"><?php echo __("Password:") ?></td>
141 <td align="right"><input type="password" name="password"
142 value="<?php echo $_SESSION["fake_password"] ?>"></td></tr>
143 <tr><td align="right"><?php echo __("Language:") ?></td>
144 <td align="right">
145 <?php
146 print_select_hash("language", $_COOKIE["ttrss_lang"], get_translations(),
147 "style='width : 100%' onchange='languageChange(this)'");
148
149 ?>
150 </td></tr>
151
152 <tr><td align="right"><?php echo __("Profile:") ?></td>
153 <td align="right" id="profile_box">
154 <select style='width : 100%' disabled='disabled'>
155 <option><?php echo __("Default profile") ?></option></select>
156 </td></tr>
157
158 <tr><td colspan="2" align="right" class="innerLoginCell">
159
160 <button type="submit" name='click'><?php echo __('Log in') ?></button>
161 <?php if (defined('ENABLE_REGISTRATION') && ENABLE_REGISTRATION) { ?>
162 <button onclick="return gotoRegForm()">
163 <?php echo __("Create new account") ?></button>
164 <?php } ?>
165
166 </td></tr>
167
168 <tr><td colspan="2" align="right" class="innerLoginCell">
169
170 <div class="small">
171 <input name="bw_limit" id="bw_limit" type="checkbox"
172 onchange="bwLimitChange(this)">
173 <label for="bw_limit">
174 <?php echo __("Use less traffic") ?></label></div>
175
176 </td></tr>
177
178
179 </table>
180 </td>
181 </tr><tr>
182 <td align="center" class="loginBottom">
183 <a href="http://tt-rss.org/">Tiny Tiny RSS</a>
184 <?php if (!defined('HIDE_VERSION')) { ?>
185 v<?php echo VERSION ?>
186 <?php } ?>
187 &copy; 2005&ndash;<?php echo date('Y') ?> <a href="http://fakecake.org/">Andrew Dolgov</a>
188 </td>
189 </tr>
190
191 </table>
192
193 </form>
194
195 </body></html>