Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

aktivasyonlu kayıt mail gönderme

Konu, 'PHP' kısmında kaanavsar tarafından paylaşıldı.

Etiketler:
  1. kaanavsar

    kaanavsar Yeni Üye

    Kayıt:
    7 Şubat 2018
    Mesajlar:
    20
    Beğenilen Mesajlar:
    0
    Şehir:
    istanbul
    Selam arkadaşlar,
    yeni oluşturduğum üyelik sistemime aktivasyon eklemek istiyorum
    phpmailer kullanıyorum fakat mailler gitmiyor, smtp denedim oda olmuyor birde forma mail fonksiyonlarını ekleyince hem mail yollamıyor hemde üyelik tamamlandıktan sonra gitmesi gereken login.php ye yönlenmiyor sayfa çalışmıyor hatası veriyor.
    her iki şekildede veritabanına doğru kayıt yapıyor.

    kodları if($stmt->execute()){ altındada denedim değişen bişey olmadı

    kodlarım.
    PHP:
    if(empty($username_err) && empty($password_err) && empty($confirm_password_err) && empty($email_err)){
    // Mail fonksiyonu
                    
    require_once("PHPMailer/PHPMailer.php");

                        
    $mail = new PHPMailer();
                        
    $mail->IsSMTP();
                        
    $mail->Host "mail.xxxx.com veya IP";
                        
    $mail->SMTPAuth true;
                        
    $mail->Username "xxx@xxx.com";
                        
    $mail->Password "xxxxx";
                        
    $mail->From "xxxx@xxxx.com";
                        
    $mail->Fromname $_POST['username'];
                        
    $mail->AddAddress $_POST['email'];
                        
    $mail->AddReplyTo('replyto@email.com''Reply to name');
                        
    $mail->Subject 'Kayıt formu';
                        
    $mail->Body 'Çalışırsa aktivasyon gidecek';

                        if(!
    $mail->Send()){
                           echo 
    '<font color="#F62217"><b>Gönderim Hatası: ' $mail->ErrorInfo '</b></font>';
                        } else {
          
                        echo 
    '<font color="#41A317"><b>Mesaj başarıyla gönderildi.</b></font>';
                        }
    // Token alalım
                    
    $token 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM0123456789!$/()*';
                    
    $token str_shuffle($token);
                    
    $token substr($token010);
            
    // Prepare an insert statement
            
    $sql "INSERT INTO users (username, password, email, status, token) VALUES (?, ?, ?, ?, ?)";
          
            if(
    $stmt $mysqli->prepare($sql)){
                
    // Bind variables to the prepared statement as parameters
                
    $stmt->bind_param("sssis"$param_username$param_password$param_email$param_status$param_token);
            
                
    // Set parameters
                
    $param_username $username;
                
    $param_password password_hash($passwordPASSWORD_DEFAULT); // Creates a password hash
                
    $param_email $email;
                
    $param_status 0;
                
    $param_token $token;
            
                
    // Attempt to execute the prepared statement
                
    if($stmt->execute()){
                    
    header("location: login.php");
                } else{
                    echo 
    "Something went wrong TOTAL FORM. Please try again later.";
                }
            }
          
            
    // Close statement
            
    $stmt->close();
        }

        
    // Close connection
        
    $mysqli->close();
    }
    Statment kullanarak son bölümü yapmayı beceremedim düz eski sistem kullandım :)
    ihtiyacı olan kullansın çok aranıyor.

    Buyurun hayırlı olsun
    PHP:
    <?php
    // Include config file
        
    require_once 'includes/config.php';
        
    $msg "";
        use 
    PHPMailer\PHPMailer\PHPMailer;
       
        if(
    $_SERVER["REQUEST_METHOD"] == "POST"){
           
        
    $username $password $cPassword $email "";
        
    $username_err $password_err $cPassword_err $email_err "";
       
            
    $username $mysqli->real_escape_string($_POST['username']);
            
    $password $mysqli->real_escape_string($_POST['password']);
            
    $cPassword $mysqli->real_escape_string($_POST['cPassword']);
            
    $email $mysqli->real_escape_string($_POST['email']);
           
        if(empty(
    trim($_POST["username"]))){
            
    $username_err "Please enter a username.";
        } else{
            
    // Prepare a select statement
            
    $sql "SELECT id FROM users WHERE username = ?";
           
            if(
    $stmt $mysqli->prepare($sql)){
                
    // Bind variables to the prepared statement as parameters
                
    $stmt->bind_param("s"$param_username);
               
                
    // Set parameters
                
    $param_username trim($_POST["username"]);
               
                
    // Attempt to execute the prepared statement
                
    if($stmt->execute()){
                    
    // store result
                    
    $stmt->store_result();
                   
                    if(
    $stmt->num_rows == 1){
                        
    $username_err "This username is already taken.";
                    } else{
                        
    $username trim($_POST["username"]);
                    }
                } else{
                    echo 
    "Oops! Something went wrong. Please try again later.";
                }
            }
             
            
    // Close statement
            
    $stmt->close();
        }
            if(empty(
    trim($_POST['password']))){
            
    $password_err "Please enter a password.";     
        } elseif(
    strlen(trim($_POST['password'])) < 6){
            
    $password_err "Password must have atleast 6 characters.";
        } else{
            
    $password trim($_POST['password']);
        }
       
        
    // Validate confirm password
        
    if(empty(trim($_POST["cPassword"]))){
            
    $cPassword_err 'Please confirm password.';     
        } else{
            
    $cPassword trim($_POST['cPassword']);
            if(
    $password != $cPassword){
                
    $cPassword_err 'Password did not match.';
            }
        }
        if(empty(
    trim($_POST["email"]))){
            
    $email_err "Please enter a email.";
        } else{
            
    // Prepare a select statement
            
    $sql "SELECT id FROM users WHERE email = ?";
           
            if(
    $stmt $mysqli->prepare($sql)){
                
    // Bind variables to the prepared statement as parameters
                
    $stmt->bind_param("s"$param_email);
               
                
    // Set parameters
                
    $param_email trim($_POST["email"]);
               
                
    // Attempt to execute the prepared statement
                
    if($stmt->execute()){
                    
    // store result
                    
    $stmt->store_result();
                   
                    if(
    $stmt->num_rows == 1){
                        
    $email_err "This email is already taken.";
                    } else{
                        
    $email trim($_POST["email"]);
                    }
                } else{
                    echo 
    "Oops! Something went wrong. Please try again later.";
                }
            }
             
            
    // Close statement
            
    $stmt->close();
        }
       
    if(empty(
    $username_err) && empty($password_err) && empty($cPassword_err) && empty($email_err)){
                    
    $token 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM0123456789!$/()*';
                    
    $token str_shuffle($token);
                    
    $token substr($token010);

                    
    $hashedPassword password_hash($passwordPASSWORD_DEFAULT);
                   
                    
    $mysqli->query("INSERT INTO users (username, email, password, status, token)
                        VALUES ('
    $username', '$email', '$hashedPassword', '0', '$token')");

                    include_once 
    "PHPMailer/PHPMailer.php";

                    
    $mail = new PHPMailer();
                    
    $mail->setFrom('xxx@xxxx.com');
                    
    $mail->addAddress($email$name);
                    
    $mail->Subject "Please verify email!";
                    
    $mail->isHTML(true);
                    
    $mail->Body "Please click on the link below:<br><br>
                       
                <a href='http://xxxx.com/klasor-varsa/confirm.php?email=
    $email&token=$token'>Buraya tıklayın</a>";
                    if (
    $mail->send()){
                        echo 
    "You have been registered! Please verify your email!";
                    }else{
                        echo 
    "Something wrong with sending email ! Please try again!";
                }
        }else{
                        echo 
    "Lütfen! Kırmızı ile belirtilen hataları düzeltin!";
        }
            
    //Alt if kapama
        
    $mysqli->close();
    }
    ?>
     
    Son düzenleme: 26 Mart 2018