
Zaheslovaný přístup pomocí PHP z HTML stránky.
Zdravím,
mám web napsaný v HTML a potřeboval bych, aby se mi na html stránce zobrazil formulářek pro vypsání hesla, který by po vyplnění správného hesla hodil uživatele na "tajnou" PHP stránku. Měl jsem to vyřešené pomocí JS, ale heslo zjistí každý, kdo jen trochu rozumí zdrojáku.
Do html stránky asi nemohu vložit php script, takže nevím jak to udělat.
Porádí někdo? S php moc neumím.
Pokud neumíš PHP, pochybuji, že to z nějakých příkladů slepíš...
V prvom rade si uvedom ze php bezi na serveri, takze a) php script musi byt na serveri v .php subore, b) na serveri musi bezat php interpreter (to ma snad kazdy webhosting server takze by nemal byt problem).
V html si urobis uplne obycajny formular (pole meno, heslo) a odkaz z formulara pojde na ten php subor, a v php subore skontrolujes udaje z formulara (dostanes ich pomocou get alebo post, odporucam post). Prikladov je na nete milion, to co chces su zaklady. Ak vies anglicky tak studovat mozes zacat na default.asp, je tam strucny a vystizny prehlad PHP. Teba zaujima momentalne asi najviac $_POST, t.j. php_post.asp, mas to tam aj s prikladom.
Dík, formulář bych teda pochpil. Ale nevím, co mám napsat do té ověřovací php stránky, která prověří heslo a otevře tu zaheslovanou stránku.
Scripty lepit a upravovat umím, jen je neumím psát a nemám čas se to učit, protože to krom tohoto příkladu nepotřebuji. Proto se zde ptám.
MM má pravdu, ale GET na přenos hesla nepoužívej, protože se ti uloží do historie v prohlížeči.
Další možnos je použít můj skriptík, tak nebudeš potřebovat ani žádný formulář, jen to šoupneš do PHP skriptu a přepíšeš si tam nějaké jméno a heslo.
ved pisem nech pouzije post.
Na tej linke co som ti dal (php_post.asp) mas v priklade aj to, co mas napisat do PHP scriptu. Ked nevies opisat dva riadky tak uz potom neviem co ti mam napisat.
P.S. jaj ty to asi nevies zmenit na test (if), tak o "if" si precitaj tu php_if_else.asp
Takze napises nieco take
<html>
<body>
<?php
if ($_POST["meno"]=="meno" && $_POST["heslo"]=="heslo")
echo "Toto je tajny text";
else
echo "Nespravne meno alebo heslo";
?>
</body>
</html>
Samozrejme ze to nie je idealne riesenie (mas len jedno pevne meno a heslo), ale je to najjednoduchsie riesenie. Idealne by bolo meno/heslo z databazy prip. pouzit sessions apod o com uz myslim pisal Krata nizsie, ale to su potom zlozitejsie riesenia.
MM: Jo, teď už je mi to jasné. Ještě se chci zeptat, co napsat za to echo, když chci, aby se místo místo "Toto je tajný text" zobrazila nějaká stránka.
Dík.
Obsah tej stranky, mozes aj html kod (bez uvodneho html a body, tie uz tam mas pred if, alebo vyhod html a body zpred if a z konca a komplet celu html stranku si vypises az v tom if).
Ak by si tam chcel dat odkaz na nejake ine html tak by to overovanie nemalo vobec zmysel (lebo ktokolvek kto by vedel adresu tej tajnej html stranky by si mohol tu stranku pozriet).
Ak by si chcel riadeny pristup na nejaku celu cast tvojho webu tak to je treba robit cez sessions, vid Krata.
Inac ak hladas len jednoduche zabezpecenie pre cast html webu, tak da sa predsa pouzit ochrana ktoru ma priamo server napr. zlozka v ktorej je subor .htaccess (plati tusim pre server apache, ale mozno aj pre ine servery neviem zhlavy), ty nebudes musiet robit ziaden formular, len si budes musiet vytvorit/zmodifikovat subor .htaccess a vytvorit subor .htpasswd v ktorom bude zakodovane meno/heslo. htaccess_password.html alebo http://www.elated.com/articles/password-protecting- your-pages-with-htaccess/
Ano já tak mám třeba administraci on-line rozhovorů, kdy se odpovídající přihlásí a pohybuje se mezi čtyřmi stranami.
Jde to však udělat i jako přihlášení k jediné stránce.
... to o com pisem si mozes precitat aj tu heslo.html, v sekcii zaheslovani skriptem (php) a o .htacces v sekcii serverova autentifikace.
este co sa tyka php, tak v prikaze echo nemozes pisat priamo uvodzovky ("), ale zmenis to tusim na \" ale lepsie je potom asi nejak takto, potom tam rovno skopirujes html kod z html suboru:
<? if($_POST["meno"]=="meno" && $_POST["heslo"]=="heslo"): ?>
html kod
<? else: ?>
iny html kod (nespravne meno/heslo)
<? endif ?>
Ty rady jsou fajn, ale přesto bych raději věděl jak tam můžu dát odkaz na jinou stránku. Vím co dělám. Jde o diskusní prostor pro menší skupinu lidí, kde nehrozí ATAK. Heslo se dostane jen k povolaným a dát heslo je jednodušší, než dát složitou web adresu (zejména v hospodě po pátém pivu).
Ale co chce vlastne vytvorit? Stranku z heslem, ktera te pusti na obycejnou html stranku? A co kdyz nekdo zada adresu te stranky primo a "zabezpeceni" tim obejde? Pokud chces delat stranku s omezenym pristupem, postupu zde uvedenemu se nevyhnes.
Tak to je lepsie urobit pomocou toho .htacces, potom budes mat zabezpeceny cely ten tajny web.
Ak chces tak tam vloz html kod s odkazom <a href= blablabla ... > a dotycny si na to klikne, alebo mozes pouzit automaticky redirection, napr. pomocou php funkcie header()
header("location: www bodka blablabla bodka cz");
alebo ak je to na tom istom webe ale v nejakom podadresari tajna_vetva tak mozes pouzit napr.
header("location: ./tajna_vetva/index.html");
pozn.: fcia header musi byt v <?php sekcii, a ak pouzivas fciu header() tak musis vyhodit tie tagy <html> </html> a <body> </body> zo zaciatku a konca suboru (mozes ich potom poslat pomocou prikazu echo len v tej vetve ked bolo zadane zle heslo).
Kdybyste znaly celý problém, tak byste mě chápali. Prostě chci to samé jako bylo možno pomocí JS, jen to vyřešit PHP, páč JS heslo si každý může přečíst ve zdrojáku.
Sic nevím co ty headery umí, ale nešlo by to udělat tak, aby dotyčný na nic klikat nemusel, nebo čekat na přesměrování a hodilo ho to na tu stránku???
VED TI TO PISEM, kurnik, aspon citaj poriadne co pisem.
php subor:
<?php
if ($_POST["meno"]=="meno" && $_POST["heslo"]=="heslo")
header("location: ./tajna_vetva/index.html");
else
{
echo "<html>";
echo "<body>";
echo "Nespravne meno alebo heslo";
echo "</body>";
echo "</html>";
}
?>
To co chces je ale principialna hovadina (zabezpecenie sa blizi nule). Ak ti to ale staci, tak OK.
Pochybuju že se zabezpečení rovná nule. Když nikdo nevyžvaní adresu na tu stránku, tak je zabezpečení stoprocentní. Vzhledem k tomu, že se s uživateli znám velmi dobře osobně, není důvod jim nevěřit.
Takže stačí jen uvažovat...
ty si bezpecnost predstavujes jak hurvinek valku
100% nevim nevim.. pristup jde verejnym internetem nesifrovane, predpokladam ze i sem tam lokalni poskytovatel a wifi. Tak kazdy pripojeny muze slyset odkaz na adresu
. Zustava to v pameti prohlizece, kdokoli usednuvsi k damemu stroji ma pristup a moznost se tam dosta.. mam pokracovat?
Ty si este asi nepocul o refereri, ze. Skus si dat slovo referer do google.
P.S. a dalsia vec je historia, ak PC pouzivaju viaceri tak ti ten tvoj link bude veselo svietit v historii (prip. aj v URL riadku ak tam niekto zacne zadavat podobnu URL adresu, ak je aktivne pamatanie si URL prehliadacom, vacsinou aktivne je).
Ak ti to staci tak ok, mne je to fuk. Ale mi tu prosimta nepis nieco o uvazovani, ptz jediny kto tu neuvazuje si ty.
Účel světí prostředky. Nepotřebuji enormní zabezpečení. Prakticky jde jen o diskusi, kde nechceme, aby čuměl každý návštěvník webu. Když se tam nááááhodou někdo mrkne tak se taky svět nezboří. Vše je to o tom, kolik toho, pánové, od zabezpečení očekáváte. Mě tato verze bohatě stačí. Takže děkuji.
Ved vporiadku, ak ti to staci tak ok. Len som ta (alebo pripadnych dalsich citatelov) upozornil ze to nie je dostatocne zabezpecene...
To prakticky neni zadne zabezpeceni
Tak zas trochu tajne to je, kedze ten link nikde na webe nefiguruje (a teda nenajde ho ani google apod) a keby si ho chcel uhadnut, tak nemas velku sancu (samozrejme ze tu tajnu zlozku alebo tajny html subor nech si nazve inac, nie tak ako som ho nazval ja
) Problem nastane az ked sa ten link dozvie aj niekto nepovolany (potom tu tajnu zlozku alebo html subor bude musiet premenovat, co ale nie je problem).
Záleží jakou diskuzi používáš. Například u for *BB jde udělat tajná neviditelná větev a nemusíš se tím zabývat.
Ja ti odporucam pomerne primitivne, ale ucinne riesenie pomocou js. Princip spociva, ze zadane heslo je vlastne nazov stranky, ktoru skript nasledne otvori,takze sa skript neda obist bez znalosti nazvu stranky.
Takov8 str8nka se ti stejne uloyi do historie
A? A to je nejaky problem? Ked viem heslo tak nevadi, ze je stranka v historii.
ale v historii to u MS ostane aj ked ju vymazes a da sa to dohladat (nejakym spyware :) a dalsia vec su referrery - ak z takej stranky ides na inu stranku tak ta ina stranka dostane v referreri tvoje tajne URL (aspon si myslim ze ho dostane cele)
Já k plné spokojenosti používám tohle
sessions.php
Lama řešení:
http://pc.poradna.net/question/view/30054-kde-sezen u-login-form#re-30073