php会话名称默认为phpsessid,可通过session_name('myapp')在session_start()前设置,名称须含字母、不可纯数字,成功时返回原名称,失败返回false;亦可修改php.ini中session.name全局配置。

PHP会话名称(session name)就是客户端 Cookie 中用于标识会话的键名,默认是 PHPSESSID。修改它,主要是为了提升可读性、兼容性或安全隐蔽性(比如避开扫描器默认识别)。设置的关键在于:必须在 session_start() 之前完成,且不能只用数字。
使用 session_name() 函数设置
这是最常用、最直接的方式:
- 调用
session_name('myapp')可将名称设为myapp,之后浏览器 Cookie 名就变成myapp=xxx - 该函数返回**原来的会话名称**;若失败(如已发送响应头),返回
false - 必须放在
session_start()之前,否则会触发E_WARNING - 名称只能含字母和数字,且至少含一个字母(例如
sess123合法,12345非法——会导致每次请求都生成新会话 ID)
通过 php.ini 配置全局修改
适用于全站统一管理:
- 修改
session.name = myapp,重启 Web 服务后生效 - 该配置项在每次请求开始时重置,所以运行时仍可用
session_name()覆盖 - 注意:如果 ini 文件被禁写或共享主机不支持,优先选函数方式
配合 Cookie 参数增强控制
会话名称只是标识,但真正生效还需确保 Cookie 正确传递:
- 设置路径:
ini_set('session.cookie_path', '/'); - 限定域名:
ini_set('session.cookie_domain', '.example.com'); - 启用 HttpOnly 和 Secure(尤其生产环境):
ini_set('session.cookie_httponly', 1); ini_set('session.cookie_secure', 1); - 这些设置也建议在
session_start()前完成,否则可能被忽略
验证是否生效
设置后可通过以下方式确认:
- 浏览器开发者工具 → Application → Cookies,查看 Cookie 名称是否已变为你设定的值
- PHP 中执行
echo session_name();,输出应为你设置的新名称 - 检查
$_COOKIE数组中是否存在对应键名,例如var_dump($_COOKIE['myapp'] ?? 'not found');
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











