2012-08-16 84 views
0

我有一个在我的本地服务器上完美工作的代码,但在实时服务器上无法工作。isset在本地服务器上工作,但不在现场服务器上工作

我的本地服务器是WAMP,而实时服务器是使用LiteSpeed,PHP和MySQL的Unix。

问题是我想要创建一个新的会话,只有当没有任何存在。请任何人都可以帮忙吗?

确切的代码如下:

$cart = $_SESSION["cart"]; 

if (isset($cart))// this checks if session has been created already. 
$cart = $cart; // if session is already set, it uses the random value already created. 
else { 
$_SESSION["cart"] = rand(111111111,999999999);// if session has not be created  before a new randome number is picked. 
$cart = $_SESSION["cart"]; 
} 
+1

你可以更具体一点关于它不工作 - 你的意思是'$ _SESSION [“cart”]'_is_设置,但是isset没有选择它;或者它没有设置,isset告诉你它是? – andrewsi 2012-08-16 14:39:25

+0

我的意思是说,每次我重新加载页面,$ cart的价值就会改变。它不应该。 – 2012-08-16 14:40:46

+0

@EhisAsibor你叫'session_start()'吗?您的本地服务器可能启用了'session.auto_start'。 – DaveRandom 2012-08-16 14:41:02

回答

0

这应该在任何地方工作:

if(empty($_SESSION["cart"])){ 
    $_SESSION["cart"] = rand(111111111,999999999); 
    $cart = $_SESSION["cart"]; 
} else 
    $cart = $_SESSION["cart"]; 
+0

我只是特里结构这一点,但它没有工作:( – 2012-08-16 14:47:08

+0

这应该工作。它必须是别的东西。请出示更多的代码和测试结果 – Waygood 2012-08-16 14:49:41

+0

它可以在本地主机上,而不是活的服务器上 – 2012-08-16 14:53:06

0

确保在会话开始,并检查原车设置。

session_start(); 
if(!isset($_SESSION['cart'])) 
{ 
    $_SESSION['cart']=rand(111111111,999999999); 
} 
+0

是会话开始,我有session_start();在页面顶部,但我现在将测试您的修改。 – 2012-08-16 14:44:04

+0

同样的问题,它适用于我的本地主机,但不在活动服务器上。 – 2012-08-16 14:52:48

0

尝试var_dump($cart)你ASIGN并发布结果之后。

您可能还需要检查$_Session[cart]代替asigning和检查,

+0

它的$ _SESSION不$ _Session – Waygood 2012-08-16 14:43:57

+0

现在检查这个..将很快发布结果 – 2012-08-16 14:55:45

+0

没有运气同样的问题......这可能是一个与活服务器配置的问题?因为它在本地主机上完美工作 – 2012-08-16 15:00:22

3

由于isset()如果变量被设置或不被确认,这里是显而易见的:

$cart = $_SESSION["cart"]; // setting the variable $cart and assigning it some value 

if (isset($cart)) // this checks if session has been created already 
    // and it will return TRUE anyway because `$cart` is already defined above regardless value it was assigned 

而且这部分代码没有按不检查$_SESSION['key']是否已设置,而是检查$cart变量。实际上已经设置了。这里可以检查它的is_null()empty(),但不是isset()

+0

有太多人正在错误地使用isset()。这里有一个蹩脚的网站教这个吗? – Waygood 2012-08-16 14:47:47

+0

当然,这让他写道(与isset())的行为是意想不到的。 – Maykonn 2012-08-16 14:49:29

相关问题