【PHP 高手带路】本文汇总了一些 PHP 开发中的常见问题及解决方案,旨在帮助开发者提升 PHP 技能。以下是一些关键知识点: 1. **变量获取**:在 PHP4.2 及更高版本中,`register_globals` 默认关闭。要获取通过 POST 或 GET 传递的变量,可以: - 修改 `php.ini` 文件,将 `register_globals` 设置为 `on`。 - 使用 `extract($_POST)` 和 `extract($_GET)` 函数,一次性提取所有变量,但注意安全性问题。 - 或者逐个读取变量,如 `$a=$_GET["a"]`,这种方法更安全。 2. **调试程序**:创建一个名为 `debug.php` 的文件,包含以下代码,用于显示当前页面的 GET、POST、COOKIE 和 SESSION 变量: ```php <?php ob_start(); session_start(); echo "<pre>"; echo "本页得到的_GET 变量有:"; print_r($_GET); echo "本页得到的_POST 变量有:"; print_r($_POST); echo "本页得到的_COOKIE 变量有:"; print_r($_COOKIE); echo "本页得到的_SESSION 变量有:"; print_r($_SESSION); echo "</pre>"; ``` 然后将 `include_path` 设置为 PHP 文件所在的目录,并在每个需要调试的页面中包含 `debug.php`。 3. **使用 session**: - 在处理 session 之前,必须先调用 `session_start()` 函数。 - 在 PHP4.2 之前的版本,设置 session 值需使用 `session_register()`,如 `Session_register("Name")`。 - 自 PHP4.2 起,可以直接赋值给 `$_SESSION`,如 `$_SESSION["name"] = "value"`。 - 取消 session 可以使用 `session_unset()` 清除所有 session 变量,然后用 `session_destroy()` 销毁 session。 - 注意:`session_start()` 前不能有任何输出,否则会提示“headers already sent”。 4. **错误处理**: - 当出现“headers already sent”错误时,表示在调用 `session_start()` 之前有输出,需检查并删除这些输出。 - 如果 `session_start()` 放在循环中,且难以定位输出位置,可使用 `ob_start()` 来捕获输出。 5. **session 文件路径**: - 当遇到错误“Warning: session_start(): open(/tmp/sess_...”, 提示无法打开 session 文件,通常是因为未指定 session 存储路径。 - 解决方法是创建指定的存储路径,如在 C 盘创建 `tmp` 文件夹,并在 `php.ini` 中设置 `session.save_path` 为该路径。 以上是 PHP 开发中关于变量获取、调试、session 使用和错误处理的一些实用技巧。理解并熟练应用这些知识,将有助于提升 PHP 编程效率和代码质量。
- 粉丝: 2
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- html+css+js的宠物领养网站(响应式)
- go实现通过命令访问Kafka
- 极速浏览器(超快速运行)
- uniapp vue3 下拉菜单组件(dropdownMenu)
- 《全面解析图像平滑处理:多种滤波方法及应用实例》
- Kafka客户端producer/consumer样例
- rocketmq和rocketmq数据转换
- 关于 v s 2019 c++20 规范里的 S T L 库里模板 decay-t<T>
- 本项目致力于创建一个基于Docker+QEMU的Linux实验环境,方便大家学习、开发和测试Linux内核 Linux Lab是一个开源软件,不提供任何保证,请自行承担使用过程中的任何风险
- RL Base强化学习:信赖域策略优化(TRPO)算法TensorFlow实现