summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Christian Pohle2016-10-15 19:20:18 +0200
committerMax Christian Pohle2016-10-15 19:20:18 +0200
commit87c69016c5e7458df84950ae4eb0b5833262a370 (patch)
tree13764a5364953fb1973db3abc1446cb177f17ab5
downloadauth-form-alt-87c69016c5e7458df84950ae4eb0b5833262a370.tar.bz2
auth-form-alt-87c69016c5e7458df84950ae4eb0b5833262a370.zip
Initial versionHEADmaster
It basically works
-rw-r--r--htaccess-sample15
-rw-r--r--htusers-sample12
-rw-r--r--login.html136
3 files changed, 163 insertions, 0 deletions
diff --git a/htaccess-sample b/htaccess-sample
new file mode 100644
index 0000000..dabf6a9
--- /dev/null
+++ b/htaccess-sample
@@ -0,0 +1,15 @@
1# this file must be named .htaccess
2DirectoryIndex login.html
3
4AuthType Basic
5AuthName "Password Protected Area"
6AuthUserFile .htusers
7Require valid-user
8
9# allow only the root directory (=login.html, see above) to be shown...
10SetEnvIf Request_URI ^/$ noauth=1
11Satisfy any
12order deny,allow
13deny from all
14Allow from env=noauth
15
diff --git a/htusers-sample b/htusers-sample
new file mode 100644
index 0000000..dd91cf9
--- /dev/null
+++ b/htusers-sample
@@ -0,0 +1,12 @@
1# this file should contain combinations of usernames and passwords, divided by colons and separated
2# by newlines:
3#
4# user1:password2
5# user2:password2
6#
7# the passwords must not be inserted as plain text, but as hashes. To generate these hashes one can
8# use:
9# openssl passwd -crypt password1
10#
11# lines starting with # are not recognized and can be used as comments
12
diff --git a/login.html b/login.html
new file mode 100644
index 0000000..627308e
--- /dev/null
+++ b/login.html
@@ -0,0 +1,136 @@
1<!DOCTYPE html>
2<html>
3 <head>
4 <title>Ostsee - Verborgene Fracht - Login</title>
5 </head>
6 <style type="text/css">
7 html,body
8 {
9 width:100%;
10 height:100%;
11 margin:0px;
12 padding:0px;
13 overflow:hidden;
14 }
15
16 body
17 {
18 position:absolute;
19 background:#474747;
20 vertical-align:middle;
21 }
22
23 form.login
24 {
25 position:relative;
26 top:50%;
27 display:block;
28 margin:auto auto;
29 width:12em;
30 text-align:right;
31 font-family:Arial, Helvetica Neue, Helvetica, sans-serif;
32 font-weight:bold;
33 transform: translateY(-50%);
34 }
35
36 form.login label
37 {
38 color:#fff;
39 text-align:center;
40 font-size:x-small;
41 text-transform:uppercase;
42 display:block;
43 font-weight:normal;
44 line-height:1.75em;
45 }
46
47 form.login :active,
48 form.login :focus
49 {
50 outline:0px;
51 }
52
53 form.login input
54 {
55 border:4px solid #fff;
56 border-radius:6px;
57 background:#fff;
58 width:100%;
59 margin:0px;
60 font-size:inherit;
61 text-align:center;
62 }
63
64 form.login button
65 {
66 clear:both;
67 display:block;
68 float:right;
69 background:#fff;
70 border:0px;
71 position:relative;
72 top:-1em;
73 margin-top:-5px;
74 font-size:inherit;
75 background:transparent;
76 color:#474747;
77 text-align:right;
78 }
79 </style>
80<body onload="document.getElementById('password').focus()">
81 <form action="/" class="login">
82 <input type="hidden" name="username" id="username" value="login" />
83 <label>Passwort <?php echo $_SERVER['PHP_AUTH_USER'].$_SERVER['REMOTE_USER'] ?><br/>
84 <input type="password" id="password" /></label>
85 <button type="submit" />&gt;</button>
86 <br style="clear:both" />
87 </form>
88</body>
89</html>
90
91<script type="text/javascript">
92//~ ajax-main-functions --------------------------------------------- ~
93function createHTTPObject()
94{
95 var xmlhttp;
96 /*@cc_on
97 @if (@_jscript_version >= 5) try {
98 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
99 } catch (e) {
100 try {
101 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
102 } catch (E){
103 xmlhttp = false;
104 }
105 } @else xmlhttp = false; @end @*/
106
107 if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
108 {
109 try { xmlhttp = new XMLHttpRequest(); }
110 catch (e) { xmlhttp = false; }
111 }
112 return xmlhttp;
113}
114
115function formSubmit(e)
116{
117 var form = e.target;
118 var username = document.getElementById("username");
119 var password = document.getElementById("password");
120 var http = createHTTPObject();
121 /* console.log("username: " + username.value + " password: " + password.value); */
122 http.open("get", "index.html", false, username.value, password.value);
123 http.send("");
124 if (http.status == 200) /* content got delivered, we are clear to pass (password was right) */
125 { window.location = "http://ostsee.halbtotal.de/index.html"; return false; }
126 else if (http.status == 401) /* 401=authorization required when password was wrong */
127 { password.value = ''; return false; }
128 else /* other errors lead to the default login page */
129 { return false; }
130}
131
132for(var i in document.forms)
133{ document.forms[i].onsubmit=formSubmit; }
134</script>
135<!-- vim: set ts=2 sw=2 :smartindent -->
136
..