我製作了這種點系統,用戶可以在這裏使用點數。用戶點數確實被扣除。我沒有包含很多變數,但他們都沒問題。問題發生在return($success)
和return($error_message)
。函數及其返回值的問題
下面是代碼:
function died($error) {
header("Location: error_points_on.php?error=" . $error);
die();
}
function success($success) {
header("Location: success_points_on.php?success=" . $success);
die();
}
function quote_smart($value, $handle) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = "'" . mysql_real_escape_string($value, $handle) . "'";
}
return $value;
}
function product($price,$points, $name, $uname, $error_message, $success_message) {
$user_name = "cencord";
$pass_word = "cencord";
$database = "cencord";
$server = "cencord";
$db_handle = mysql_connect($server, $user_name, $pass_word);
$db_found = mysql_select_db($database, $db_handle);
if ($db_found) { // connect to DB
$uname = quote_smart($uname, $db_handle);
$SQL = mysql_query("SELECT points FROM members WHERE username=$uname");
$points = mysql_fetch_row($SQL);
$points = $points[0]; // make it a variable rather then an array
if ($points >= $price) {
$points = $points-$price; // fjern points
$points = quote_smart($points, $db_handle);
mysql_query("UPDATE members SET points=$points WHERE username = $uname");
$success_message .= "The " . $name . " has been mailed to your E-mail, please allow 5 minutes for it to arrive.<br />";
return($success_message);
}
else if ($points < $price) {
$error_message .= "You have " . $points . " you need " . $price . " points to purchase a " . $name;
return($error_message);
}
else if (!$db_found) {
$error_message .= "Could not connect to the database, please contact support";
return($error_message);
}
}
}
if($Checked1 == true) {
product(400, $points, "Some string", $uname, $error_message, $success_message); //price and name
}
if($Checked2 == true) {
product(400, $points, "Some string", $uname, $error_message, $success_message);
}
if(strlen($error_message) > 0) {
died($error_message);
}
if(strlen($success_message) > 0) {
success($success_message);
}
echo "error didnt pass at all";
我可以添加
header("Location: success_points_on.php?success=" . $success);
,而不是一回的,但我希望用戶能夠購買多件商品,(加入它,而不是回報確實有效)。
「問題發生了......」你能解釋你打算髮生什麼,以及實際發生了什麼? 「當我輸入x時,我希望看到y,但我看到z」? – Floris
我說,下面的代碼,對不起 「我可以添加 標題(」位置:?success_points_on.php成功=」 $成功); ,而不是一回的,但我希望用戶能夠購買多個項目,(增加它,而不是一個回報沒有工作) 提問者Ivan R「 –
我很抱歉,但不清楚你打算髮生什麼,以及實際發生了什麼。重複同樣的事情通常不會使它更清晰。 「當我在我的代碼中寫入」xxx「的行時,並且用戶正在嘗試執行」yyy「,然後發生」zzz「,我希望發生」qqq「,指出」添加它而不是返回工作「對於願意免費提供幫助但不願意解讀您的信息的人是不夠的,我正在努力幫助您獲得幫助。 – Floris