Mysql/PHP错误:未显示$username
大家好,我发现我的Mysql/PHP错误:未显示$username,php,mysql,paypal,mysqli,Php,Mysql,Paypal,Mysqli,大家好,我发现我的phpsql没有更新表“as_users”,这是因为它无法获取$username 问题是我不知道如何让它检测到$username,它已经检测到它并将其显示为html,但当它尝试执行mysql时,它无法获取$username我不知道为什么,有人能解释或帮助我解决这个问题吗?非常感谢 更多信息:电子邮件不会获得$username也不会获得mysql,但底部的回音显示正确的用户名 <?php // // // // IPN system $username canno
phpsql
没有更新表“as_users”,这是因为它无法获取$username
问题是我不知道如何让它检测到$username
,它已经检测到它并将其显示为html,但当它尝试执行mysql
时,它无法获取$username
我不知道为什么,有人能解释或帮助我解决这个问题吗?非常感谢
更多信息:电子邮件不会获得$username
也不会获得mysql
,但底部的回音显示正确的用户名
<?php
//
//
//
// IPN system $username cannot be found in mysqli/emails but can be in html
//
//
// The way to inform the user about the status of your payment
require_once "paypal_config.php";
include 'templates/header.php';
$userDetails = $user->getDetails();
$user = $db->select("SELECT * FROM `as_users`");
$username =$userInfo['username'];
//
// FUNCTIONS
//
// Basic function for email notification
function send_mail($message,$email)
{
$subject= "New Payment";
$sender= "Paypal Payment $company";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=utf-8\n";
$header .= "From: ".$sender."<".$email.">\n";
$header .= "Return-path: ". $refers."\n";
$header .= "X-Mailer: PHP/". phpversion()."\n";
$message .= "<br>";
foreach($_POST as $name=>$value)
{
$message .= $name.": ".$value."<br>";
}
mail($email, $subject, $message, $header);
}
// Examines all the IPN and turns it into a string
function Array2Str($kvsep, $entrysep, $a)
{
$str = "";
foreach ($a as $k=>$v)
{$str .= "{$k}{$kvsep}{$v}{$entrysep}";}
return $str;
}
//
// Verifying paypal message - Using POST vars rm=2 in html form
//
$req = 'cmd=_notify-validate';
$fullipnA = array();
foreach ($_POST as $key => $value)
{
$fullipnA[$key] = $value;
$encodedvalue = urlencode(stripslashes($value));
$req .= "&$key=$encodedvalue";
}
$fullipn = Array2Str(" : ", "\n", $fullipnA);
$url ='https://www.paypal.com/cgi-bin/webscr';
$curl_result=$curl_err='';
$fp = curl_init();
curl_setopt($fp, CURLOPT_URL,$url);
curl_setopt($fp, CURLOPT_RETURNTRANSFER,1);
curl_setopt($fp, CURLOPT_POST, 1);
curl_setopt($fp, CURLOPT_POSTFIELDS, $req);
curl_setopt($fp, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
curl_setopt($fp, CURLOPT_HEADER , 0);
curl_setopt($fp, CURLOPT_VERBOSE, 1);
curl_setopt($fp, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($fp, CURLOPT_TIMEOUT, 30);
$response = curl_exec($fp);
$curl_err = curl_error($fp);
curl_close($fp);
// Vars received by Paypal
$payment_status = $_POST['payment_status'];
if (strcmp ($response, "VERIFIED") == 0)
{
// Check the status of the order
if ($payment_status != "Completed")
{
send_mail("The payment was not accepted by paypal - Payment Status: $payment_status", $email);
exit;
}
// all good so far, the transaction has been confirmed so I can do all -> Update DB, stock, credit computations, activate accounts etc etc
// Vars received by Paypal
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$txn_type = $_POST['txn_type'];
$pending_reason = $_POST['pending_reason'];
$payment_type = $_POST['payment_type'];
$custom = $_POST['custom'];
$invoice =$_POST['invoice'];
// Buyer information
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$address_name=$_POST['address_name'];
$address_country=$_POST['address_country'];
$address_country_code=$_POST['address_country_code'];
$address_zip=$_POST['address_zip'];
$address_state=$_POST['address_state'];
$address_city=$_POST['address_city'];
$address_street=$_POST['address_street'];
if ($paypal_mysql) {
$mysqli = new mysqli('****', '**', '***', '**');
$stmt = $mysqli->prepare("UPDATE `as_users` SET paid='1', reg_date=CURRENT_TIMESTAMP, end_date=DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) WHERE username = ?");
$stmt->bind_param('s', $username);
$stmt->execute();
send_mail("Tried to SQL table with: $username", $email);
}
send_mail("New payment was successfully recieved from $payer_email username: $username1", $email);
}else{
//the transaction is invalid I can NOT charge the client.
send_mail("$username Invalid payment - $fullipn", $email);
}
?>
<li>User: <?php echo $username ?> </li>
用户:
这里有无效的变量名$username1
(我想应该是$username
):
还不清楚
$paypal\u mysql
来自何方。我想如果没有设置,那么您将错过您的保存代码。它是在paypal配置中设置的,并且它是=TRUE;我将其设置为username1只是为了测试另一个$username变量,即使我删除了$paypal_mysql如果它不起作用问题是它没有得到$username不清楚$userInfo
值来自哪里$username=$userInfo['username']代码>?来自include'templates/header.php';它与html一起工作,就像它在htmlIf上显示用户名一样。如果用户名打印在用户:
,那么我看不出在代码流中如何“丢失”值。最有可能的情况之一是不起作用。尝试在关键位置添加一些var\u dump($username)
。还要检查mysqli
函数是否返回真值。尝试直接在mysql中运行更新查询。如果这不起作用,则创建嵌入所有模块的尽可能小的脚本,等等,而不使用任何include
或require
。如果我把代码$stmt=$mysqli->prepare(“UPDATEas\u users
SET paid='1',reg\u date=CURRENT\u TIMESTAMP,end\u date=date\u ADD(CURRENT\u TIMESTAMP(),INTERVAL 30 DAY),其中username=?”,问题就在这里$stmt->bind_参数('s',$username)$stmt->execute();在$username下面的顶部,mysqli可以解释这一点吗?
send_mail("New payment was successfully recieved from $payer_email username: $username1", $email);