Php 我应该使用$\u会话还是isset($\u会话)

Php 我应该使用$\u会话还是isset($\u会话),php,session,Php,Session,我正在尝试决定是否应该使用变量isset进行基于权限的设置,例如检查用户是否是管理员。到目前为止,它在使用isset时工作得很好,但除非我省略isset,否则它在我的一个页面上不太起作用 根据我的理解,第一个if条件使用isset,因为它检查u_uid是否存在,但我在比较数字时读取,比如用户是否是管理员,我是否应该使用没有isset的$u会话?我在这里有点困惑 我尝试了使用和不使用isset,对于我的一个页面,使用isset效果更好 <?php include_once __DIR__.'

我正在尝试决定是否应该使用变量isset进行基于权限的设置,例如检查用户是否是管理员。到目前为止,它在使用isset时工作得很好,但除非我省略isset,否则它在我的一个页面上不太起作用

根据我的理解,第一个if条件使用isset,因为它检查u_uid是否存在,但我在比较数字时读取,比如用户是否是管理员,我是否应该使用没有isset的$u会话?我在这里有点困惑

我尝试了使用和不使用isset,对于我的一个页面,使用isset效果更好

<?php
include_once __DIR__.'/header2.php';
if(!isset($_SESSION['u_uid'])) {
    echo "<meta http-equiv='refresh' content='0;url=index.php?create_music_cat=notlogin'>";
    exit();
} else {
    if($_SESSION['u_permission'] == 0){
        echo "<meta http-equiv='refresh' content='0;url=header2.php?create_music_cat=nopermission'>";
        exit();

    }
}

在您的情况下,您应该同时使用

isset用于检查用户是否登录,会话的值用于检查用户是否具有管理员权限

例:


*为了让您理解,当您使用isset时,您只需检查会话是否存在而不是会话的值,因此如果会话存在,则用户已登录,然后在检查会话的值时,您可以了解登录用户是否具有管理员权限。

这是两种不同的方法,用于检查会话是否已设置,以及一种是否等于某个值;这里的动物完全不同。设置只需检查您检查的变量是否已设置,首先检查$\u会话中的u\u uid是否有值,第二个检查会话u\u权限是否等于0;可以设置一个名称相同但不等于管理员名称的会话数组。您需要添加一个附加条件。谢谢,这就解释了为什么有时它不起作用,因为不必设置数字。我想我应该使用isset来从表单传递表单?我不理解您的问题@Piano0011我想我想说的是,当与数字(如许可)进行比较时,它不必设置,因此,我不必使用IsSeti如果我理解你的意思,你就不能与未设置的东西进行比较!在代码中,需要两个不同的条件,其中一个条件是与会话的值进行比较,该值可以是任何值(数字或字符串)
if (isset ($_SESSION['user']))
{
 // User logged in
 if ($_SESSION['user'] === 1)
 {
  // User is admin
 }
}