17. november 2004 - 13:05
Der er
27 kommentarer og 1 løsning
Simpel adgangskontrol
Hej Hej
Jeg sidder lige nu og skal have sat en adgangskontrol på nogle sider - det skal bare være en simpel en !!
Jeg har fundet en på følgende side:
http://www.hjemmesideskolen.dk/scripts/phppass/default.php Men jeg kan ikke finde ud af det....
Hjælp ??
Jeg indsender lige mine filer.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
17. november 2004 - 13:08
#1
Først skal jeg lave default.php siden - den ser sådan ud: DEFAULT.PHP <form method="post" action="bruger.php" enctype="multipart/form-data"> <fieldset> <legend>Indtast brugernavn og password</legend> <label for="t1">Brugernavn:</label> <input id="t1" type="text" name="brugernavn" /><br /> <label for="t2">Password:</label> <input id="t2" type="password" name="password" /><br /> <label for="subm"> </label> <input id="subm" type="submit" value="Log in" /> <input type="reset" name="slet" value="Slet" /> </fieldset> </form>
17. november 2004 - 13:10
#2
Så skal den tjecke password og navn, den ser således ud: BRUGER.PHP <html> <head> <title>Hej</title> </head> <body> <?php ob_start(); $brugernavn = "bruger"; $MD5_password = "lone"; $brugerdata = $_POST['brugernavn']; $password = md5($_POST['password']); if($password == "$MD5_password" && $brugerdata == "$brugernavn"){ session_start(); $_SESSION['innlogget'] = 1; $_SESSION['brugernavn'] = $brugernavn; $_SESSION['password'] = $MD5_password; header ("Location: login.php"); } else{ echo "Forkert brugernavn eller password! Tjek, at [Caps Lock] ikke er aktiveret og prøv igen."; } Ob_end_flush(); ?> ...lidt tekst.... </body> </html>
17. november 2004 - 13:13
#3
Hvis man indtaster "bruger" og "lone" skulle man komme over til denne side: LOGIN.PHP <html> <head> <title>Testtest</title> </head> <body> <?php session_start(); if($_SESSION['brugernavn'] && $_SESSION['password']) { echo "[ Goddaw - Dette er hemmeligt<br> <b>Fed-test</b> ] "; } else { echo "<p>Du skal være logget ind for at se disse sider! <a href=\"default.php\">Log in</a></p> "; } ?> </body></html>
17. november 2004 - 13:15
#4
MEN DET VIRKER IKKE !!! - Det er ligesom om, at den ikke accepterer "bruger" og "lone" ??? Hvad dælen gør jeg galt ?? - Jeg ønsker ikke at anvende kryptering eller lign. sager... Hjælp ;-)
17. november 2004 - 13:16
#5
Linien med $MD5_password = "lone"; der skal lone køres igennem en MD5 hash først
17. november 2004 - 13:23
#6
Kør passwordet gennem denne (Er ikke testet): <? $password = md5($_POST['hertasterdudetpasswordduvilha']); echo $password: ?> Værdien du får sætter du ind i $MD5_password = "lone"; istedet for lone.
17. november 2004 - 13:24
#7
Alternativ skal du lave lidt om i scriptet !
17. november 2004 - 13:25
#8
Altså: $MD5_password = md5("lone"); Og ellers, så en simpel: <?php session_start(); ?> <html><head></head> <body> <?php if!isset($_SESSION["navn"], $_SESSION["id"])) { include("loginform.php"); }else{ echo "Hej ". $_SESSION["navn"]; } ?> </body></html> loginform.php: <form action="/login.php" method="post"> <input type="hidden" name="back" value="<?php echo $_SERVER["REQUEST_URI"]; ?>"> Navn:<br> <input type="text" name="user"><br> Password:<br> <input type="password" name="pass"><br> <input type="submit" value="Login"> </form> login.php: <?php session_start(); $bruger = "brugernavn"; $passw = md5("password"); if(isset($_POST["back"], $_POST["user"], $_POST["pass"])) { if($_POST["user"] == $bruger && $_POST["pass"] == $passw) { $_SESSION["navn"] = $bruger; $_SESSION["id"] = session_id(); } header("Location:". $_POST["back"] .""); exit; } ?>
17. november 2004 - 13:26
#9
Sådan kunne det også gøres !
17. november 2004 - 13:26
#10
Hov der mangler lige en ( <?php if(!isset($_SESSION["navn"], $_SESSION["id"])) {
17. november 2004 - 13:29
#11
ehh, login.php skal så ligge i roden af dit domæne, da der bruges / for navnet. Så vil det være lige meget hvor "dybt" i dirs du befinder dig. Du vil altid submitte til domain.dk/login.php
17. november 2004 - 13:32
#12
Arhhh, shoit! jeg glemmer også lige en md5! :O) ? det er bedre spørge "omvendt" <?php session_start(); $bruger = "brugernavn"; $passw = md5("password"); if(isset($_POST["back"], $_POST["user"], $_POST["pass"])) { if($bruger == $_POST["user"] && $passw == md5($_POST["pass"])) { $_SESSION["navn"] = $bruger; $_SESSION["id"] = session_id(); } header("Location:". $_POST["back"] .""); exit; } ?>
17. november 2004 - 13:37
#13
Tak Tak Tak - Prøver lige Sukos løsning.......
17. november 2004 - 13:41
#14
Og der er heller ingen grund til at bruge ob_start() Det er blot et spm. om at "kode rigtigt", så er den ikke nødvendig. Og lad os sige at loginform.php og login.php brgge ligger i roden af dit domæne, altså domain.dk/loginform.php doamin.dk/login.php så kan du nok bruge: <?php if!isset($_SESSION["navn"], $_SESSION["id"])) { include($_SERVER["DOCUMENT_ROOT"] ."/loginform.php"); }else{ echo "Hej ". $_SESSION["navn"]; } ?> Så vil det altid være ligegyldigt hvor dybt du befinder dig i dirs
17. november 2004 - 13:42
#15
fuck, nu glemte jeg igen den ( !!!
17. november 2004 - 13:47
#16
sukos -> Kan du selv finde ud af hvad du laver lige nu ?
17. november 2004 - 13:47
#17
Jup! :O) (vil jeg da mene!) :O]
17. november 2004 - 13:50
#18
Hej Hej Jeg er ikke lige den store ørn i det her og jeg kan ikke lige finde ud af, hvilke filer jeg skal bruge og hvilke jeg ikke skal bruge.... Det ser meget rigtigt ud det du har lavet sukos, MEN - Er det for meget at forlange, hvis jeg spørger om du gider samle de filer som skal bruges, i et svar ??? Det er mere pga af dine rettelser med mere.... ;-) Jeg håber du gider. På forhånd tak for hjælpen
17. november 2004 - 14:03
#19
Okay, filen som skal beskyttes: <?php session_start(); ?> <html><head></head> <body> <?php if(!isset($_SESSION["navn"], $_SESSION["id"])) { include($_SERVER["DOCUMENT_ROOT"] ."/loginform.php"); }else{ ?> <form> <input type="button" value="Log ud" onclick="window.location.href('/login.php?logud=true');"> </form> Hej <?php echo $_SESSION["navn"]; ?> <?php } ?> </body></html> loginform.php: <form action="/login.php" method="post"> <input type="hidden" name="back" value="<?php echo $_SERVER["REQUEST_URI"]; ?>"> Navn:<br> <input type="text" name="user"><br> Password:<br> <input type="password" name="pass"><br> <input type="submit" value="Login"> </form> <?php if(isset($_SESSION["fejl"])) { echo $_SESSION["fejl"]; unset($_SESSION["fejl"]); } ?> og login.php <?php session_start(); $bruger = "brugernavn"; $passw = md5("password"); if(isset($_POST["back"], $_POST["user"], $_POST["pass"])) { if($bruger == $_POST["user"] && $passw == md5($_POST["pass"])) { $_SESSION["navn"] = $bruger; $_SESSION["id"] = session_id(); }else{ $_SESSION["fejl"] = "Forkert brugernavn eller password"; } header("Location:". $_POST["back"] .""); exit; } if(isset($_GET["logud"])) { $_SESSION = array(); session_destroy(); header("Location:/"); exit(); } ?> Og det er så meningen at loginform.php og login.php liger i roden af dit domæne. Enenste evt. "bøf" er hvis $_SERVER["DOCUMENT_ROOT"] ikke "virker" på dit domæne, altså det gi'r en forkert sti.
17. november 2004 - 22:56
#20
Hej Hej - Så er jeg tilbage. Jeg har lidt problemer...... Jeg har lavet LOGIN.PHP og LOGINFORM.PHP præcis som beskrevet ovenfor. Derudover har jeg lavet en TEST.PHP fil med følgende indhold: <?php session_start(); ?> <html><head></head> <body> <?php if(!isset($_SESSION["navn"], $_SESSION["id"])) { include($_SERVER["DOCUMENT_ROOT"] ."/loginform.php"); }else{ ?> <form> <input type="button" value="Log ud" onclick="window.location.href('/login.php?logud=true');"> </form> Dette er det hemmelige skrift, der burde komme frem hvis navn og password er rigtige.... <?php } ?> </body></html> Men det virker ikke !! Den skriver hele tiden forkert password... Er det ikke: "user" og "pass" der er adgangsgivende ??? HJÆLP - Er der nogne der kan finde fejlen ?? Tak ;-) - og fortsat god aften.
18. november 2004 - 01:45
#22
På whitehat ligger alle filer i samme dir!
18. november 2004 - 12:32
#23
Kære Sukos....Mange tak. Lidt pinligt, at jeg ikke lige havde set de rigtige ord..... Jeg har nu lavet systemet, og det virker fint - MEN: Jeg har password beskyttet en side, hvor jeg har link til alle de forskellige online redigeringssider jeg har... Alle disse "undersider" skal jo også password beskyttes, men man skal jo ikke angive password på disse sider, da man jo allerede har gjort det én gang tidligere..... Kan man ikke lave noget med, at passwordet gælder i 5 minutter eller lign ?? Hvis du forstår ?? - og mange tak for hjælpen. ;-)
18. november 2004 - 12:43
#24
...eller hvad. Er man logget ind, så længe man ikke er logget ud ?? - Selvom man forlader siden ?? Hvis du forstår ;-)
18. november 2004 - 16:02
#25
pr. default mener jeg at en session virker i 30 min. D.v.s. hvis du ikke lukker browservinduet ned, vil de sessions som er sat også virke på andre sider, selvom du har været væk fra siden. Så hvis du i de foskellige filer bruger: <?php session_start(); echo"<html><head></head>\n"; echo"<body>\n\n"; if(!isset($_SESSION["navn"], $_SESSION["id"]) || $_SESSION["id"] != session_id()) { include("loginform.php"); }else{ echo "Du er logget ind!"; // al anden kode du har................. } ?>
20. november 2004 - 11:45
#26
Har nu ændret lidt på ovenstående, så password'et md5 krypteres med javascript inden det sendes. Samt lavet et link til download! :O) Anyway, hvordan viser du dine undersider? Du kan evt. include dem i filen man også logger ind på. Og lige et svar! :O)
20. november 2004 - 19:45
#27
Smuk Smukt Jeg vender tilbage senere... Tak Tak
11. januar 2005 - 09:52
#28
Af hjertet tak.
Vi tilbyder markedets bedste kurser inden for webudvikling