24. juli 2006 - 16:06
Der er
27 kommentarer og 2 løsninger
kode til webside
Hej eksperter Jeg har en webside med en simpel login kode i php, men ville gerne have det så koden består af 6 cifre, hvoraf de 4 første cifre er stationære og de 2 sidste følger uge numrene. Dvs. 01 osv. så den skifter hver uge. Er det indviklet at lave noget i den stil, og/eller vil nogen hjælpe mig på vej?
Annonceindlæg fra SuperOffice
Ugenummeret kan du få med date("W");
Så f.eks. sådan her: $kode = "abcd"; //din stationære del if(strlen(date("W")) == 1) $kode .= "0"; //hvis det er uge 1-9 skal der tilføjes et 0 $kode .= date("W");
Jeg har lige prøvet at sætte den i en session, men det funker ikke endnu, har sikkert lavet en fejl eller 2: <?php session_start(); $kode = "abcd"; //din stationære del if(strlen(date("W")) == 1) $kode .= "0"; //hvis det er uge 1-9 skal der tilføjes et 0 $kode .= date("W"); if($_POST[submit]==$kode) { $_SESSION['godkendt']=true; header("forside.php"); } else if ($_SESSION['godkendt']=false); { header("location: ikke_adgang.php"); } ?> -------------------------------- Login.php: <form method="POST" action="session.php"> Du skal være logget ind for at benytte websiden!<br> <p>Kode:</p><INPUT type="password" name="kode"><br> <INPUT type="submit" name="submit" value="Log ind" style="background:#E2A81D;border:1px solid brown; color:#65402D; cursor:hand;"> <input type="hidden" name="" value=""> </form> Er jeg helt galt på den?
Skal $_POST[submit] ikke hellere være $_POST[kode] når det er det felt du vil kontrollere
Jo det er da vist rigtigt, det laver jeg lige om:)
Og så er det mere korrekt syntax at bruge $_POST['string'] med ' eller ", og $_POST[1] ved tal og variabler.
Nå, men jeg er på vej til søs i 3 måneder og lukker computeren nu, så tillader mig at smide et svar. Du afviser bare, hvis du mener det skal afvises :) Fortsat god sommer alle... :) !
Tak i lige måde, og god tur. Ses jo nok når du kommer hjem
Tak - og det gør vi jo nok :)
24. juli 2006 - 17:24
#10
Nu ser det sådan ud, men virker ikke endnu: <?php session_start(); $kode = "abcd"; //din stationære del if(strlen(date("W")) == 1) $kode .= "0"; //hvis det er uge 1-9 skal der tilføjes et 0 $kode .= date("W"); if ($_POST['kode']==$kode) { $_SESSION['godkendt']=true; header("medhjertet.php"); } else if ($_SESSION['godkendt']=false); { header("location: ikke_adgang.php"); } ?>
24. juli 2006 - 17:24
#11
Tak for hjælpen for nu og god tur;)
24. juli 2006 - 17:25
#12
header("medhjertet.php"); skal være: header("location: medhjertet.php"); Men det er en anden snak
24. juli 2006 - 17:28
#13
Ja ok, den er også rettet nu:), siden stopper dog ved session.php nu, ved en "The page cannot be displayed" side....
24. juli 2006 - 17:32
#14
else if ($_SESSION['godkendt']=false); til elseif ($_SESSION['godkendt']=false)
24. juli 2006 - 17:37
#15
24. juli 2006 - 17:41
#16
Det var ligegodt pokkers, så virker det skam perfekt:) Rigtig fedt, du skal have mange tak for hjælpen! Skal jeg give dig eller jaw point? Har ikke brugt systemet herinde så ofte.
24. juli 2006 - 17:41
#17
Men 2 sek. jeg ville da ændre lidt på din session fil
24. juli 2006 - 17:42
#18
ok jeg tager den med ro så;)
24. juli 2006 - 17:43
#19
Jeg ville starte med at ændre: elseif ($_SESSION['godkendt']=false) til elseif ($_SESSION['godkendt']==false) Og en masse andet
24. juli 2006 - 17:44
#20
Eller vil du have at session.php inkluderes i ALLE beskyttede filer
24. juli 2006 - 17:45
#21
ja det var egentlig planen, men hvis du har andre forslag er jeg da åben
24. juli 2006 - 17:59
#22
24. juli 2006 - 18:27
#23
Det er helt super, men jeg er lidt i tvivl om hvad fordelen er ved at lave en kontrol.php, er det ikke bare et "led" mere i kæden eller hvordan?
24. juli 2006 - 18:27
#24
Det fungerer i hvertfald 100% med bare session.php som du har lavet den sidst.
24. juli 2006 - 18:55
#25
Svar
24. juli 2006 - 18:56
#26
kontrol.php laver en kontrol om godkendt er sat til true det gør session.php overhovedet ikke
24. juli 2006 - 19:56
#27
Áh ok, tak for hjælpen med det hele, points er delt mellem jer.
Slettet bruger
25. juli 2006 - 22:18
#28
Der var lige en fejl mere i denne linie elseif ($_SESSION['godkendt']=false) da den sætter $_SESSION['godkendt'] til at være false, og derefter returnerer værdien false til elseif, så redirecten aldrig køres. Ret til: else { $_SESSION['godkendt']=false; header("location: ikke_adgang.php"); }
Slettet bruger
25. juli 2006 - 22:20
#29
Ok, jeg kan se, at den direkte fejl i koden er blevet taget hånd om i koden på leifs link, men jeg mener stadig, at den elseif bør erstatttes af den else, jeg har leveret her. (Og den inkluderer så også koden fra den else, som er i leifs kode).
Vi tilbyder markedets bedste kurser inden for webudvikling