有人可以帮忙,我在PHP error.log中有以下错误
[Tue Dec 19 12:08:22.887574 2017] [:error] [pid 32196] [client xx.xx.xx.x:20560] PHP注意:未定义的偏移量:/var/www/html/page.php中的8第55行,referer:view.php?1x = 8
和我认为导致这个问题的PHP代码是:
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
// echo $_SESSION['websites'][$i];
$website = explode(";", $_SESSION['websites'][$i]);
// echo $website[0];
$i++;
$_SESSION['i'] = $i;
我真的不知道$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
做了什么
谢谢
session_start();
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
if ($_SESSION['i'] < $sesioni1x) {
// echo $_SESSION['websites'][$i];
$website = explode(";", $_SESSION['websites'][$i]);
// echo $website[0];
$i++;
$_SESSION['i'] = $i;
header("Location: $website[0]"); //redirect
die();
// echo $website[0];
// echo $sesioni1x;
// echo $website[0]." Frame-URL<br>";
// $_SESSION['actual_website'] = $website[0];
}
if ($_SESSION['i'] == $sesioni1x) {
$handle = fopen($list1x, "a"); //open file to append content to csv file
fputcsv($handle, $_SESSION['addwebsite'], ";"); //insert line in opened file
fclose($handle); //close file
header("Location: index.php"); //redirect
die();
// echo "session = var";
}
这是我得到这个警告的完整代码,我必须说脚本正在完成他的工作,但我想摆脱错误
源中的$_SESSION['i']
为0
这是三元运算符。基本上它是一个简单的if / else。
$i = (isset($_SESSION['i']) ? $_SESSION['i'] : 0);
为了帮助您理解它,这个代码在一行
if(isset($_SESSION['i'])){
$i=$_SESSION['i'];
}
else{
$i=0;
}
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
上面的代码只是一个if / else没有别的,这将检查$_SESSION['i']
是否设置然后将它的值分配给$i
否则它将0
分配给$i
变量。
现在看你的问题,看起来你的$_SESSION['i']
已经设置,它的值是8
所以$ i = 8,
现在,$website = explode(";", $_SESSION['websites'][$i]);
就像检查你的$_SESSION['website']
数组并试图从数组中找到尚未设置的8th
元素,因此它给出了一个未定义的错误。
(e)? r1:r2是条件语句。如果表达式e为真,则值为r1,如果e为假,则值为r2。所以
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
表示“我是$ _SESSION ['i'],如果设置了$ _SESSION ['i'],否则为0”。
session_start();
$i = isset($_SESSION['i']) ? $_SESSION['i'] : 0;
if ($_SESSION['i'] < $sesioni1x) {
// echo $_SESSION['websites'][$i];
$website = explode(";", $_SESSION['websites'][$i]);
// echo $website[0];
$i++;
$_SESSION['i'] = $i;
header("Location: $website[0]"); //redirect
die();
// echo $website[0];
// echo $sesioni1x;
// echo $website[0]." Frame-URL<br>";
// $_SESSION['actual_website'] = $website[0];
}
if ($_SESSION['i'] == $sesioni1x) {
$handle = fopen($list1x, "a"); //open file to append content to csv file
fputcsv($handle, $_SESSION['addwebsite'], ";"); //insert line in opened file
fclose($handle); //close file
header("Location: index.php"); //redirect
die();
// echo "session = var";
}
这是我得到这个警告的完整代码,我必须说脚本正在完成他的工作,但我想摆脱错误
源中的$_SESSION['i']
为0