mysql — отправьте письмо в реестр пользователей, используя переполнение стека

Я строю регистрационную форму, используя MySQL, чтобы хранить данные и работать отлично. при регистрации пользователей будет отправлено подтверждение по электронной почте для активации учетных записей пользователей. проблема не в электронном письме с подтверждением, отправляемом пользователям электронной почты, а в данные о пользователях и код активации, которые могут попасть в MySQL.

Здесь код для insert.php

<?php
//panggil file config.php untuk menghubung ke server
include('config.php');

//tangkap data dari form
$nama = $_POST['nama'];
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$alamat = $_POST['alamat'];
$telp = $_POST['telp'];
$password = mysql_real_escape_string($_POST['password']);

// regular expression for email check
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/';
if(preg_match($regex, $email))
{
$password=md5($password); // encrypted password
$activation=md5($email.time()); // encrypted email+timestamp
$count=mysql_query("SELECT id_user FROM user WHERE email='$email'");
// email check
if(mysql_num_rows($count) < 1)
{
$query = mysql_query("insert into user (nama,email,telp,password,alamat,username,activation) VALUES('$nama', '$email', '$telp', '$password', '$alamat', '$username', '$activation')") or die(mysql_error());
if ($query)
{
header('location:index.php');
}
// sending email
include ('sendEmail.php');

$to=$email;
$subject="Email verification";
$body='Hi, <br/> <br/> Silakan verifikasi dengan klik link di bawah ini. <br/> <br/> <a href="http://localhost/LAPAN-Project/verify.php?code=' . $activation . '">Verifikasi</a>';

sendEmail($to,$subject,$body);
$msg= "Registration successful, please activate email.";
}
else
{
$msg= 'The email is already taken, please try new.';
}
}
else
{
$msg = 'The email you have entered is invalid, please try again.';
}
// HTML Part
//}
?>

а вот код sendEmail.php

<?php
function sendEmail($to,$subject,$body)
{
require ('class.phpmailer.php');
$from       = "[email protected]";
$mail       = new PHPMailer();
$mail->IsSMTP(true);            // use SMTP
$mail->IsHTML(true);
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "ssl://smtp.gmail.com"; // SMTP host
$mail->Port       =  465;                    // set the SMTP port
$mail->Username   = "*********@gmail.com";  // SMTP  username
$mail->Password   = "*********";  // SMTP password
$mail->SetFrom($from, 'From Name');
$mail->AddReplyTo($from,'From Name');
$mail->Subject    = $subject;
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($email, $to);

if(!$mail->Send())
echo "Mailer Error: " . $mail->ErrorInfo;
else
echo "Message has been sent";
}

?>

У кого-нибудь есть идеи как это сделать?

1

Решение

Вместо $mail->Host = "ssl://smtp.gmail.com"; // SMTP host

просто используйте

$mail->Host = "smtp.gmail.com"; // SMTP host

0

Другие решения

Вам нужно сменить хост с помощью $ mail-> Host = «smtp.gmail.com»; // хост SMTP и $ mail-> Port = 25; // установить порт SMTP

0

По вопросам рекламы [email protected]