Autor Zpráva
ondrej16556
Profil
Nefunguje mi prihlásenie.
Keď som sa skúšal prihlásiť so správnym heslom vypísalo mi: Nesprávne heslo.
Ale len čo som použil heslo z databáze v zašifrovanej podobe (md5) fungovalo mi to normálne, aj ma pustilo na stránku.

Kód súboru login.php:
<html>
<head>
<title>Storočná vojna > Registrácia</title>
</head>
<body bgcolor="#980000">
<?php include ("reklama.php"); ?>
<table align="center" bgcolor="#FF0000" width="900px">
<tr bgcolor="#FF0000">
<?php include ("logo.php") ?>
</tr>
<tr bgcolor="#FF0000">
<?php include ("title.php") ?>
</tr>
<tr bgcolor="#FF0000" align="center">
<?php include ("menu.php") ?>
</tr>
<tr bgcolor="#FF0000">
<?
  setcookie('jmeno', '', time());
  setcookie('heslo', '', time());
  
  require "db.php";     // pripojime se k databazi
  
  $sql =
    "SELECT heslo FROM uzivatele WHERE jmeno='{$_REQUEST['jmeno']}'";
  $vysledek = mysql_query($sql);
  
  if (!$vysledek):
    echo "Nepodarilo sa prihlásiť";
	exit;
  endif;
  
  if(!mysql_num_rows($vysledek)):
    echo "Užívateľ nenájdený.";
	exit;
  else:
     if (mysql_result($vysledek, "heslo=md5(heslo)") != $_REQUEST['heslo']):
	 echo "Nesprávne heslo.";
	 exit;
	else:
	 setcookie('jmeno', $_REQUEST['jmeno'], time()+3600);
	 setcookie('heslo', $_REQUEST['heslo'], time()+3600);
	 header ("Location: Dedina/index.php?page=uvod");
	endif;
  endif;
?>
</tr>
</table>
<div align="center" style="color:#888; font-size:12px;">Copyright © <a href="index.html" class="odkaz">rannystredovek.euweb.cz</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optimalizované pre IE 1440x900</div>
</html>


Poradili by ste mi prosím, v čom je chyba?
AM_
Profil
ondrej16556:
if (mysql_result($vysledek, "heslo=md5(heslo)") != $_REQUEST['heslo']):
to je trošku nesmysl. Spíš to vede na zajímavou matematickou úlohu, jestli existuje řetězec, který by se rovnal svému md5 :)

Správně je to takhle:
if (mysql_result($vysledek, "heslo") != md5($_REQUEST['heslo'])):
ondrej16556
Profil
Ďakujem, vyskúšam
ondrej16556
Profil
Aj tak mi ukazuje tú istú chybu
AM_
Profil
ondrej16556:
Projev trochu vlastní snahy, vypiš si echem co je v mysql_result($vysledek, "heslo") a co je v md5($_REQUEST['heslo']), třeba zjistíš, proč se to nerovná.
ondrej16556
Profil
Keď si napíšem do echa
echo "<br>"; echo (mysql_result($vysledek, "heslo") != md5($_REQUEST['heslo']));

Zobrazí sa mi číslo 1

Keď si napíšem
echo "<br>"; echo mysql_result($vysledek, "heslo");

Zobrazí sa mi heslo v zašifrovanej podobe a správne, kontroloval som podľa databáze (03226f24e601120d7b0e635fbb53de)

Keď si napíšem
	echo "<br>"; echo md5($_REQUEST['heslo']);

Zobrazí sa mi heslo v zašifrovanej podobe ale o dve písmená viac ako je v databáze (03226f24e601120d7b0e635fbb53deca)

Skúsim ešte nejaké opravy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0