这是我的网址:
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 =添加到网址)
答案 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,它检查它是否存在且不是以下值之一:
因此我会重写您的代码
if (!empty($_GET['id'])) {
$_SESSION['id'] = $_GET['id'];
} else {
$_SESSION['id'] = $_SESSION['id'];
}