md5 кодиране и декодиране...

IvanAdamov

Registered
Здравейте, при регистрация в сайта, автоматично всичко се кодира с md5 hash, и в базата данни всичко е md5... обаче при логиването е проблема. Пиша нормалната парола и не мога да вляза...
дава ми грешен юзър и пасс....

та някъде трябва да кодирам и въвежданата парола, или е нещо друго?
 
При логване пак кодираш паролата и проверяваш дали хаша е същия като този в базата данни.
 
Еми така като не даваш код на логина баят трудно ще ти помогна,но мога да те опътя:
Порсто когато вземеш паролата я кодирваш и сравняваш.Ето ти пример:

PHP:
<?php
$pass=md5($_POST['pass']);
$login=$_POST['login'];
$rs=mysql_query('SELECT * FROM users WHERE login="'.$login.'" AND pass="'.$pass.'"');
if(mysql_num_rows($rs)>0)
{
echo 'pravilno';
}
else
{
echo 'greshka';
}
?>
 
ето го кода на проверката:
Код:
$username=$_POST['username']; 
$password=md5($_POST['password']);

// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$sql="SELECT * FROM users WHERE username='$username' and password='($password)'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("username");
session_register("password"); 
$_SESSION['login']=$username;
header("location:lounch.php");
}
else {
echo "Wrong Username or Password";
}
?>
 
PHP:
$username=$_POST['username'];
$password=md5($_POST['password']);

// To protect MySQL injection (more detail about MySQL injection)
$username = mysql_real_escape_string(stripslashes($username));
$password = md5(mysql_real_escape_string(stripslashes($password)));


$sql="SELECT * FROM users WHERE username='$username' and password='($password)'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("username");
session_register("password");
$_SESSION['login']=$username;
header("location:lounch.php");
}
else {
echo "Wrong Username or Password";
}
?>
 
отново грешка, да не би да е в базата данни?

това ми е реда с паролата:
Код:
	password	varchar(20)	latin1_swedish_ci		No	None
 
$username=md5($_POST['username']);
$password=md5($_POST['password']);


Щом всичко при регистрацията ти е в md5 трябва и username при логиона да го сложиш в md5 :)
 
Ако реално това
Код:
md5('$_POST[password])
ти е кода си пропуснал една скоба
 
PHP:
$username=$_POST['username'];
$password=md5($_POST['password']);

// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$sql="SELECT * FROM `users` WHERE `username`='$username' and `password`='($password)'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("username");
session_register("password");
$_SESSION['login']=$username;
header("location:lounch.php");
}
else {
echo "Wrong Username or Password";
}
?>

така?
 
IvanAdamov каза:
,md5('$_POST[password]'),
Сигурен ли си,че това ти кода?Ако е така си оправи кавичките!!

Трябва да е md5($_POST['password']);
 
Направи си полето за парола поне 40 символа и пак се регистрирай, хеша винаги е 32/40 символа.
 
action каза:
IvanAdamov каза:
,md5('$_POST[password]'),
Сигурен ли си,че това ти кода?Ако е така си оправи кавичките!!

Трябва да е md5($_POST['password']);

Код:
VALUES ('$_POST[username]',md5($_POST['password']),'$_POST[company_name]','$_POST[e_mail]','$_POST[address]','$_POST[phone]')";

дава syntax error като ги сложа там...
 
Е толкова ли е трудно да ги направиш така:
PHP:
$username=$_POST['username'];
$pass=md5($_POST['pass']);
$insert="INSERT INTO tablica(username,pass)
VALUES ('$username','$pass')";
$result=mysql_query($insert) or die ('Няма връзка с БД');
 
Nazi_93 каза:
Е толкова ли е трудно да ги направиш така:
PHP:
$username=$_POST['username'];
$pass=md5($_POST['pass']);
$insert="INSERT INTO tablica(username,pass)
VALUES ('$username','$pass')";
$result=mysql_query($insert) or die ('Няма връзка с БД');

15 поста, не можахте да разберете че му е късо полето..

PHP:
$password = stripslashes($password);
$password = mysql_real_escape_string($password);
Това е безмислено, дори бих казал глупаво да го правиш, по скоро има голям шанс да объркаш цялата концепция.След хеша, паролата няма как да има кавички, и каквито и да е било подобни специални символи, тия филтрации и подобни се правят преди да се хешира паролата.
 
Е не става и не става...
Със поле 45 символа и код:
function.login.php
Код:
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = md5(mysql_real_escape_string($password));

$sql="SELECT * FROM `users` WHERE `username`='$username' and `password`='($password)'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("username");
session_register("password");
$_SESSION['login']=$username;
header("location:lounch.php");
}
else {
echo "Wrong Username or Password";
}
?>
и
function.register.php
Код:
<?php

$sql="INSERT INTO users (username, password, company_name, e_mail, address, phone)
VALUES ('$_POST[username]',MD5('$_POST[password]'),'$_POST[company_name]','$_POST[e_mail]','$_POST[address]','$_POST[phone]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
mysql_close($con)
?>
 
Надявам се не пробваш с стария потребител, направи нов сега, и кажи какъв е резултат ;0
 

Back
Горе