Facebook'ta Paylaş
Tweetle
Google Plus'ta Paylaş

PHP ile Şifremi Unuttum İşlemleri

0
Konuyu Beğen
0
#1
PHP Kod:
sifre_sifirlama.php

<?php

/*ini_set('display_errors', 1);
error_reporting(E_ALL);*/
header('Content-Type: text/html; charset=utf-8');
$dbhost ="localhost";
$dbveritabani "deneme";
$dbkullanici "root";
$dbsifre "";
$dbadi "deneme";
$baglanti mysql_connect($dbhost,$dbkullanici,$dbsifre);
$dbsec mysql_select_db('deneme');
mysql_query("SET NAMES UTF8");  // veri tabanından türkçe yazıları bozmadan çekme işlemi yapması için


$length 32;
$string "";
$characters "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-=+"// change to whatever characters you want
while ($length 0) {
 
  $string .= $characters[mt_rand(0,strlen($characters)-1)];
 
  $length -= 1;
}
$sifirlama_anahtar $string;

if (
true === isset($_POST['email'])) {

 
$sifirlama_anahtar sha1($_POST['email'] . $sifirlama_anahtar);
 
$email $_POST['email'];
} else {

echo 
'email girilmedi';
return;
}

$host $_SERVER['HTTP_HOST'];

$emailSorgu mysql_query("SELECT * FROM uyelik WHERE email = '" $email "'");

// Eğer email sistemde mevcut ise parola sıfırlama maili gönnder
if (mysql_num_rows($emailSorgu) > 0) {

require 
'PHPMailerAutoload.php';

$emailBilgileri mysql_fetch_assoc($emailSorgu);
$isim $emailBilgileri['isim'];
$soyisim $emailBilgileri['soyisim'];
$sifirlamaAdres 'sifre_yenile.php?anahtar=' $sifirlama_anahtar;
$konu 'Şifre Hatırlatma';
$mesaj '<p>Sayın&nbsp;' $isim ' ' $soyisim ',</p>
<p>Şifremi sıfırlama adresi aşağıdadır...</p>
<p>Şifre sıfırlama adresi:&nbsp; <a href="http://' 
$host '/deneme/sifre_yenile.php?anahtar=' $sifirlama_anahtar '">Tıklayınız</a></p>
'
;
$headers  'MIME-Version: 1.0' "rn";
$headers .= 'Content-type: text/html; charset=utf-8' "rn";

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host 'smtp.gmail.com' // Specify main and backup SMTP servers
$mail->SMTPAuth true   
//$mail->SMTPDebug = 1;// Enable SMTP authentication
$mail->Username 'sedakilic13@gmail.com'                // SMTP kullanıcı
$mail->Password 'aliseda1329'                          // SMTP sifre
$mail->SMTPSecure 'tls'                           // Enable encryption, 'ssl' also accepted
 
  $mail->Port 587;
$mail->CharSet 'UTF-8';
$mail->From 'sedakilic13@gmail.com';
$mail->FromName 'Seda KILIÇ';
$mail->addAddress('sedakilic13@gmail.com');     // Add a recipient
//$mail->addCC('cmrysseda@gmail.com');     // Add a recipient
$mail->addReplyTo('sedakilic13@gmail.com');

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject $konu;
$mail->Body    $mesaj;

if(!
$mail->send()) {
echo 
'Message could not be sent.';
echo 
'Mailer Error: ' $mail->ErrorInfo;
} else {
$simdi = new DateTime();
$simdi $simdi->format('Y-m-d H:i:s');

mysql_query("UPDATE `uyelik` SET `sifirlama_anahtar` = '" $sifirlama_anahtar "' , sifirlama_tarihi = '" $simdi ", onay_durum = 0' WHERE `email` = '" $email "'");
echo 
'Mail gönderildi.';
}

} else {
echo 
'email sistemde mevcut değil';
return;
}

?>



sifre_yenile.php

<?php 
include 'baglanti.php';

$sifirlama_anahtar $_GET['anahtar'];

$kayitvarmi mysql_query('SELECT id FROM uyelik WHERE sifirlama_anahtar = "'$sifirlama_anahtar'"');

if (
mysql_num_rows($kayitvarmi) == 0) {

header('Location: index.php');
}
?>


HTML kısmını ise aşağıdaki kodları kullanarak oluşturabilir, kendinize göre düzenleyebilirsiniz.


<div class="container">
 <div class="row text-center">
 <form class="form-signin col-md-6 col-md-offset-3" role="form" method="post" action="sifre_degistir.php">
       <h2 class="form-signin-heading">Şifre Değiştirme</h2>
<div class="form-group">
       <input type="text" class="form-control" name="parola" id="exampleInputEmail1" placeholder="Yeni Parola" />
</div> 
<div class="form-group">
       <input type="text" class="form-control" name="parolaonay" id="exampleInputEmail2" placeholder="Parola onay" />
</div> <br>
<button class="btn btn-lg btn-primary btn-block" type="submit">Parola Değiştir</button>
     </form> 
 </div>
 <div class="row">
  <hr class="featurette-divider">
<footer> 
       <p class="pull-right"><a href="#">Gizlilik </a> &middot; </p>
       <p>Copyright &copy; 2014</p> 
     </footer>
 </div>



Şifresini unutanlar için ise şu dosyayı kullanmak mümkün:

sifre_hatirlatma.php

<div class="container">
 <div class="row text-center">
 <form class="form-signin col-md-6 col-md-offset-3" role="form" method="post" action="sifre_sifirlama.php">
       <h2 class="form-signin-heading">Şifre Hatırlatma</h2>
<div class="form-group">
       <input type="email" class="form-control" name="email" id="exampleInputEmail1" placeholder="email" />
</div> <br>
<button class="btn btn-lg btn-primary btn-block" type="submit">Parolayı sıfırla</button>
     </form> 
 </div>
 <div class="row">
  <hr class="featurette-divider">
<footer> 
       <p class="pull-right"><a href="#">Gizlilik </a> &middot; </p>
       <p>Copyright &copy; 2014</p> 
     </footer>
 </div>
 </div>



sifre_degistir.php

<?php
include 'baglanti.php';

$sifre1 $_POST["parola"]; // 1. sifreyi cek --
$sifre2 $_POST["parolaonay"]; // 2. sifreyi cek --
$sifirlama_anahtar $_POST['anahtar'];

if (
$sifre1 != $sifre2){
echo 
"İki şifre birbirine uyuşmuyor"
header("Location: sifre_yenile.php?anahtar=" $sifirlama_anahtar);
}

$sifre1 sha1($sifre1);

$sorgu "UPDATE uyelik SET sifre = '" $sifre1 "', onay_durum = '1', sifirlama_anahtar = '', sifirlama_tarihi = '0000-00-00 00:00:00' WHERE  sifirlama_anahtar = '" $sifirlama_anahtar "' ";
$dogrulama  mysql_query($sorgu);

?>



    PHP ile Şifremi Unuttum İşlemleri
İlginizi çekebilir:
  • PHP ile Downloaded İşlemleri
  • Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi