بازگرداندن رمز عبور

k2-4u

Well-Known Member
اگر منظور شما برگرداندن md5 (که در تاپیک دیگر بحث کردین ) هست
md5 مهندسی معکوس نداره . یعنی قابل برگرشت نیست ولی . نتیجه md5 شده
یک رشته همیشه یک مقداره یعنی

PHP:
if(md5('ali') == md5('ali'))
	echo "true";

پس با این حساب شما می تونین پسوردی که کاربر ارسال کرده رو md5 کنید و با پسورد داخل دیتابیس مقایسه کنید
 

jalaladdin

Active Member
من میخواهم وقتی کاربر برای لاگین کردن در سایت ،اگرنام کاربری وپسورد خود فراموش کرده باشد این مشخصات به ایمیلش فرستاده شود
 

k2-4u

Well-Known Member
خب پس مرز عبور رو md5 نکنید و
به صورت معمولی در دیتابیس زخیره کنید
 

Milad

Well-Known Member
كوروش جان ميتونه از اين روش استفاده كنه ...

يك عدد تصادفي با تابع Rand در نظر بگير عدد رو با md5 هش كن و به عنوان پسورد ذخيره كن و عدد اصلي رو هم به ايميل فرد به عنوان پسورد جديدش بفرست ، براي فرم لاگين هم كه تو همون تايپيك گفتم پسوردي رو كه كاربر وارد ميكنه رو با md5 هش كن و با نظير هش شدش در بانك مقايسه كن .

موفق باشي .
 

jalaladdin

Active Member
چطوری يك عدد تصادفي با تابع Rand در نظر بگيرم وعدد رو با md5 هش كنم و به عنوان پسورد ذخيره كنم و عدد اصلي رو هم به ايميل فرد به عنوان پسورد جديدش بفرستم ؟
لطفا کد رابگذارید
 
آخرین ویرایش:

Milad

Well-Known Member
به جاي لطفا کد را بگذارید بايد ميگفتي برام بنويسيد ، بيا عزيز ، اينم كد : :wink:

PHP:
$new_pass = rand(0,9999999);
$new_pass = md5($new_pass);
$new_pass = substr($new_pass,0,4);

$user_name="نام كاربري فرد درخواست دهنده پسورد جديد";
$email="ايميل فرد";
$db="اسم ديتابيس";
$table="نام جدول";
$field_user="نام فيلدي كه در اون نام هاي كاربر ذخيره ميشند";
$field_pass="نام فيلدي كه در اون پسورد ها ذخيره ميشند";



mail($email,"Your New Pass","New pass : $new_pass");

$new_pass=md5($new_pass);

mysql_connect("localhost","user","pass");//اطلاعات اتصال به ديتابييس رو   جايگزين كن

mysql_query("UPDATE `$db`.`$table` SET `$field_pass` = '$new_pass' WHERE `$field_user` = $username;);
 

jalaladdin

Active Member
دوست عزیز کسی مشق شب از شما نخواست من برای فرستادن پسورد به ایمیل کاربر این کد را نوشتم اما با این پیغام مواجه میشم راهنمای کنید ممنون
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\4\forgetpassword.php on line 136
پسورد به ایمیلتان فرستاده شد لطفا ایمیل خود راچک کنید!






PHP:
<?php
$email = $_POST['email'];
if (!isset($_POST['email'])) {
?>
<h2>باز گرداندن رمز عبور!</h2>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
    <p class="style3"><label for="email">ایمیل:</label>
    <input type="text" title="Please enter your email address" name="email" size="30"/></p>
    <p class="style3"><label title="Reset Password">&nbsp</label>
    <input type="submit" value="ارسال" class="submit-button"/></p>
</form>
<?php
}
elseif (empty($email)) {
    echo $empty_fields_message;
}
else {
$email_address=mysql_real_escape_string($email);
$status = "OK";
$msg="";
//error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
if (!stristr($email,"@") OR !stristr($email,".")) {
echo"<script>alert('شما باید یک ایمیل معتبر را وارد نمایید')</script>"; 
 echo "<meta http-equiv='refresh'  content='0; URL=forgetpassword.php'>";
$status= "NOTOK";}
echo "<br><br>";
if($status=="OK"){  $query="SELECT email,username FROM users WHERE email = '$email'";
$st=mysql_query($query);
$recs=mysql_num_rows($st);
$row=mysql_fetch_object($st);
$em=$row->email;// email is stored to a variable
 if ($recs == 0) {  echo "<center><font face='Verdana' size='2' color=red><br> متاسفانه این آدرس در دیتابیس یافت نشد . شما میتوانید در سایت عضو شوید. <BR><BR><a href='register.html'>عضویت در سایت</a> </center>"; 
 
 
 exit;}
function makeRandomPassword() { 
          $salt = "abchefghjkmnpqrstuvwxyz0123456789"; 
          srand((double)microtime()*1000000);  
          $i = 0; 
          while ($i <= 7) { 
                $num = rand() % 33; 
                $tmp = substr($salt, $num, 1); 
                $pass = $pass . $tmp; 
                $i++; 
          } 
          return $pass; 
    } 
    $password = makeRandomPassword(); 
    $password = md5($password); 
 
    $sql = mysql_query("UPDATE users SET password='$password'  
                WHERE email='$email'"); 
 
    $subject = "Your password at www.yoursite.com"; 
    $message = "Hi, we have reset your password. 
 
    New Password: $password 
 
    http://www.yoursite.com/login
    Once logged in you can change your password 
 
    Thanks! 
    Site admin 
 
    This is an automated response, please do not reply!"; 
 
   mail($email, $subject, $message, "From: yoursite.com Webmaster<[email protected]>\n 
        X-Mailer: PHP/" . phpversion()); 
    echo "پسورد به ایمیلتان فرستاده شد لطفا ایمیل خود راچک کنید!<br />"; 
    echo "<br> <a href='index.php'>ورود به سایت</a> ";
 } 
 
}
?>
 
آخرین ویرایش:

Masoud1365

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

k2-4u

Well-Known Member
نه به هیچ وج
میل سرور smtp
روی سیستم شما نصب نیست
اسکریپ رو روی وب تست کنید مشکلی نداره
 

jalaladdin

Active Member
وقتیکه آدرس ایمیل را وارد میکنم و روی ارسال کلیک میکنم رمزعبور میفرسته(در لوکال هاست) اما در قسمت لاگین اگر نام کاربری و پسورد را وارد کنم این خطا را میدهد که نام کاربری و رمزعبور شما اشتباه است پس آقای مدیر این smtp که شما گفتید باید روی لوکال نصب شود یا اینکه این smtp lمربوط به هاست است؟
 

nosrati

New Member
سلام من ميخوام ثبت نام در سايت و لاگين شدن با سي شارپ بنويسم كسي هست كمكم كنه ؟
 

k2-4u

Well-Known Member
وقتیکه آدرس ایمیل را وارد میکنم و روی ارسال کلیک میکنم رمزعبور میفرسته(در لوکال هاست) اما در قسمت لاگین اگر نام کاربری و پسورد را وارد کنم این خطا را میدهد که نام کاربری و رمزعبور شما اشتباه است پس آقای مدیر این smtp که شما گفتید باید روی لوکال نصب شود یا اینکه این smtp lمربوط به هاست است؟

اول از همه من به شما پیشنهاد میدم که . یک کتاب راهنمای PHP مطالعه کنید
چون جواب خیلی از سوالات شما در این کتاب پیدا میشه و . کار شما هم خیلی با سرعت بیشتری راه میفته
------------------------
نه لازم نیست روی localhost
SMTP نصب کنید . شما وقتی اسکریپ رو روی هاست . بریزید . هاست شما SMTP داره
ولی اگر می خوایین روی سیستم local کار کنه بله باید نصب کنید
 

tarhebartar

Member
دوست عزیز خسته نباشید و اینکه برای رفع مشکل smtp و ارسال ایمیل باید از wamp server 2.0 i استفاده کنید !

و اینکه حرف های ما چه ربطی به مشق شب داره ؟!

این رو هم بدون تا از بیس php رو یاد نگیری هیچی نمیشی !!! همیشه اونی که روی پرنده کیک گاوی می اندازه آدم بد نیست !

موفق باشید
 

jalaladdin

Active Member
لطفا این کد را برایم تحلیل کنید
PHP:
 <?php
$email = $_POST['email'];
if (!isset($_POST['email'])) {
?>
<h2>باز گرداندن رمز عبور!</h2>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
    <p class="style3"><label for="email">ایمیل:</label>
    <input type="text" title="Please enter your email address" name="email" size="30"/></p>
    <p class="style3"><label title="Reset Password">&nbsp</label>
    <input type="submit" value="ارسال" class="submit-button"/></p>
</form>
<?php
}
elseif (empty($email)) {
    echo $empty_fields_message;
}
else {
$email_address=mysql_real_escape_string($email);
$status = "OK";
$msg="";
//error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
if (!stristr($email,"@") OR !stristr($email,".")) {
echo"<script>alert('شما باید یک ایمیل معتبر را وارد نمایید')</script>"; 
 echo "<meta http-equiv='refresh'  content='0; URL=forgetpassword.php'>";
$status= "NOTOK";}
echo "<br><br>";
if($status=="OK"){  $query="SELECT email,username FROM users WHERE email = '$email'";
$st=mysql_query($query);
$recs=mysql_num_rows($st);
$row=mysql_fetch_object($st);
$em=$row->email;// email is stored to a variable
 if ($recs == 0) {  echo "<center><font face='Verdana' size='2' color=red><br> متاسفانه این آدرس در دیتابیس یافت نشد . شما میتوانید در سایت عضو شوید. <BR><BR><a href='register.html'>عضویت در سایت</a> </center>"; 
 
 
 exit;}
function makeRandomPassword() { 
          $salt = "abchefghjkmnpqrstuvwxyz0123456789"; 
          srand((double)microtime()*1000000);  
          $i = 0; 
          while ($i <= 7) { 
                $num = rand() % 33; 
                $tmp = substr($salt, $num, 1); 
                $pass = $pass . $tmp; 
                $i++; 
          } 
          return $pass; 
    } 
    $password = makeRandomPassword(); 
    $password = md5($password); 
 
    $sql = mysql_query("UPDATE users SET password='$password'  
                WHERE email='$email'"); 
 
    $subject = "Your password at www.yoursite.com"; 
    $message = "Hi, we have reset your password. 
 
    New Password: $password 
 
    http://www.yoursite.com/login
    Once logged in you can change your password 
 
    Thanks! 
    Site admin 
 
    This is an automated response, please do not reply!"; 
 
   mail($email, $subject, $message, "From: yoursite.com Webmaster<[email protected]>\n 
        X-Mailer: PHP/" . phpversion()); 
    echo "پسورد به ایمیلتان فرستاده شد لطفا ایمیل خود راچک کنید!<br />"; 
    echo "<br> <a href='index.php'>ورود به سایت</a> ";
 } 
 
}
?>
 

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

بالا