我正在尝试将数据从一个PHP文件发送到另一个PHP文件以回显用户输入的数据。然后,该数据(email和email_code)将用于URL以验证用户的电子邮件地址。
我的代码如下。
如果所有验证都通过,将运行以下代码:
$user = new User();
$user->sendEmail();
Session::flash('home', 'Uw account is voltooid en u kunt nu <a href="inloggen">inloggen</a>!');
Redirect::to('index');
在我的User类中,运行以下函数(sendEmail()
):
public function sendEmail() {
include_once "mailer/class.phpmailer.php"; // include the class name
ob_start(); // start capturing output
include('mailer/mail.php'); // execute the file
$content = ob_get_contents(); // get the contents from the buffer
$email = "";
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "";
$mail->Password = "";
$mail->SetFrom("");
$mail->Subject = "";
$mail->Body = $content;
$mail->AddAddress($email);
$send = $mail->Send(); //Send the mails
if($send){
echo '<center><h3 style="color:#009933;">Mail sent successfully</h3></center>';
}
else{
echo '<center><h3 style="color:#FF3300;">Mail error: </h3></center>'.$mail->ErrorInfo;
}
ob_end_clean();
}
注意:我删除了一些隐私信息。
电子邮件正文是一个PHP文件,其中包含验证电子邮件的网址。
<a href="https://myurl.me/activate?email=<?php echo $email; ?>&email_code=<?php echo $email_code; ?>" target="_blank">Verify</a>
我尝试通过网址将变量发送到mail.php
文件,以便$email
和$email_code
可以正常工作,但在我的情况下,这是很多代码更改,这会导致更多错误。
所以,现在我正在寻找一种更简单的方法,或者将这些变量从我的注册表单传递到mail.php
文件的一些提示。
任何提示或建议都非常感谢!
谢谢!
答案 0 :(得分:0)
您的问题是,您从未在$email
方法中声明$email_code
或sendEmail()
。
我不知道你的商店在哪里发信息,所以这里有两个选择。
首先,它是唯一要传递给sendEmail()
方法
$email = $_POST['email'];
$email_code = $_POST['email_code'];
$user->sendEmail($email, $email_code);
public function sendEmail($email, $email_code) {
include_once "mailer/class.phpmailer.php"; // include the class name
ob_start(); // start capturing output
include('mailer/mail.php'); // execute the file
$content = ob_get_contents(); // get the contents from the buffer
(...)
}
第二个解决方案,这些变量包含在User
对象中(在我看来是最好的一个)
public function sendEmail() {
include_once "mailer/class.phpmailer.php"; // include the class name
ob_start(); // start capturing output
$email = $this->email;
$email_code = $this->email_code;
include('mailer/mail.php'); // execute the file
$content = ob_get_contents(); // get the contents from the buffer
(...)
}