-
需要加密PHPSession以防止敏感信息泄露,因默认文件存储为明文,攻击者可直接读取或反序列化获取用户数据。通过自定义SessionHandlerInterface,使用AES-256-CBC算法在写入时加密、读取时解密,结合随机IV和强密钥,确保即使存储介质暴露也无法轻易解析。同时应将session路径移出web目录、设限权限、启用HTTPS、避免存储高敏信息,并管理好密钥安全与IV唯一性,以全面提升会话安全性。
-
PHP连数据库90%是配置或权限问题:先查Connectionrefused/Unknownhost确认网络层,再查Accessdenied核对账号密码和主机限制,MySQL8+需处理caching_sha2_password兼容性,连接后注意选库、字符集及资源释放。
-
PHP中用date('L')判断闰年最可靠,它返回1(闰年)或0(平年),避免手动判断世纪年份错误;计算全年天数应使用date('z',mktime(0,0,0,12,31,$year))+1,而非累加各月天数或依赖strtotime。
-
PHP中统计子序列出现次数需用动态规划:设dpi为arr[0..i-1]匹配seq[0..j-1]的方案数,初始化dpi=1、dp0=0,状态转移为相等时dpi=dpi-1+dpi-1,否则dpi=dpi-1;可优化为一维数组倒序更新。
-
PDO开启事务后必须手动commit()或rollback(),否则连接关闭时变更丢失;事务内SQL错误不会自动回滚,需try/catch捕获PDOException并手动处理;嵌套事务不被支持,应使用SAVEPOINT或拆分逻辑;长时间事务会持锁阻塞,非DB操作应移至commit后。
-
答案:提升PHP表单安全需过滤验证数据、转义输出、防SQL注入和强化文件上传。使用filter_var过滤输入,正则验证格式,htmlspecialchars转义输出防XSS,PDO预处理防SQL注入,严格校验文件类型与路径。
-
header()必须在任何输出前调用,否则报“headersalreadysent”错误;常见原因包括BOM、空白字符、配置文件末尾空行;启用output_buffering可缓解但不根治;Content-Type中charset须小写、无空格、带横线;重定向后必须exit;状态码建议显式指定;修改响应头需依赖ob_start()且须在首行。
-
PHP里定义多维数组,就是给数组元素再赋一个数组值,没有特殊语法糖,也不需要提前声明维度——直接嵌套赋值就行。用方括号语法直接嵌套写PHP5.4+支持短数组语法[],写二维、三维数组最直观。关键是:外层数组的某个键对应一个数组,这个数组本身又能有键或索引。索引式二维数组:$matrix=[[1,2],[3,4]];——$matrix[0][1]是2关联式二维数组:$users=['alice'=>['age'=>30,'city'=>'Beijing'
-
必须修改宝塔面板中SSH默认端口以降低暴力破解风险:一、在面板安全→SSH管理中设置10000–65535间新端口并重启sshd;二、防火墙及云平台安全组需放行新端口、禁用22端口;三、通过ss命令、ssh连接及配置文件验证生效。
-
filemtime()返回Unix时间戳而非可读字符串,需用date()等转换;失败时返回false,须显式判断;精度仅秒级,依赖服务器时钟同步。
-
PHPRedis报错主因有三:扩展未启用或版本不匹配(如PHP8.1+需redis≥5.3.7);网络不通(如Docker中误用localhost);代码调用不当(如connect超时、缺auth、忽略返回值)。
-
若无法通过浏览器访问AWSEC2上的宝塔面板,主因是安全组未放行其外网端口;需根据系统类型(Ubuntu/AmazonLinux)选择对应安装脚本,并在安全组中添加自定义TCP入站规则开放对应端口,必要时可通过bt命令修改并同步更新安全组及网络ACL。
-
Mac装CodeIgniter关键在于确保index.php被Web服务正确识别:需配置Apache/Nginx支持PHP执行与重写规则,base_url须动态生成避免硬编码,严格遵循大小写命名规范,并确保writable目录权限正确。
-
localhost不能直接用域名访问,因其是硬编码指向127.0.0.1的特殊域名,不走DNS解析且不受hosts文件控制;要实现自定义域名(如myapp.test)访问本地项目,需同时满足操作系统解析到本机IP和Web服务器正确路由两个条件。
-
命名空间为PHP代码提供“姓氏”以避免命名冲突,通过namespace声明定义作用域,使用use导入类或函数,支持别名处理同名元素,是现代PHP模块化、自动加载和团队协作的基础。