Cookie Passwortschutz
DragonMaster
Hallo,
ich möchte einen cookie passwortschutz machen (der so aussieht wie
..:Hier:..)
also ich möchte einen cookie mit dem namen passwortcounter auslesen und das Passwort dann über ein forumular:
| code: |
1:
2:
3:
4:
5:
6:
|
<form method="POST" action="statistik.php?action=setpassw">
<p style="text-align: center; font-family: verdana">Diese Seite ist Passwort Geschützt!</p>
<p style="text-align: center; margin-top: 0; margin-bottom: 0">Passwort:
<input type="password" name="T1" size="20"></p>
<p style="text-align: center; margin-top: 0; margin-bottom: 0"><input type="submit" value="Einloggen" name="B1"></p>
</form> |
|
eingeben!
Nur ich check net was ich hier coden soll statistik.php?action=setpassw
pls help me
GreenRover
So hier ein kleines Beipielscript:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
|
<?PHP
$password="geheim";
function request_pw()
{ ?>
<form method="POST" action="<?=$_SERVER['PHP_SELF']?>?action=set_pw">
<p style="text-align: center; font-family: verdana">Diese Seite ist Passwort Geschützt!</p>
<p style="text-align: center; margin-top: 0; margin-bottom: 0">Passwort:
<input type="password" name="pw" size="20"><br />
<input type="submit" value="Einloggen" name="B1"></p>
</form>
<?PHP exit();}
function set_pw( $pw )
{
setcookie ("login_", md5(str_rot13($pw)), time() + (3600*24*356));
}
if($_REQUEST['action']=="set_pw") set_pw( $_REQUEST['pw'] );
if($_COOKIE['login_']!=md5(str_rot13($password))) request_pw();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>seitentitel</title>
</head>
<body>
Sie sind eingelogt (-;
</body>
</html>
|
|
DragonMaster
ich hab des script mal auf meinem Server getestet aber bei mir wird die Datei also das "Sie sind eingeloggt" wir net angezeigt sondern das forumluar zum passwort eingeben bleibt!
DragonMaster
sry ich habs nochmal getestet also die seite erscheint erst wenn man dann nochmal auf "Einloggen" klickt geht das auch das das dann gleich kommt???
GreenRover
Also an sich geht das script, es kann jedoch sein ,das du das cookie noch von deienm alten script hast, welches den ja flasch ist, aber hier noch mal eien version mit einem kleine bugfix:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
|
<?PHP
$password="geheim";
function request_pw()
{ ?>
<form method="POST" action="<?=$_SERVER['PHP_SELF']?>?action=set_pw">
<p style="text-align: center; font-family: verdana">Diese Seite ist Passwort Geschützt!</p>
<p style="text-align: center; margin-top: 0; margin-bottom: 0">Passwort:
<input type="password" name="pw" size="20"><br />
<input type="submit" value="Einloggen" name="B1"></p>
</form>
<?PHP exit();}
function set_pw( $pw )
{
setcookie ("login_", md5(str_rot13($pw)), time() + (3600*24*356));
}
if($_REQUEST['action']=="set_pw") set_pw( $_REQUEST['pw'] );
if($_COOKIE['login_']!=md5(str_rot13($password)) && $_REQUEST['pw']!=$password) request_pw();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>seitentitel</title>
</head>
<body>
Sie sind eingelogt (-;
</body>
</html>
|
|
DragonMaster
ne ich hatte extra alle cookies gelöscht!!
GreenRover
Ok, das was ich da ebend gepostet ,hatte, hat den bug mit dme doppel login nicht mehr. Habe es ebend bei nochmaligen testen auch entdeckt.
DragonMaster
habs auch nochmal getestet und es funtzt!
ich hab dein code mal nem Freund von mir gezeigt und er hat gesagt das des total ne geht aber es geht doch und du hast es bewiesen!! thx
GreenRover
Tja, wiso soll es nicht gehen??
Das ist doch was relativ einfach, dein Freund sollte vileich auch noch sein PHP ein wenig aufpolieren.
DragonMaster
ja ich hab jetzt eben das script in meine Homepage eingebaut nur wenn ich einmal des PW eigegeben hab und dann erneut die datei aufrufe dann wird gleich der inhalt gezeigt
GreenRover
Jup, soll doch so oder nicht???
da das cocie ja 1 Jahr lang gültig ist (-;
DragonMaster
omg is eigendlich gut aber kann man die lebensdauer des cookies auf verringern?
GreenRover
ja, und zwar hier:
function set_pw( $pw )
{
setcookie ("login_", md5(str_rot13($pw)), time() + (3600*24*356));
}
die angabe ist in secunden:
deswegen:
(3600*24*356)
3600== eine stunde in sec
* 24 = ein Tag
* 365 = 1 Jahr.
Also kannst du es anpassen wie du möchtest,
DragonMaster
muss ich des mit der Stunde lassen? oder kann ich des auch ändern?
kannste mir mal sagen wie des für einen Tag aussieht?
GreenRover
function set_pw( $pw )
{
setcookie ("login_", md5(str_rot13($pw)), time() + (3600*24));
}
einfach das *356 wegnehmen, dann gilt es nur noch einen Tag.
DragonMaster
aso danke vielmals ich sollte mein PHP mal ein bissl verbessern
GreenRover
Das ist ganz normale Mathematik :-p