Autor Zpráva
milanbalog
Profil
Ahoj,
chtěl bych se zeptat chtěl bych si napsat jednoduchý přihlašovací script.

<form action="administrace/phplog/log.php" method="post">
    <fieldset>
        <legend>Přihlášení do administrace</legend>
        <label class="req">Nick:</label>
        <input type="text" name="nick" />
        <label class="req">Heslo:</label>
        <input type="password" name="heslo" />
    </fieldset>
    <input type="submit" name="submit" value="Odeslat" class="submit" />
</form>

a vyhodnocuji to scriptem


<?php $udaje=array("nick"=>"21232f297a57a5a743894a0e4a801fc3");
if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){
  echo "Jste přihlášen";
  }
else{
  echo "Nejste přihlášen";
}
?>

teď bych potřeboval vědět jestli je to úplná blbost nebo ten kód stačí něčím doplnit, nebo poupravit protože nefunguje.
Nechci použít db jelikož to bude jediný uživatel s přístupem do administrace.

Díky za rady Milan
IdemeNaHavaj
Profil
if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){
toto je blbosť..
Alphard
Profil
IdemeNaHavaj [#2]:
Proč blbost?

milanbalog:
Nevidím tam zásadní problém. Jak se projevuje nefunkčnost?
peta
Profil
<input type="text" name="nick" value="nick"/> ... <?php
$udaje=array("nick"=>"21232f297a57a5a743894a0e4a801fc3"); //???!!!
if(md5($_POST["heslo"])==$udaje[$_POST["nick"]]){ ... ?>

Pokud do policka s name="nick" zadas slovo "nick", a heslo zvolis takove, aby md5($_POST["heslo"] odpovidala "21232f297a57a5a743894a0e4a801fc3", pak to bude fungovat. ve vsech ostatnich pripadech ne.
milanbalog
Profil
Problém vyřešen i při starém scriptu měl jsem špatně nastaven .htaccess.
Velmi se omlouvám a děkuji za rady
milanbalog
Profil
Ještě jsem teď narazil na jeden problém a to s odhlášením.
Jelikož jsem si teď login.php (soubor zpracovávající přihlášení) trochu upravil tak mi nejde odhlášení.

<?php
$udaje=array("admin"=>"21232f297a57a5a743894a0e4a801fc3");
session_start();
if((!empty($_POST["heslo"]))and (!empty($_POST["nick"])))
{
    if(md5($_POST["heslo"])==$udaje[$_POST["nick"]])
     {
      $_SESSION['prihlasen']=1;
         header("location: /");
         exit;
      }
    else
      {
         echo 'Litujeme, přihlašovací údaje nejsou platné.';
       }
}

if ($_GET['odhlasit']==1)
{
    session_destroy();
    header("location: /");
    exit;
}
?>

a na zjištění session a odhlášení používám

  <?php
if($_SESSION['prihlasen']=1)
{
echo "<p>Jste přihlášen. <a style='color:black' href='administrace/phplog/login.php?odhlasit=1'>Odhlásit se</a></p>";
}
else
{
echo "<p>Nejste přihlášen.</p>";
}
?>

tak mě to po přihlášení hodí na index a vypíše <p>Jste přihlášen. <a style='color:black' href='administrace/phplog/login.php?odhlasit=1'>Odhlásit se</a></p> ale po odeslání odkazu mě to opět přesměruje na index, ale stále vypisuje že jsem přihlášen.

Nevím kde jsem udělal chybu zjišťování session mám hned 1. na indexu

Díky za rady
Alphard
Profil
Před session_destroy() ještě $_SESSION = array(); viz příklad v manuálu.
Syntey
Profil *
if($_SESSION['prihlasen']=1) Pokud jsi to zkopíroval ze svého kódu, tak tu máš chybu..Máš tam operátor přirovnání pokud se nemýlím..
milanbalog
Profil
Alphard:
díky pomohlo mi to

Syntey:
jj přepsal jsem to na

session_start();
if((!empty($_SESSION['prihlasen']))and($_SESSION['prihlasen']===1))
{
...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0