我制作了这种点系统,用户可以在这里使用点数。用户点数确实被扣除。我没有包含很多变数,但他们都没问题。问题发生在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