我使用PHP開發了一個PayPal集成頁面。付款和成功頁面也在工作,但我沒有收到用戶的電子郵件。如何在php中獲取用戶的詳細信息
home.php頁面
<?php
ob_start();
session_start();
require_once 'dbconfig.php';
error_reporting(0);
// if session is not set this will redirect to login page
if(!isset($_SESSION['user_id'])) {
header("Location: index");
exit;
}
$user_id=$_SESSION['user_id'];
$row=mysqli_fetch_array(mysqli_query($conn,"select *from `at_reg_user`
where `email`='$user_id'"));
$name=$row['fname'].' ' .$row['lname'];
?>
在home.php頁面
PayPal按鈕
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="YYHR897NQVQCY">
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
這是我的網頁成功頁面:
<?php
include 'dbconfig.php';
ob_start();
session_start();
if(!isset($_SESSION['user_id'])) {
header("Location: index");
exit;
} else {
$user_id = $_SESSION['user_id'];
$row = mysqli_fetch_array(mysqli_query($conn, "select * from `at_reg_user` where `email`='$user_id"));
$email = $row['email'];
}
$txn_id = $_GET['tx'];
$payment_gross = $_GET['amt'];
$currency_code = $_GET['cc'];
$payment_status = $_GET['st'];
if($_GET['st']=="Completed") {
$txn_id = $_GET['tx'];
$payment_gross = $_GET['amt'];
$currency_code = $_GET['cc'];
$payment_status = $_GET['st'];
//select statement for disabling user to perform back button
$result = mysqli_fetch_array(mysqli_query($conn, "SELECT txn_id FROM `payments` where `txn_id`='$txn_id'"));
if ($result > 0) {
echo("<SCRIPT LANGUAGE='JavaScript'>
window.alert(' Sorry you have already done payment')
</SCRIPT>");
} else {
$query = mysqli_query($conn, "INSERT INTO `payments`(`txn_id`, `payment_gross`, `currency_code`, `payment_status`) VALUES ('$txn_id','$payment_gross','$currency_code','$payment_status')");
if ($query) {
echo $email;
echo "<br/>";
echo $txn_id;
echo "<br/>";
echo $payment_gross;
echo "<br/>";
echo $currency_code;
echo "<br/>";
echo $payment_status;
echo "<br/>";
} else {
echo("<SCRIPT LANGUAGE='JavaScript'>
window.alert(' Payment Successful but not inserted')
</SCRIPT>");
}
}
}
echo "<h4>Payment done Successfully. Note down the above transaction details for further assistance </h4>";
header("Refresh:10; url=home");
?>
當我嘗試打印電子郵件回聲$email
,它不打印。我需要獲得emailid才能將其插入到付款表中。
...你在一個充滿安全感的網站中整合了paypal缺乏?老兄,我真的建議你刪除這個功能...... http://bobby-tables.com瞭解SQL注入以及如何防止它們。其實,每個人都可以在幾秒鐘內破解你的整個網站。使用準備好的語句,永遠不要將GET或POST變量直接放入查詢中!特別是如果你處理貝寶!!!!對不起,但這讓我發瘋了......這極其危險,你在那裏做什麼!你可以因爲這些事情而陷入困境...... – Twinfriends
@Twinfriends我想我必須學習PDO與mysqli一起準備陳述 –
你在混淆東西。準備好的陳述是如何保持querys安全的一種方式。 PDO和mysqli是查詢數據庫的兩種不同的驅動程序。因此,無論是使用PDO驅動程序學習Prepared語句,還是使用mysqli驅動程序學習準備好的語句,但是沒有「使用mysqli的PDO準備語句」 - 這不存在。你不能同時使用PDO和mysqli。 – Twinfriends