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

<?php

$pass["01.01"] = "abcdef";
$pass["01.02"] = "abcdefg";
[...]
$pass["02.28"] = "nemtudom";
$pass["02.29"] = "ezt sem"; //Február 29e a szökőévek miatt
[...]
$pass["12.31"] = "szilveszter";

?>
A belepteto.php tartalma:

<html>
<head>
[...]
<body>
[...]
<form action="" method="post">
<input type="password" size="ahogy tetszik" name="dayPass">
<input type="submit" name="check_pass" value="Mehet">
</form>
[...]
</body>
</html>

<?php

if(isset($_POST["check_pass"]))
{

include("passwd.php");

$this_day = date("m.d");
$this_pass = $pass["$this_day"];

if($this_pass == $_POST["dayPass"])
{
echo "<meta http-equiv=\"Refresh\" content=\"0;url=bent_vagy.html\">";
}
else
{
echo "<meta http-equiv=\"Refresh\" content=\"0;url=hiba.html\">";
}

}

?>
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:
<?php
if($this_pass == $_POST["dayPass"]) {
   include("bent_vagy.php");
}
else {
   include("hiba.php");
}
É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:
<?php
if($_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'] ==  __FILE__) {
   exit('Ajjaj...');
}
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:

<?php

if(isset($_POST["check_pass"]))
{
  include("passwd.php");

  $this_pass = $pass[date("m.d")];

  if($this_pass == $_POST["dayPass"]) header("Location: bent_vagy.html");
  else header("Location: hiba.html");
}

?>
<html>
<head>
[...]
<body>
[...]
<form action="" method="post">
<input type="password" size="ahogy tetszik" name="dayPass">
<input type="submit" name="check_pass" value="Mehet">
</form>
[...]
</body>
</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
<?PHP
session_start();

switch($_GET['do']) {
    case 'generate-passwords':
        generate();
        break;
    case 'today-pass':
        echo todaypass();
        break;
    default:
        docheck();
}

function generate() {
    $f = @fopen('codes.txt','w+') or die('Nem írható a codes.txt file');
    for($i=1;$i<=366;$i++) {
        $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
        unset($key);
        for($keylen=0;$keylen<=3;$keylen++) {
            $key.=$pattern[rand(0,strlen($pattern)-1)];
        }
        fwrite($f,$key."\n");
    }
}

function todaypass() {
    $keys = file('codes.txt');
    return trim($keys[date("z")]);
}

function docheck() {
    $login_form = '<div><form method="POST"><input type="password" name="pass"><input type="submit" value="Belép!"></form></div>';
    if (isset($_POST['pass'])) {
        if (todaypass() == $_POST['pass']) {
            echo file_get_contents('login_ok.html');
        } else {
            echo $login_form;
            echo file_get_contents('login_err.html');
        }
    } else {
        echo "<title>Mai password: ".todaypass()."</title>";
        echo $login_form;
    }
}
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.