img
Php İle E-Posta Doğrulama Ve Aktivasyon Sistemi

Php İle E-Posta Doğrulama Ve Aktivasyon Sistemi

Web projelerinde kullanıcı doğrulaması, güvenliğin sağlanması ve spam hesapların önlenmesi açısından oldukça önemlidir. PHP ile e-posta doğrulama ve aktivasyon sistemi oluşturmak, kullanıcıların hesaplarını doğrulamaları için e-posta yoluyla aktivasyon linki gönderilmesini sağlar. Bu makalede, PHP e-posta doğrulama ve aktivasyon sistemi oluşturmanın önemini, sürecini ve örnek kodlarını adım adım inceleyeceğiz.

Kullanıcı kayıt sürecinde e-posta doğrulaması, güvenli ve geçerli kullanıcıların sisteme kaydolmasını sağlar. Bu makalede, PHP kullanarak e-posta doğrulama ve aktivasyon sistemi oluşturmayı, gerekli adımları ve örnek kodları öğreneceksiniz. Anahtar kelimeler:PHP e-posta doğrulama, e-posta aktivasyon, PHP mailer, kullanıcı doğrulama.

E-posta Doğrulamanın Önemi

E-posta doğrulaması, kullanıcıların gerçek e-posta adreslerini kullanarak kaydolmalarını sağlar ve spam hesapların önüne geçer. Ayrıca, kullanıcıların e-posta adreslerine erişimleri olduğunu doğrulayarak, hesap güvenliğini artırır. E-posta doğrulama ile:

  • Geçerli e-posta adreslerine sahip kullanıcılar kaydolur.
  • Spam ve sahte hesaplar önlenir.
  • Kullanıcı hesap güvenliği sağlanır.

PHP ile E-posta Gönderme

E-posta doğrulama sürecinin ilk adımı, kullanıcının kaydolduğunda doğrulama e-postası göndermektir. Bunun için PHPMailer gibi bir kütüphane kullanabiliriz. PHPMailer, SMTP protokolü üzerinden e-posta gönderimini kolaylaştırır.

PHPMailer Kurulumu

PHPMailer'ı Composer ile kolayca kurabilirsiniz:

composer require phpmailer/phpmailer

PHPMailer ile E-posta Gönderme

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

function sendVerificationEmail($userEmail, $token) {
    $mail = new PHPMailer(true);
    try {
        $mail->isSMTP();
        $mail->Host = 'smtp.example.com';
        $mail->SMTPAuth = true;
        $mail->Username = 'your_email@example.com';
        $mail->Password = 'your_password';
        $mail->SMTPSecure = 'tls';
        $mail->Port = 587;

        $mail->setFrom('your_email@example.com', 'Mailer');
        $mail->addAddress($userEmail);

        $mail->isHTML(true);
        $mail->Subject = 'E-posta Doğrulama';
        $mail->Body    = "Lütfen hesabınızı doğrulamak için aşağıdaki linke tıklayın: <a href='http://yourdomain.com/verify.php?token=$token'>Doğrulama Linki</a>";

        $mail->send();
        echo 'Doğrulama e-postası gönderildi.';
    } catch (Exception $e) {
        echo "E-posta gönderilemedi. Mailer Hatası: {$mail->ErrorInfo}";
    }
}
?>

Doğrulama Linki ve Kullanıcı Aktivasyonu

Kullanıcı kayıt olduğunda, bir doğrulama token'ı oluşturup bunu veritabanında saklamalı ve kullanıcıya e-posta ile göndermelisiniz. Kullanıcı e-postadaki linke tıkladığında, token'ı kontrol edip hesabını aktif hale getirebilirsiniz.

Kayıt İşlemi ve Token Oluşturma

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $userEmail = $_POST['email'];
    $token = bin2hex(random_bytes(50));

    $sql = "INSERT INTO users (email, token, is_active) VALUES ('$userEmail', '$token', 0)";
    
    if ($conn->query($sql) === TRUE) {
        sendVerificationEmail($userEmail, $token);
    } else {
        echo "Hata: " . $sql . "<br>" . $conn->error;
    }
}
$conn->close();
?>

Doğrulama Linkini İşleme

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

if (isset($_GET['token'])) {
    $token = $_GET['token'];
    $sql = "SELECT * FROM users WHERE token='$token' AND is_active=0";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $sql = "UPDATE users SET is_active=1 WHERE token='$token'";
        if ($conn->query($sql) === TRUE) {
            echo "Hesabınız aktif edildi!";
        } else {
            echo "Hata: " . $conn->error;
        }
    } else {
        echo "Geçersiz veya süresi dolmuş token.";
    }
}
$conn->close();
?>

Örnek Kod ve Uygulama

Tüm süreci bir araya getiren örnek bir uygulama oluşturduk. Aşağıdaki kodlar, kullanıcı kaydı, doğrulama e-postası gönderme ve aktivasyon işlemlerini içermektedir.

Kayıt Formu (register.html)

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Kayıt Formu</title>
</head>
<body>
    <form action="register.php" method="post">
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required><br>
        <input type="submit" value="Kaydol">
    </form>
</body>
</html>

Kayıt İşleme ve E-posta Gönderme (register.php)

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

function sendVerificationEmail($userEmail, $token) {
    $mail = new PHPMailer(true);
    try {
        $mail->isSMTP();
        $mail->Host = 'smtp.example.com';
        $mail->SMTPAuth = true;
        $mail->Username = 'your_email@example.com';
        $mail->Password = 'your_password';
        $mail->SMTPSecure = 'tls';
        $mail->Port = 587;

        $mail->setFrom('your_email@example.com', 'Mailer');
        $mail->addAddress($userEmail);

        $mail->isHTML(true);
        $mail->Subject = 'E-posta Doğrulama';
        $mail->Body    = "Lütfen hesabınızı doğrulamak için aşağıdaki linke tıklayın: <a href='http://yourdomain.com/verify.php?token=$token'>Doğrulama Linki</a>";

        $mail->send();
        echo 'Doğrulama e-postası gönderildi.';
    } catch (Exception $e) {
        echo "E-posta gönderilemedi. Mailer Hatası: {$mail->ErrorInfo}";
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $userEmail = $_POST['email'];
    $token = bin2hex(random_bytes(50));

    $sql = "INSERT INTO users (email, token, is_active) VALUES ('$userEmail', '$token', 0)";
    
    if ($conn->query($sql) === TRUE) {
        sendVerificationEmail($userEmail, $token);
    } else {
        echo "Hata: " . $sql . "<br>" . $conn->error;
    }
}
$conn->close();
?>

Doğrulama İşleme (verify.php)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

if (isset($_GET['token'])) {
    $token = $_GET['token'];
    $sql = "SELECT * FROM users WHERE token='$token' AND is_active=0";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $sql = "UPDATE

 users SET is_active=1 WHERE token='$token'";
        if ($conn->query($sql) === TRUE) {
            echo "Hesabınız aktif edildi!";
        } else {
            echo "Hata: " . $conn->error;
        }
    } else {
        echo "Geçersiz veya süresi dolmuş token.";
    }
}
$conn->close();
?>

PHP ile e-posta doğrulama ve aktivasyon sistemi, kullanıcıların geçerli e-posta adresleriyle kaydolmalarını sağlayarak hesap güvenliğini artırır. Bu makalede, e-posta doğrulamanın önemini, PHP ile e-posta gönderme yöntemlerini ve doğrulama linki ile kullanıcı aktivasyon sürecini öğrendik. PHP e-posta doğrulama ve aktivasyon sistemini uygulayarak, web projelerinizi daha güvenli hale getirebilirsiniz.

İlk Yorumu Yapan Sen Ol!

Web Tasarımlar

  • Lisans Yönetim Scripti 2

    24.6K
    1440.00₺
  • Canlı Radyo Dark Scripti

    16.7K
    1440.00₺
  • Canlı Radyo Light Scripti

    9.8K
    1440.00₺
  • Rüzgar Radyo Scripti

    9.6K
  • Radyo Minimal

    5.2K
    1440.00₺
  • Ekitap Scripti

    7.3K
    4320.00₺
  • Aşk Sevgililer GünüEvlilik

    9.2K
    1440.00₺
  • Sohbet Scripti

    9.3K
  • Dialog Whatsapp Benzeri Sohbet

    5.9K
  • Firebase Chat

    4.7K
  • Web Ajans Scripti

    30.3K
    5040.00₺
  • Google Indexing Api

    1.5K
    720.00₺
  • Milando Radyo Wordpress Teması

    2.1K
    1440.00₺

Vip Tema Web Ajans Yazılımı

Profesyonel ve her yönü ile kontrol edilebilir gelişmiş çok özellikli ajans yazılımıdır. İşte öne çıkan özellikler.

  • PAYTR Ödeme Entegrasyonu
  • SHIPY Ödeme Entegrasyonu
  • WHM Hosting Satış Entegrasyonu
  • Domain Sorgulama/Satış Entegrasyonu
  • Google Authenticator
  • SMS 2 Faktörlü Doğrulama
  • Net Gsm SMS Entegrasyonu
  • İleti Merkezi SMS Entegrasyonu
  • İnteraktif SMS Entegrasyonu
  • Mas GSM SMS Entegrasyonu
img