【发布时间】:2019-05-02 10:50:09
【问题描述】:
我正在制作一个代码,向买家发送一封包含代码的电子邮件(该代码也被插入到 mysql 数据库中),她或他可以兑换该代码以激活他帐户中的软件,听起来不错,但是问题是 payer_email 病毒不起作用。其余变量(如项目编号和 al)确实有效,但付款人变量不起作用。这是我的代码:
<?php
require_once 'PHPMailer/PHPMailer.php';
require_once 'PHPMailer/SMTP.php';
require_once 'PHPMailer/Exception.php';
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Location: index.php');
exit();
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://ipnpb.sandbox.paypal.com/cgi-
bin/webscr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=_notify-validate&" .
http_build_query($_POST));
$response = curl_exec($ch);
curl_close($ch);
if ($response == "VERIFIED" && $_POST['receiver_email'] ==
"-")
{
$vijftien = $_POST['payer_email'];
$name = $_POST['first_name'] . " " . $_POST['last_name'];
$price = $_POST['mc_gross'];
$currency = $_POST['mc_currency'];
$item = $_POST['item_number'];
$paymentStatus = $_POST['payment_status'];
function generateRandomString($length = 10)
{
$characters =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength -
1)];
}
return $randomString;
}
if ($item == "leerlingentool") {
$kaas = generateRandomString();
$body1 = "Hoi,
bedankt voor het kopen van onze sofftware!
Hier heb je een token. Die kun je verzilveren op
leerlingentool.website/token.php om de software op jou account te activeren
MVG Wouter Boogaard" . $kaas;
$tabel = "leerlingentool";
//if ($item == "leerlingentool" && $currency == "EUR" &&
$paymentStatus == "Completed" && $price == 2,99) {
}
if($item == "crashtool"){
$kaas = generateRandomString();
$body1 = "Hoi,
bedankt voor het kopen van onze sofftware!
Hier heb je een token. Die kun je verzilveren op
leerlingentool.website/token1.php om de software op jou account te
activeren
MVG Wouter Boogaard" . $kaas;
$tabel = "crashtool";
}
$mail = new PHPMailer();
$mail ->IsSmtp();
$mail ->SMTPAuth = true;
$mail ->SMTPDebug = 1;
$mail ->SMTPSecure = 'ssl';
$mail ->Host = 'smtp.gmail.com';
$mail ->Port = 465; //or 587 use tls if so
$mail ->IsHTML();
$mail ->Username = "-";
$mail ->Password = "-";
$mail ->Subject = "Je aankoop bij EvolvingDesk Software";
$mail ->Body = "$body1";
$mail ->AddAdress($vijftien);
$mail ->setFrom('-', 'EvolvingDesk Software');
$mail ->Send();
$db = mysqli_connect("-", "-", "-",
"-");
$sql = "INSERT INTO $tabel (token) VALUES ('$kaas')";
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$koektrommel = $mail->ErrorInfo;
fwrite($myfile, $vijftien);
fclose($myfile);
mysqli_query($db, $sql);
mysqli_close($db);
}
更新代码:
use PHPMailer\PHPMailer\PHPMailer;
require "PHPMailer/PHPMailer.php";
require "PHPMailer/Exception.php";
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Location: index.php');
exit();
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://ipnpb.sandbox.paypal.com/cgi-
bin/webscr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=_notify-validate&" .
http_build_query($_POST));
$response = curl_exec($ch);
curl_close($ch);
if ($response == "VERIFIED" && $_POST['receiver_email'] ==
"-")
{
$vijftien = $_POST['payer_email'];
$name = $_POST['first_name'] . " " . $_POST['last_name'];
$price = $_POST['mc_gross'];
$currency = $_POST['mc_currency'];
$item = $_POST['item_number'];
$paymentStatus = $_POST['payment_status'];
function generateRandomString($length = 10)
{
$characters =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength -
1)];
}
return $randomString;
}
if ($item == "leerlingentool" && $paymentStatus == "Completed") {
$kaas = generateRandomString();
$body1 = "Hoi,
bedankt voor het kopen van onze sofftware!
Hier heb je een token. Die kun je verzilveren op
leerlingentool.website/token.php om de software op jou account te activeren
MVG Wouter Boogaard" . $kaas;
$tabel = "leerlingentool";
//if ($item == "leerlingentool" && $currency == "EUR" &&
}
if($item == "crashtool" && $paymentStatus == "Completed"){
$kaas = generateRandomString();
$body1 = "Hoi,
bedankt voor het kopen van onze sofftware!
Hier heb je een token. Die kun je verzilveren op
leerlingentool.website/token1.php om de software op jou account te
activeren
MVG Wouter Boogaard" . $kaas;
$tabel = "crashtool";
}
$mail = new PHPMailer();
$mail ->IsSmtp();
$mail ->SMTPAuth = true;
$mail ->SMTPDebug = 1;
$mail ->SMTPSecure = 'ssl';
$mail ->Host = 'smtp.gmail.com';
$mail ->Port = 465; //or 587 use tls if so
$mail ->IsHTML();
$mail ->Username = "-";
$mail ->Password = "-";
$mail ->Subject = "Je aankoop bij EvolvingDesk Software";
$mail ->Body = "$body1";
$mail ->AddAdress($_POST['payer_email']);
$mail ->setFrom('-', 'EvolvingDesk Software');
$mail ->Send();
$db = mysqli_connect("", "", "",
"");
$sql = "INSERT INTO $tabel (token) VALUES ('$kaas')";
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$koektrommel = $mail->ErrorInfo;
fwrite($myfile, $_POST['payer_email']);
fclose($myfile);
mysqli_query($db, $sql);
mysqli_close($db);
}
【问题讨论】: