$ _GET索引isset

时间:2015-05-08 06:41:50

标签: php get isset

这是我的网址:

http://localhost/messources/actes/palactes.php?mode=MODE_NEW

在php中我有这个:

if (isset($_GET['id']))
            {
                $_SESSION['id'] = $_GET['id'];
            }else{
                $_SESSION['id'] = $_SESSION['id'];
            }

由于id不在URL中,我希望不会执行整个块。 $ _GET ['id']不存在,因此该值应为NULL,因此isset()测试该值。

但是,我收到了一条php通知:

Undefined index: id in ....

我应该怎么做才能摆脱那个通知(我不想将& id =添加到网址)

6 个答案:

答案 0 :(得分:1)

使用

 session_start();// Only if you havent started.

if (isset($_GET['id']))
            {
                $_SESSION['id'] = $_GET['id'];
            }else{
                $_SESSION['id'] = 0;
            }

你可以检查它是否为0。如果为0,那么登录的NOt登录。

答案 1 :(得分:0)

不需要 - $_SESSION['id'] = $_SESSION['id'];

这样做 -

        if (isset($_GET['id']))
        {
            $_SESSION['id'] = $_GET['id'];
        }

答案 2 :(得分:0)

这是解决方案:

if(!isset($_SESSION['id']) && !isset($_GET['id'])){
        $_SESSION['id'] = NULL;
}

if(! isset($_SESSION['id']) && isset($_GET['id'])){
        $_SESSION['id'] = $_GET['id'];
}

当设置$ _SESSION [' id']时,这不会运行。

答案 3 :(得分:0)

您在会话中从ID读取未定义

   $_SESSION['id'] = $_SESSION['id'];

答案 4 :(得分:0)

根据你的问题,

  

我该怎么做才能摆脱那个通知(我不想添加& id =   到网址)

您的网址是

http://localhost/messources/actes/palactes.php?mode=MODE_NEW

您的PHP代码

if (isset($_GET['id']))
            {
                $_SESSION['id'] = $_GET['id'];
            }else{
                $_SESSION['id'] = $_SESSION['id'];
            }

1)如何为$_GET['id']分配值,因为URL $_GET['id']上的内容总是会返回NULL,因为它没有来自任何地方的值。您可以执行var_dump($_GET);测试,$_SESSION['id']也会返回NULL。使用var_dump($_SESSION);再次测试。您必须先为其赋值,然后才能将任何内容分配给$_GET['id']。见http://php.net/manual/en/reserved.variables.get.php

答案 5 :(得分:0)

您正在寻找的功能是empty,它检查它是否存在且不是以下值之一:

  • "" (空字符串)
  • 0(0为整数)
  • 0.0(0作为浮动)
  • " 0" (0作为字符串)
  • NULL
  • FALSE
  • array()(空数组)
  • $变种; (声明的变量,但没有值)

因此我会重写您的代码

if (!empty($_GET['id'])) {
    $_SESSION['id'] = $_GET['id'];
} else {
    $_SESSION['id'] = $_SESSION['id'];
}