PHP session_start在条件不匹配时执行


php session_start execute when condition not match

<?php
session_save_path('/home/path/to/session/');
if(strpos($_SERVER['PHP_SELF'],'test'))
{
    echo 'a';
}else{
    session_start();
}

这个脚本创建一个会话文件,而如果是真的(文件名是test.php)?

你应该改变

if(strpos($_SERVER['PHP_SELF'],'test'))

if(strpos($_SERVER['PHP_SELF'],'test') === false)

if(strpos($_SERVER['PHP_SELF'],'test') !== false)

取决于你的需要(很难从你的代码中说出来)。否则,如果$_SERVER['PHP_SELF']test开头,strpos函数返回0,这在语句中被认为是false,您应该替换。要比较精确的值和类型,您需要使用===!==操作符