2014-10-10 72 views
0

我在整个php项目中使用jquery,所以所有页面动态加载到主页面,我试图让链接只对某个用户可见,所以如果他们转到主页面并追加URL,即?mode = 55rt67,这会被存储为一个变量,并且可以在整个应用程序中进行检查。我正在使用下面,但它不起作用。有什么建议么?PHP全局变量通过页面

if (empty($_GET)) { 
$mode = "user"; 
}else{ 
define ('$mode', '($_GET['mode']); 
} 

回答

2

define用于声明常量,你想使用一个变量,而不是常量。

被更新(使用会话存储模式变量):

if (empty($_GET)) { 
    $_SESSION['mode'] = "user"; 
}else{ 
    $_SESSION['mode'] = $_GET['mode']; 
} 

而且不要忘了使用session_start每一页

+0

但变量不会被带到其他页面。 – 2014-10-10 11:51:45

+1

如果您想在其他页面中使用最简洁的方式存储会话,我会更新我的答案 – Sal00m 2014-10-10 11:52:41

+1

变量将在所有包含文件的全局范围内或这些文件内的任何代码(函数/类之外)中可用。另外,使用常量有什么问题? – James 2014-10-10 11:54:43

0

与下面的代码更改代码。

// Try this 
     if(isset($_GET['mode'])){ 
      define ('mode',$_GET['mode']); 
     }else{ 
      define ('mode',"user"); 
     } 
    echo mode; 

//OR 

     if(isset($_GET['mode'])){ 
      global $mode = $_GET['mode']; 
     }else{ 
      global $mode = "user"; 
     } 
echo $mode; 
+0

“为什么”他们应该这样做? – James 2014-10-10 11:55:44

+0

非常感谢您的帮助。 – 2014-10-10 12:43:54

0
if (empty($_GET)) { 
    $_SESSION['mode'] = "user"; 
}else{ 
    $_SESSION['mode'] = $_GET['mode']; 
} 

上述解决方案完美工作,增加在session_start索引页,而现在通过其他页面进行。

太棒了,谢谢所有