Autor Zpráva
ExisteR
Profil
Zdravím potřeboval bych pomoc jak vytvořit registrační script v PHP i s kodováním do PASSWORD více pochopitelné na obrázku - http://l4d-files.7u.cz/l2/nahled.bmp

Ukázky co už mám vytvořené a funguje skvěle až nato kodovaní :) vše mi zapisuje do db tak jak napíšu ale potreboval bych fakt to kodování :)
Registrace.php
<html>
<body>

<form action="insert.php" method="post">
Jméno: <input type="text" name="jmeno" />
Heslo: <input type="password" name="heslo" />
<input type="submit" />
</form>

</body>
</html>


Insert.php
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("web", $con);

$sql="INSERT INTO uzivatele (heslo, jmeno) VALUES ('$_POST[heslo]','$_POST[jmeno]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>
panther
Profil
ExisteR:
The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead.“ (zdroj).
Taps
Profil
ExisteR:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("web", $con);

$sql="INSERT INTO uzivatele (heslo, jmeno) VALUES ('".md5($_POST['heslo'])."','".$_POST['jmeno']."')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)

?>
ExisteR
Profil
ok díky :) a teď potřebuju když se chcu lognout tak aby se používalo to md5 heslo

login.php

<?php
  session_start();
  if(isset($_POST[odeslat]))
    {
    if(!empty($_POST[jmeno]))
      {
      $j = $_POST[jmeno];
      }
    else
      {
      $j = FALSE;
      $zprava = "Nebylo zadáno jméno.<br>";
      }
    if(!empty($_POST[heslo]))
      {
      $h = $_POST[heslo];
      }
    else
      {
      $h = FALSE;
      $zprava .= "Nebylo zadáno heslo.<br>";
      }
    if($j != FALSE AND $h != FALSE)
      {
      require_once('./phphandler/mysql_pripojit.php');
      $dotaz = "SELECT jmeno, admin FROM uzivatele WHERE jmeno = '$j' AND heslo = PASSWORD('$h')";
      $vysledek = mysqli_query($dbc, $dotaz);
      if(mysqli_num_rows($vysledek) == 1)
        {
        $radek = mysqli_fetch_array($vysledek, MYSQLI_NUM);
        $_SESSION[jmeno] = $radek[0];
        $_SESSION[admin] = $radek[1];
        }
      else
        {
        echo("Zadali jste chybné jméno nebo heslo.");
        }
      }
    }
  echo($zprava);
?>
puzzle
Profil
Já bych to udělal tak:
1. Vytahneš si to heslo z databáze
2. pak to heslo co zadáš do inputu zahasuješ
md5($_POST['heslo'])

3. no a pak to porovnáš
;-)
1Pupik1989
Profil
Rozhodně bych udělat ještě jeden input pro opakování hesla. Přece jen se někdo může překliknout a už lítají e-maily typu "Proč mi nejde heslo?"
sha1($_POST['heslo'] . md5($_POST['heslo']))
nebo jiný unikátní identifikátor místo hesla do sha1, třeba Přezdívku. Dále bych doporučil ověření zda-li už uživatel neexistuje, pokud tedy web to nebude mít povolené.

ExisteR: Login bude vypadat stejně jako registrace, takže obalené funkcí na kódování totožnou z registrace.
ExisteR
Profil
Vyresil sem to tak ze na 26 řádku což je
$dotaz = "SELECT jmeno, admin FROM uzivatele WHERE jmeno = '$j' AND heslo = PASSWORD('$h')";
sem přepsal PASSWORD na MD5 a funguje to skvěle :) Jinač děkuji za vaši podporu :)

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: