Autor Zpráva
Vopiatos
Profil
Ahoj mam tady registraci která mi ukládá heslo v md5
vse funguje ale kdyz se chci prihlasit heslo mi to nerozpozna.registraci jsem přidělal k přihlášení kde funkce md5 zapsana neni.
Nevim jak a kam bych mel vlozit nejaky kod pro prihlašení v md5.

<?php
include "./otevridb.inc";// připojení k databázi

if(isset($_POST['submit'])) {

  $login = $_POST['login'];
  $heslo = $_POST['heslo'];
  $over_heslo = $_POST['over_heslo'];
  $md5_heslo = md5($heslo);
  $jmeno = $_POST['jmeno'];
  $email = $_POST['email'];

  /* --- KONTROLA ZADANÝCH ÚDAJŮ --- */
  if($login==""){
    echo'Nebyl vyplněn login!';
  }
  else if($heslo==""){
    echo'Nebylo vyplněno heslo';
  }
  else if($over_heslo==""){
    echo'Nebylo vyplněno ověřovací heslo';
  }
  else if($heslo!=$over_heslo){
    echo'Vyplněná hesla se neshodují';
  }
  else if($email==""){
    echo'Nebyl vyplněn email';
  }
  else{
 $pripoj=MySQL_Connect("localhost", "root", "vertrigo") or Die(MySQL_Error());
MySQL_Select_Db("znova") or Die(MySQL_Error());
    $sql= mysql_query("INSERT INTO autori VALUES ('$id_autora','$login','$md5_heslo','$jmeno', '$email','false')") or die(mysql_error());
    echo'Registrace byla úspěšně dokončena!';
  }
}
?>

<form action="#" method="post">
  <table>
    <tr>
      <td>Login: </td>
      <td><input type="text" name="login" value="<?php if(isset($_POST["login"])){echo $_POST["login"];}?>" size="25" tabindex="1" /></td>
    </tr>
    <tr>
      <td>Heslo: </td>
      <td><input type="password" name="heslo" value="" size="25" tabindex="2" /></td>
    </tr>
    <tr>
      <td>Ověření hesla: </td>
      <td><input type="password" name="over_heslo" value="" size="25" tabindex="3" /></td>
    </tr>
    <tr>
      <td>Jmeno: </td>
      <td><input type="text" name="email" value="<?php if(isset($_POST["jmeno"])){echo $_POST["jmeno"];}?>" size="25" tabindex="4" /></td>
    </tr>
    <tr>
      <td>Email: </td>
      <td><input type="text" name="email" value="<?php if(isset($_POST["email"])){echo $_POST["email"];}?>" size="25" tabindex="4" /></td>
    </tr>
    <tr>
      <td colspan="2"><input type="submit" name="submit" value="Registrovat se" /></td>
    </tr>
  </table>
</form>



login.php

<?php
do
{
  require_once('otevridb.inc');

  // Pøipojení k databázi.
  if (!OtevriDB())
    break;
  $autoøi = mysql_query(
      "SELECT id_autora, jmeno, heslo, vedouci FROM autori WHERE"
. " login='{$_REQUEST['login']}'");
  if (!$autoøi)
  {
    echo "Problém s redakèním systémem.";
    exit;
  }
  // Kontrola pøihlašovacího jména a hesla.
  if(!mysql_num_rows($autoøi))
  {
    echo "Neznámý uživatel.";
    exit;
  }
  else
  {
    if (mysql_result($autoøi,0, "heslo") != md5($_REQUEST["heslo"]))
    {
      echo "Neplatné heslo.";
      exit;
    }
  }
  setcookie('login', $_REQUEST['login'], time()+900);
  setcookie('heslo', $_REQUEST['heslo'], time()+900);
?>
Darker
Profil
Máš to rozbité.
Neinicializuj proměnné s diakritikou.
Musíš jako MD5 to heslo také ukládat
Tori
Profil
Vopiatos
S čím přesně je problém:

* Ověření uživatele podle databáze?
- vypište si sql dotaz (ř.10 v login.php) a spusťte ho např. v phpmyadmin, jestli nepíše chybu a vrací to co čekáte.
* Ověření stavu "přihlášen/nepřihlášen"?
- nezkoušíte během jednoho požadavku zároveň nastavit cookie a číst z $_COOKIE?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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