Autor Zpráva
Doraz
Profil *
Prosím o radu.
Zahesloval jsem stránku pomocí tohoto zápisu:
<?php if($_GET["heslo"]!="Hov..kleslo"){ ?>    
<!--přihlaąovací formulář -->    <form action="" method="GET"> 
<p align="center" style="text-align: center">        Heslo: 
<input type="password" name="heslo">        
<input type="submit" value="Vstupte">
</p>    </form>
<?php } else { ?>
Tajná strana
<?php } ?>

Když se nezadá žádné nebo se zadá špatné heslo, nestane se nic. Když se zadá správné heslo, objeví se "Tajná strana".
Po sem je to v pořádku.
Ale:
Když se z té "Tajné strany" vrátím v prohlížeči šipkou zpět, objeví se mi stránka vyžadující heslo. To by bylo ještě v pořádku,ale když dám šipku dopředu, dostanu se na "Tajnou stranu" i bez hesla. Stejně tak, když z "Tajné strany" přejdu zápisem nové adresy někam úplně jinam a pak dám šipku zpět, jsem zpátky na "Tajné straně".
Jak tomu zabránit?
Nikde jsem se to tady nedočetl, proto zakládám nové téma. A zdůrazňuju, že .htaccess jsem zkoušel, ale .htpasswd pak požaduje i uživatelské jméno, to já zas nepotřebuju.
Chci zaheslovat pouze jednu jedinou stránku v menu sedmi dalších, která bude jenom a pouze pro vybrané uživatele.
Díky moc....

Moderátor Davex: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Joker
Profil
Doraz:
Ona by možná stačila docela jednoduchá věc, a sice předělat odesílání dat z GET na POST.
Heslo se obvykle GETem neposílá (už proto, že výsledkem je adresa …/skript.php?heslo=zadanéheslo, což je dost nežádoucí, navíc pro přihlášení stačí si tu adresu zkopírovat a pak ji vložit).
Doraz
Profil *
Joker:
Tak jsem to zkusil podle tohoto:
<?php if($_POST["heslo"] != "mellon"){ ?>
 
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
        Zadej heslo: <input type="password" name="heslo">
        <input type="submit">
    </form>
    
<?php } else { ?>
    <h1>Vítejte v Morii!</h1>
    ... daląí tajný text
<?php } ?>
</body>
Výsledek je,bohužel, stejný......
nemeja
Profil
je to tím, že posíláš stejnej formulář 2x == vždy pravda, pokud si refreshnes stránku a zkusíš to, tak by to nemělo jít.
Doraz
Profil *
Když refresnu stránku,tak se mě Explorer zeptá, jestli chci opakovat nebo storno, když dám opakovat, jsem tam, kde jsem byl.
Možná jsem se špatně vyjádřil:
Zkrátka potřebuju to udělat tak, aby když tu "Tajnou stránku" jednou (ať už jakkoli) opustím, aby se na ni nešlo vrátit jinak, než zase s heslem....
Doraz
Profil *
Moderátor Davex: Přesunuto z duplicity Nefunkční zaheslování.

Pomocí toho scriptu http://sablony.hyps.cz/php-skripty/zaheslovani-vice-stranek.php jsem "zahesloval" stránku. Když se ale z té tajné strany vrátím šipkou zpět, dostanu se pak na ni šipkou vpřed i bez hesla, přestože v příkladu k tomuto scriptu to nejde. Ikdyž jsem si na server dal tento script úplně přesně tak, jak je napsán, stále nefunguje.
Kde může být chyba?
Je snad potřeba nějaké nastavení přímo na serveru? Podpora PHP tam samozřejmě je.
Díky moc
johnl
Profil
Moderátor Davex: Přesunuto z duplicity Nefunkční zaheslování.

Nejsem si jistý (asi to záleží na prohlížeči), ale když se vrátím zpět - otevře se z cache předchozí načtená stránka, to samé když jdu zase vpřed. Aby tě to po kliknutí na zpět (tedy na stránku s formulářem) odhlásilo, bylo by nutné odeslat požadavek k serveru (ovšem i tak by se dalo ke stránce která má být zaheslovaná proklikat pokud by byla stále uložena v cache - nedala by se však již aktualizovat).
Doraz
Profil *
Moderátor Davex: Přesunuto z duplicity Nefunkční zaheslování.

johnl:
Zkoušel jsem Explorer, Mozzilu a Operu. Všude stejné.
Jak by se měl odeslat k serveru ten požadavek? Zkusím to.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: