تغییر رمز عبور

jalaladdin

Active Member
برای تغییر رمز عبور این کد را نوشتم
PHP:
  <?php
  
$con=mysql_connect("localhost","root"," ");
$db=mysql_select_db("register",$con);
 $username = addslashes($_POST['username']);
    $password = md5($_POST['password']);
    $result   = mysql_query("SELECT COUNT(*) FROM `users` WHERE `username`='$username' AND `password`='$password';");
if(!$result)
{
echo "این نام کاربری وجود ندارد";
}
else
if($_POST['password']!= mysql_result($result, 0))
{
echo "شما پسورد را صحیح وارد کنید";
}
else if($_POST['newpassword']!=$_POST['confirmnewpasssword'])
{
echo "پسورد جدید با تکرار پسورد جدید با هم برابر نیستند";
}
else
$sql=mysql_query("UPDATE users SET password='{$_POST[newpassword]}'  where username='{$_POST[username]}' &  password='{$_POST[password]}'");
if($sql)
{
echo " رمز فعلی شما به رمز جدید تغییر یافت ";
}
?>
اما با این پیغامها مواجه میشم لطفا راهنمای کنید
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\4\change password.php on line 64

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\4\change password.php on line 65

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\4\change password.php on line 68

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\4\change password.php on line 68
این نام کاربری وجود ندارد
 

ziXet

مدیر انجمن PHP/MYSQL
مشکل از اتصال به دیتابیس هست!
اصلا به دیتابیس نمیتونه متصل شه که کوئری رو اجرا کنه!!!
 

RainDigital

Member
به اینجا دقت کنید:

PHP:
$con=mysql_connect("localhost","root"," ");

شما به عنوان password یک فاصله (" ") گذاشتید نه یک رشته‌ی خالی.
در ضمن دو تا نکته:

:1: "پسورد" کلمه‌ی ضایعی هست یا بنویسید گذرواژه یا با حروف انگلیسی password
:2: رشته‌هایی که داخلشون متغیر بکار نرفته مثل root رو با " ننویسید، بلکه با ' سرعت خیلی بالا میره.

خط اول کد رو اصلاح کنید:

PHP:
$con=mysql_connect('localhost','root',NULL);
 

jalaladdin

Active Member
کد را بدین صورت بازنویسی کردم اما مرورگراین خطا را میدهد

کد:
رمزعبور فعلی وارد شده صحیح نمیباشد


PHP:
<?php
  
$con=mysql_connect("localhost","root","");
$db=mysql_select_db("register",$con);
 $username = addslashes($_POST['username']);
    $password = md5($_POST['password']);
    $newpassword =md5( $_POST['newpassword']);
$confirmnewpassword = md5($_POST['confirmnewpassword']);
    $result   = mysql_query("SELECT 'password' FROM `users` WHERE `username`='$username'");
    

if(!$result)
{
echo "این نام کاربری وجود ندارد";
}
else
if($password!= mysql_result($result,0))
{
echo "رمزعبور فعلی وارد شده صحیح نمیباشد";
}
else
$sql=mysql_query("UPDATE users SET password='{$_POST[newpassword]}' where username='{$_POST[username]}' & password='{$_POST[password]}'");
if($sql)
{
echo " رمز فعلی شما به رمز جدید تغییر یافت ";
}
?>
 

P.H.P

Member
سلام

برای نام کاربری و کلمه عبور باید برابری کنی
به صورت که انجام دادی اشتباست

باید اول با استفاده از ورودی ها query بگیری بعد ببینی با رکود یکسان هست یا نه

موفق
 

jalaladdin

Active Member
یکی از دوستان زحمت کشیدند کد را بدین صورت تغییر دادند
باز هم مرورگر این خطا را میدهد

رمزعبور فعلی وارد شده صحیح نمیباشد

PHP:
 <?php
  
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("register") or die(mysql_error());

$username = mysql_real_escape_string($_POST['username']);
$password = md5($_POST['password']);

$newpassword        = md5($_POST['newpassword']);
$confirmnewpassword = md5($_POST['confirmnewpassword']);

$sql = mysql_query("SELECT 'password' FROM `users` WHERE `username`='$username' LIMIT 1;") or die(mysql_error());

if($row = mysql_fetch_row($sql)) {
    if($row[0] == $password) {
        if($newpassword == $confirmnewpassword) {
            if(mysql_query("UPDATE users SET password='$newpassword' WHERE username='$username' AND password='$password' LIMIT 1;")) {
                echo " رمز فعلی شما به رمز جدید تغییر یافت ";
            } else {
                echo 'خطا در اجرای کوئری: ', mysql_error();
            }
        } else {
            echo "کلمه عبور با تکرار کلمه عبور مطابقت ندارد";
        }
    } else {
        echo "رمزعبور فعلی وارد شده صحیح نمیباشد";
    }
} else {
    echo "این نام کاربری وجود ندارد";
}

?>
 

P.H.P

Member
درسته دیگه

حتما پسورد پست شده با اونی که تو رکورده برابر نیست
 

jalaladdin

Active Member
من رمز فعلی با md5 در دیتابیس ذخیره کردم وهمچنین برای تغییر رمز عبور، رمزفعلی را صحیح وارد میکنم مرورگر خطای
رمزعبور فعلی وارد شده صحیح نمیباشد
 

P.H.P

Member
چک کن ببین هر 2 یکی هستن

PHP:
 <?php
  
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("register") or die(mysql_error());

$username = mysql_real_escape_string($_POST['username']);
$password = md5($_POST['password']);

$newpassword        = md5($_POST['newpassword']);
$confirmnewpassword = md5($_POST['confirmnewpassword']);

$sql = mysql_query("SELECT 'password' FROM `users` WHERE `username`='$username' LIMIT 1;") or die(mysql_error());

if($row = mysql_fetch_row($sql)) {
    if($row[0] == $password) {
        if($newpassword == $confirmnewpassword) {
            if(mysql_query("UPDATE users SET password='$newpassword' WHERE username='$username' AND password='$password' LIMIT 1;")) {
                echo " رمز فعلی شما به رمز جدید تغییر یافت ";
            } else {
                echo 'خطا در اجرای کوئری: ', mysql_error();
            }
        } else {
            echo "کلمه عبور با تکرار کلمه عبور مطابقت ندارد";
        }
    } else {
        echo "user Password: " . $password . "<br />";
        echo "db Password: " . $row[0] . "<br />";
        echo "رمزعبور فعلی وارد شده صحیح نمیباشد";
    }
} else {
    echo "این نام کاربری وجود ندارد";
}

?>
 

جدیدترین ارسال ها

بالا