【问题标题】:What would be the best way to keep a balance current in a $_Session variable在 $_Session 变量中保持当前余额的最佳方法是什么
【发布时间】:2015-10-22 00:49:50
【问题描述】:

我在页面顶部有这个小脚本。如果余额为 0,我希望页面重定向,如果它不是 0 id,就像要执行的页面一样。因为它在这里,它忽略 if 语句,不管它是否为真,如果我保持 exit();什么都不执行。大家帮帮我

<?php
session_start();
include('../../includes/connection.php');

$id=$_SESSION['id'];

$select_query=@mysql_query("select balance from players_signup where id=$id");
$_SESSION['balance']=@mysql_result($select_query,0,'balance');
//echo "$",$_SESSION['balance'],".00";

$balance=$_SESSION['balance'];  

if($balance<"1"){
  header('location:../../paypal/');
  exit();
}
?>

【问题讨论】:

  • 为什么要让余额成为一个会话?
  • @small 传奇,这是我将余额应用到需要的站点其他区域的原始方式,id 就像它作为一个选项一样,为什么?你有其他建议吗?
  • 您检查过错误吗?您检查过数据库返回的内容吗?停止抑制错误然后想知道问题是什么,停止使用折旧的 mysql_*
  • 没有错误,当我打印会话变量时,我看到了这些值,无论该值是小于 0 还是大于,if 语句都不会执行,另外,我感谢关于折旧的建议mysql ,我知道,这不是导致问题的原因。它不是数据库或查询问题

标签: php redirect if-statement header


【解决方案1】:

首先 mysql_ 被弃用,使用 mysqli_

然后按照这些思路使用一些东西

//conn is the connection value

$checkBalance = $conn->query("SELECT balance FROM players_signup WHERE id= '$id'");
$row= $checkBalance->fetch_assoc(); 
$balance = $row['balance'];

然后你的 if 语句

"如果余额为 0,我希望页面重定向"

if($balance ==0){
    header("location:.....");
}

参考:http://php.net/manual/en/book.mysqli.php

对我帮助很大

你有 1 作为“1”,去掉引号

【讨论】:

  • 查询不是问题,我看到余额反映在打印会话中,相信我实时站点不会有折旧查询,我必须重做某人在旧 mysql 方面所做的事情但是,那不是我的重点也不是问题
  • 删除引号并没有这样做,引号过去对我有用
  • 你可以在 jfiddle 中模拟
  • 我明白了,包含的文件有冲突
猜你喜欢
  • 2017-10-17
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多