Script na TOTO heslo ako na to?
Script na TOTO heslo ako na to?
http://www.darkangel.orava.sk/cecka/fotoprvak.php
Chcem toto taky scrip kde zadam len ine heslo.
Chcem toto taky scrip kde zadam len ine heslo.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
skús toto:
spravnastranka.php nahraď stránkou s obsahom ktorá sa má zobraziť po prihlásení. Aby ju nebolo také ľahké nájsť, pomenuj ju napríklad Dkdf1d6sd18dpb9d.php
zlastranka.php je stranka na ktorú presmeruje ak zadá zle heslo, napríklad na nej bude obsah "ODPÁL".
Na začiatku sú takéto dvojice: "username2" => "password2" To znamená že ich môžeš nahradiť za meno a heslo. Rovankým spôsobom si môžeš dať viac mien a hesiel, alebo naopak odobrať dve aby bola len jedná možnosť.
Kód: Vybrať všetko
<?php
$premena = array ("username1" => "password1",
"username2" => "password2",
"username3" => "password3");
function check_login() {
GLOBAL $premena;
foreach ($premena as $username => $password) {
if($_POST['txtUsername'] == $username && $_POST['txtPassword'] == $password) {
$out = true;
break;
} else {
$out = false;
}
}
return $out;
}
if(isset($_POST['ok'])) {
if(check_login()) {
header ("Location: http://www.spravnastranka.php");
} else {
header ("Location: http://www.zlastranka.php");
}
} else {
?>
<form action="" method=post>
Login: <input type=text name="txtUsername"><br>
Pass: <input type=password name="txtPassword"><br>
<input type=submit name="ok">
</form>
<? } ?> zlastranka.php je stranka na ktorú presmeruje ak zadá zle heslo, napríklad na nej bude obsah "ODPÁL".
Na začiatku sú takéto dvojice: "username2" => "password2" To znamená že ich môžeš nahradiť za meno a heslo. Rovankým spôsobom si môžeš dať viac mien a hesiel, alebo naopak odobrať dve aby bola len jedná možnosť.
-
mikkimikki
Medium Professional
- Príspevky: 1128
- Registrovaný: 14 dec 2005, 16:41
- Bydlisko: Prague
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
jakub199
Medium Star
- Príspevky: 339
- Registrovaný: 21 sep 2005, 17:36
- Bydlisko: Severna stena K2 druhy by
- Kontaktovať používateľa:
tak toto daj na stranku kde sa bude logovat
a toto len uloz ako login.php
* stranka ktora sa zobrazi pod spravnom zadani hela a mena
** pri zlom zadani mena alebo hesla
ano Viem ze to nieje zabezpecene ale nech nazve tie stranky tieak divne ako 123 alebo 456 a bude to snad v pohode
Kód: Vybrať všetko
<form name="form1" method="post" action="login.php">
<p>Meno:
<input name="meno" type="text" id="meno" value="">
</p>
<p>Heslo:
<input name="heslo" type="password" id="heslo">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>a toto len uloz ako login.php
Kód: Vybrať všetko
<script language="php">
$heslo=$_POST["heslo"];
$meno=$_POST["meno"];
$name="meno ";
$pswd="heslo";
if($heslo==$pswd and $name==$meno){
header("location:*");
}
else{
header ("location:**")
}
</script>** pri zlom zadani mena alebo hesla
ano Viem ze to nieje zabezpecene ale nech nazve tie stranky tieak divne ako 123 alebo 456 a bude to snad v pohode
neuveritlne bezpecne, vymyslat komplikovane nazvy strankam,
dotvor si to podla svojho, ale takto nejak by sa to malo robit.
mozno sa vyskytne chyba, pisal som to bez odskusania.
Kód: Vybrať všetko
// index.php
<?php
session_start();
$head = '<html><head><title>moja prvotina</title></head><body>';
$end = '</body></html>';
$form = '<form name="form1" method="post" action="index.php">
Meno: <input name="meno" type="text" value=""><br />
Heslo: <input name="heslo" type="password" value=""><br />
<input type="submit" value="Submit">
</form>';
$errMsg = "";
$name = "user";
$pass = "heslo";
if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno'] == $name && $_POST['heslo'] == $pass) )
$_SESSION['logged'] = true;
else
$errMsg = "<span style="color: red; font-weight: bold;">Zadal si zle meno alebo heslo!!!</span><br />";
if( isSet($_SESSION['logged']) && $_SESSION['logged'] )
{
$html = $head."Vitaj!".$end;
}
else
{
$html = $head.$errMsg.$form.$end;
}
echo $html;
?>mozno sa vyskytne chyba, pisal som to bez odskusania.
-
programator
Medium Star
- Príspevky: 475
- Registrovaný: 18 apr 2005, 8:31
- Bydlisko: Papua new Guinea
- Kontaktovať používateľa:
taq ja by som to dotvoril a zaroven asi o dost lepsie zabezpecil...
a toto by si mal includovat do kazdej stranky ktoru xes mat "zabezpecenu"...
Tak napriklad niecotajne.php bude vyzerat takto :
<?php include("index.php"); ?>
<html>
<head.........
a ak user nebude prihlaseny, tak sa zastavi beh scriptu v tom index.php a dalej by nemal ist...
Kód: Vybrať všetko
// index.php
<?php
session_start();
$head = '<html><head><title>moja prvotina</title></head><body>';
$end = '</body></html>';
$form = '<form name="form1" method="post" action="index.php">
Meno: <input name="meno" type="text" value=""><br />
Heslo: <input name="heslo" type="password" value=""><br />
<input type="submit" value="Submit">
</form>';
$errMsg = "";
$name = "user";
$pass = "heslo";
if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno'] == $name && $_POST['heslo'] == $pass) )
$_SESSION['logged'] = true;
else
$errMsg = "<span style="color: red; font-weight: bold;">Zadal si zle meno alebo heslo!!!</span><br />";
if(empty($_SESSION['logged']) || !$_SESSION['logged'] )
{
$html = $head.$errMsg.$form.$end;
exit(); //zastavi beh scriptu php
}
echo $html;
?>Tak napriklad niecotajne.php bude vyzerat takto :
<?php include("index.php"); ?>
<html>
<head.........
a ak user nebude prihlaseny, tak sa zastavi beh scriptu v tom index.php a dalej by nemal ist...
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
tak dik, vdaka exit(); mi v konecnom dosledku server neposle ziadnu odpoved, takze ako uzivatel asi budem z toho velmi mudrejsi.programator napísal:taq ja by som to dotvoril a zaroven asi o dost lepsie zabezpecil...
co sa tyka bezpecnosti, exit() nic neriesi, nie je to bezpecnostny prvok, len ukoncuje beh.
ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.jakub199 napísal:pravdu povediac ja by som to tak urcite nerobil (myslim moj script) osobne to mam spravene tak ze ked sa logne zmeni to urcitu hodnotu v databaze
a potom mam v s scripte zriesene to ze najprv zistit aka ja hodnota v db toho kluca a ak je spravna tak pokracuje dalej a napriklad vypise z db tie fotky
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
tak ale tiez nie je problem spravit automaticke odhlasovanie pri necinnosti aj z DB .... ale ako si povedal zbytocne zlozite .. sessions to istiaIgiPoP napísal:ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
btw igipop .. v tom tvojom skripte sessions asi vobec nie je treba ked sa logujes na tej istej stranke ako je obsah ... to ti staci nastavit akukolvek premennu na true a podla nej zobrazit bud stranku alebo error hlasku ... sessions treba hlavne ak to presmerovavas na dalsiu a tam to potrebujes mat tiez zabezpecene
-
programator
Medium Star
- Príspevky: 475
- Registrovaný: 18 apr 2005, 8:31
- Bydlisko: Papua new Guinea
- Kontaktovať používateľa:
SorrY, nevsimol som si, ze kde sa mu vypisuje ta chybova hlaska...ale nejde mi do hlavy akoze som nic nevylepsil ?? sak ak neni prihlaseny tak sa nedostane ani na danu stranku... tak akoze ? urcite bezpecnejsie ako nazvat nejaky subor 123456789.php nie ? a dostavat sa tam headerom...
a teraz som to uz totalne vyriesil aj odladil....
a teraz som to uz totalne vyriesil aj odladil....
Kód: Vybrať všetko
// index.php
<?php
session_start();
$input = "<html>
<head>
<title>moja prvotina</title>
</head>
<body>
<form name=\"form\" method=\"post\" action=\"index.php\">
Meno: <input name=\"meno\" type=\"text\" value=\"\"><br />
Heslo: <input name=\"heslo\" type=\"password\" value=\"\"><br />
<input type=\"submit\" name=\"odoslat\" value=\"Submit\">
</form>";
$name = "user";
$pass = "heslo";
if( ( isSet($_POST['meno']) && isSet($_POST['heslo']) ) && ( $_POST['meno'] == $name && $_POST['heslo'] == $pass) )
{
session_register("logged");
$_SESSION['logged'] = true;
}
else if(!empty($_POST['odoslat']))
{
echo $input;
echo "<span style=\"color: red; font-weight: bold;\">Zadal si zle meno alebo heslo!!!</span><br />";
}
else echo $input;
if(empty($_SESSION['logged']) || !$_SESSION['logged'] )
{
echo "cha cha...";
exit(); //zastavi beh scriptu php
}
?>
</body></html>-
jakub199
Medium Star
- Príspevky: 339
- Registrovaný: 21 sep 2005, 17:36
- Bydlisko: Severna stena K2 druhy by
- Kontaktovať používateľa:
Beriem do uvahy ze to nieje najlepsie riesenie a je cas sa nad tym zamysliet a prepracovatIgiPoP napísal:ale ber do uvahy, ze pri kazdom requeste na server musis zistit overenie v db, co nie je narocne ale vramci celkoveho optimalizovania je to zbytocny dotaz na db.
dalsia vec je, ked sa uzivatel korektne neodhlasi, tak v db budes mat stale informaciu o spravnom prihlaseni, to znamena, ako keby ostal uzivatel navzdy prihlaseny. ked pouzijes session, tak aj ked sa uzivatel korektne neodhlasi, session expiruje na serveri (defaultne 24 min) a automaticky sa bude uzivatel nachadzat v stave odhlaseny.
filozofia toho celeho je nepouzivat presmerovania na ine stranky, je to neprakticke, najlepsie je ked sa cela stranka zobrazuje z jedneho fileu (index.php). to uz aku logiku pouzijes na vykreslovanie zvoleneho je na kazdom programatorovi. v takomto pripade je potrebne aby sa informacie prenasali v session.gwixt napísal:btw igipop .. v tom tvojom skripte sessions asi vobec nie je treba ked sa logujes na tej istej stranke ako je obsah ... to ti staci nastavit akukolvek premennu na true a podla nej zobrazit bud stranku alebo error hlasku ... sessions treba hlavne ak to presmerovavas na dalsiu a tam to potrebujes mat tiez zabezpecene
ale to urcite vies .. ja len aby to aj ostatni vedeli
// edit
to programer:
neviem ci si to aj testoval, ale od pohladu viem, ze aj ked sa spravne prihlasis, tak pri dalsom requeste globalnu premennu $_POST budes mat prazdnu a bude ti vypisovat prihlasovaci formular.
PS1: co sa zobrazi hned po uspesnom prihlaseni?
PS2: session_register() doporucujem nepouzivat a v tvojom pripade je pouzity zbytocne.
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
asi tak. najlepsie je to robit cez jednu hlavnu stranku a ostatne stranky do nej nacitavat ako moduly, potom je velmi jednoduche zabezpecit, nemohol byt nejaky modul spusteny bez toho aby bol zabaleny do hlavnej stranky.IgiPoP napísal:filozofia toho celeho je nepouzivat presmerovania na ine stranky, je to neprakticke, najlepsie je ked sa cela stranka zobrazuje z jedneho fileu (index.php). to uz aku logiku pouzijes na vykreslovanie zvoleneho je na kazdom programatorovi. v takomto pripade je potrebne aby sa informacie prenasali v session.
tiez je to dobre pre vyhladavacie roboty, alebo ked si casom zmyslis dorobit SEO adresy, nie je problem.mastermind napísal:asi tak. najlepsie je to robit cez jednu hlavnu stranku a ostatne stranky do nej nacitavat ako moduly, potom je velmi jednoduche zabezpecit, nemohol byt nejaky modul spusteny bez toho aby bol zabaleny do hlavnej stranky.
ked programujes oddelene, cize zvlast php a zvlast html, nemas problem prerobit validitu, celu SEO politiku.
vyhod je neurekom...