Autor Zpráva
David1256
Profil
Dobrý den, chtěl bych se zeptat, jak docílit toho, aby mi po přihlášení uživatele zmizel přihlašovací formulář. Zatím to mám tak, že by se mi vypsaly odhlašovací tlačítko, změna hesla atd. pod formulář, ale ten by tam zůstal pořád a to chci eliminovat, protože to je docela "divoké".
Tohle je script pro přihlašování (upozorňuji, že je to bez využití databáze)
<?php 
if (isset($_POST["jmeno"]) and  isset($_POST["heslo"]))
{if (empty($_POST["jmeno"]) or empty($_POST["heslo"]))
echo "<font color=red>Nevyplnili jste potřebná pole.</font>" ;
else

{if ($jmeno == "Holy" && $heslo == "kodecek")
 echo "Odhlášení, Změna hesla atd.";
else
{
echo "<font color=red>Zadali jste nesprávné údaje.</font>";
}}} ?>


Přihlašovací formulář:
<form method="post">
<span class="font3">Jméno: </span> &nbsp;  <input class="input1" type="text" name="jmeno" >
<?php
if (isset($_POST["heslo"]))
{if (empty($_POST["jmeno"]))
echo "<br><font color=red>Nejdříve vyplňte pole.</font>";
else
if (isset($_POST["jmeno"]))
{if ($jmeno != "Holy")
echo "<br><font color=red>Zadané jméno není v databázi.</font>" ;}
}?>
<br>    <br>
<span class="font3">Heslo: </span> &nbsp;&nbsp; &nbsp;<input class="input1" type=password name="heslo" >


<?php
 {if (isset($_POST["heslo"]))
if (empty($_POST["heslo"]))
echo "<br><font color=red>Nejdříve vyplňte pole.</font>";
else
if (isset($_POST["heslo"]))
{if ($heslo != "kodecek" )
echo "<br><font color=red>Zadané heslo není správné.</font>" ;}
}?>
<br><br>
<center><input type=submit value="Přihlásit se"></center>
</form>
HajekJirka
Profil
David1256:
Napovím Ti:

podmínka (byl_odeslán_formulář) {
  //ano byl, tak se přihlásím
}
else {
  //tady vypíšu formulář...
}
panther
Profil
David1256:
formulář dej do té else větve na 9. řádku (buď vypiš odkazy „odhlásit“, atp., nebo formulář).

Možná bude chtít upravit ještě někde něco dál, odmítám se v tomto neodsazovaném kódu přehrabovat. Myšlenku jsem vyjádřil.
David1256
Profil
Tak tenhle způsob mě už taky napadl, ale pokud se nepletu, tak to nemůže fungovat. A to z toho důvodu, že přece první musím vypsat formulář, abych mohl zadat hodnoty. Takže testovat, že když není správně vyplněný formulář tak ho vypiš je nesmysl, protože ten nebude nikdy správně vyplněný, pokud nebude ještě před tím zobrazený.
David1256
Profil
HajekJirka:
....Tak se přihásím, ale já právě potřebuju vědět, jak provést to tvoje přihlásím se, tzn. po přihlášení se zbavit formuláře.
panther
Profil
David1256:
tak jinak. Standardně se to řeší tak, že pokud je prázdná sessiona, která detekuje, zda je uživatel přihlášen, vypíše se formulář. Po odeslání formuláře, kontrole dat a úspěšném přihlášení, se tato session naplní. A formulář se nezobrazí, protože je vázán na prázdnou sessionu.
David1256
Profil
A nemohl byste mi tu někdo naznačit do kódu, jak do toho ty session zapracovat?
panther
Profil
David1256:
Nejčastější potíže s PHP (FAQ)
David1256
Profil
Díky, zkrátka se to ještě musím doučit nejde vše z minuty na minutu. Prozatimně jsem to pořešil né zrovna košér přes ajaxLoader. A to asi tak, že pokud se uživatel úspěsně přihlásí, do divu s přihlašovacím formulářem se načte stránka bez přihlašovacího formuláře s odkazy jako např. odhlásit se atd.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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