ugrás a tartalomhoz

Napi jelszavas beléptetőrendszer átirányítással

igmetall · 2006. Szep. 4. (H), 23.18
Sziasztok!

Lenne egy olyan hatalmas kérésem, hogy valaki segítsen nekem megoldani egy problémámat. Már 3 napja agyalok a dolgon de nemtudom megoldani a dologat:

Olyan sima egy mezős űrlapot szeretnék létrehozni (csak a jelszót kérje!), amivel a felhasználó be tud lépni, és a belépéskor behozza a letöltések.html-t, ha hibás, akkor a hiba.html-t.

Úgy kéne megoldani, h 1 napra 1 jelszó legyen, tehát, 1 napig legyen érvényes 1 jelszó. Tehát 365 jelszó lenne. A jelszavakat a legegyszerűbb módon jó lenne txt-be írni...

Ez valahogy a dátum függvénnyel kéne összehozni, csak én annyira még nem értek sajnos a phphez! :(

KÉRLEK SEGÍTSETEK ELKÉSZÍTENI EZT A PROGRAMOT NEKEM!

Itt az oldal amiről szó lenne: http://sanguine.uw.hu/!/b/html/letoltesek.html

Előre is köszönöm!

Üvözlettel: IG
 
1

Segítek

Anonymous · 2006. Szep. 5. (K), 23.07
A passwd.php tartalma
  1. <?php  
  2.   
  3. $pass["01.01"] = "abcdef";  
  4. $pass["01.02"] = "abcdefg";  
  5. [...]  
  6. $pass["02.28"] = "nemtudom";  
  7. $pass["02.29"] = "ezt sem"//Február 29e a szökőévek miatt  
  8. [...]  
  9. $pass["12.31"] = "szilveszter";  
  10.   
  11. ?>  
A belepteto.php tartalma:
  1. <html>  
  2. <head>  
  3. [...]  
  4. <body>  
  5. [...]  
  6. <form action="" method="post">  
  7. <input type="password" size="ahogy tetszik" name="dayPass">  
  8. <input type="submit" name="check_pass" value="Mehet">  
  9. </form>  
  10. [...]  
  11. </body>  
  12. </html>  
  13.   
  14. <?php  
  15.   
  16. if(isset($_POST["check_pass"]))  
  17. {  
  18.   
  19. include("passwd.php");  
  20.   
  21. $this_day = date("m.d");  
  22. $this_pass = $pass["$this_day"];  
  23.   
  24. if($this_pass == $_POST["dayPass"])  
  25. {  
  26. echo "<meta http-equiv=\"Refresh\" content=\"0;url=bent_vagy.html\">";  
  27. }  
  28. else  
  29. {  
  30. echo "<meta http-equiv=\"Refresh\" content=\"0;url=hiba.html\">";  
  31. }  
  32.   
  33. }  
  34.   
  35. ?>  
Ennyike. :) Jó szórakozást.

Üdv: Ábel
2

Védelem

igmetall · 2006. Szep. 6. (Sze), 03.29
Nagyon köszönöm a segítségeteket!

Már csak 1 kérdésem lenne, amit jó lenne megoldani...

Azt szeretném elérni, hogy ha a jelszó megegyezik és a felhasználó belépett, akkor eltüntetni az elérést, mert ugye az általad készített programban ha jó jelszót adunk meg akkor =bent_vagy.html jön be.

És, ha megjegyezzük a bent_vagy.html címet, akkor simán ki tudjuk kerülni a belépés oldalt!

Ezt hogyan tudnám megoldani?

Előre is köszi
5

include()

Marcell · 2006. Szep. 6. (Sze), 11.51
Ne átirányítsd, hanem illeszd be a fájlt neki, azaz:
  1. <?php  
  2. if($this_pass == $_POST["dayPass"]) {  
  3.    include("bent_vagy.php");  
  4. }  
  5. else {  
  6.    include("hiba.php");  
  7. }  
Érdemes átnevezni esetleg php-ra a kiterjesztést a 2 fájlnál és beépíteni egy védelmet az ellen, hogy magában hívják meg. A bent_vagy.php elejére:
  1. <?php  
  2. if($_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'] ==  __FILE__) {  
  3.    exit('Ajjaj...');  
  4. }  
Ekkor csak akkor fognak lefutni, ha include()-al hívod meg, ha csak a böngészőbe írja be valaki a címét, akkor kiírja, hogy Ajjaj és aztán leáll.
3

Védelem

igmetall · 2006. Szep. 6. (Sze), 03.30
Nagyon köszönöm a segítségeteket!

Már csak 1 kérdésem lenne, amit jó lenne megoldani...

Azt szeretném elérni, hogy ha a jelszó megegyezik és a felhasználó belépett, akkor eltüntetni az elérést, mert ugye az általad készített programban ha jó jelszót adunk meg akkor =bent_vagy.html jön be.

És, ha megjegyezzük a bent_vagy.html címet, akkor simán ki tudjuk kerülni a belépés oldalt!

Ezt hogyan tudnám megoldani?

Előre is köszi
7

header

dummy · 2006. Szep. 6. (Sze), 12.15
A belepteto.php tartalma:
  1. <?php  
  2.   
  3. if(isset($_POST["check_pass"]))  
  4. {  
  5.   include("passwd.php");  
  6.   
  7.   $this_pass = $pass[date("m.d")];  
  8.   
  9.   if($this_pass == $_POST["dayPass"]) header("Location: bent_vagy.html");  
  10.   else header("Location: hiba.html");  
  11. }  
  12.   
  13. ?>  
  14. <html>  
  15. <head>  
  16. [...]  
  17. <body>  
  18. [...]  
  19. <form action="" method="post">  
  20. <input type="password" size="ahogy tetszik" name="dayPass">  
  21. <input type="submit" name="check_pass" value="Mehet">  
  22. </form>  
  23. [...]  
  24. </body>  
  25. </html>  
8

header?

Marcell · 2006. Szep. 6. (Sze), 12.24
Ha header()-rel küldöd át, akkor még mindig látni fogja az URL-t a címsorban.
11

upsz

dummy · 2006. Szep. 10. (V), 15.20
télleg.
header helyett lásson mindenki include-ot egy exittel...
4

hmm

juhasztibi · 2006. Szep. 6. (Sze), 10.40
Szerintem szebb lenne az egész ha a php minden napra generálna egy jelszót amit te elérhetnél és kiadhatnád akinek kell.
6

Itt is egy verzió

KJoci · 2006. Szep. 6. (Sze), 12.04
  1. <?PHP  
  2. session_start();  
  3.   
  4. switch($_GET['do']) {  
  5.     case 'generate-passwords':  
  6.         generate();  
  7.         break;  
  8.     case 'today-pass':  
  9.         echo todaypass();  
  10.         break;  
  11.     default:  
  12.         docheck();  
  13. }  
  14.   
  15. function generate() {  
  16.     $f = @fopen('codes.txt','w+'or die('Nem írható a codes.txt file');  
  17.     for($i=1;$i<=366;$i++) {  
  18.         $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';  
  19.         unset($key);  
  20.         for($keylen=0;$keylen<=3;$keylen++) {  
  21.             $key.=$pattern[rand(0,strlen($pattern)-1)];  
  22.         }  
  23.         fwrite($f,$key."\n");  
  24.     }  
  25. }  
  26.   
  27. function todaypass() {  
  28.     $keys = file('codes.txt');  
  29.     return trim($keys[date("z")]);  
  30. }  
  31.   
  32. function docheck() {  
  33.     $login_form = '<div><form method="POST"><input type="password" name="pass"><input type="submit" value="Belép!"></form></div>';  
  34.     if (isset($_POST['pass'])) {  
  35.         if (todaypass() == $_POST['pass']) {  
  36.             echo file_get_contents('login_ok.html');  
  37.         } else {  
  38.             echo $login_form;  
  39.             echo file_get_contents('login_err.html');  
  40.         }  
  41.     } else {  
  42.         echo "<title>Mai password: ".todaypass()."</title>";  
  43.         echo $login_form;  
  44.     }  
  45. }  
9

Generálás

igmetall · 2006. Szep. 6. (Sze), 20.30
A kód jó, csak nekem valahogy nem generálja meg a jellszót? Ezzel mit lehet tenni? Feltettem a codes.txtt az oldalra, de nekem nem generál bele jelszót!
Abba txtbe kell valamit írni?

Köszike továbbra is a sok jó embernek! :D
10

jogok

Joó Ádám · 2006. Szep. 6. (Sze), 20.51
Nézd meg, van-e írási joga a php-nak a fájlra, ha nincs, adj neki.