
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.
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.
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.
... 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).
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 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.
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.