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(“UPDATE
    as\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);