#1
17-05-2017, Saat: 23:47
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 ' . $isim . ' ' . $soyisim . ',</p>
<p>Şifremi sıfırlama adresi aşağıdadır...</p>
<p>Şifre sıfırlama adresi: <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> · </p>
<p>Copyright © 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> · </p>
<p>Copyright © 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);
?>