编辑: LinDa_学友 2013-04-16

50 个字段的信息,其中没有解析错误. 然后在线填充表单,并点击提交按钮.下一个页面也正常加载,但唯一的问题是似乎没有 把变量传送到新表单上. 第18 章排除故障581 这其实很常见. 第一个可能的原因是希望传送值, 但忘记在表单上使用 method="post". 因为表单默认使用的是 get 方法. 如何解决这个问题?检查一下第二个页面的地址.这些变量在查询字符串中吗?如果 在,就肯定在使用 GET 方法,此时就需要返回,把方法改为 POST.问题解决了. 18.3.1 一致而有效的变量名 首先应根据命名规则,确保变量名是合适而有效的,如第

2 章所述.应该确保所有变 量名都不以数字开头,也不应使用预定义的变量作为变量名,例如$php_errormsg.预定义 变量的完整列表可以在 PHP 手册 www.php.net/manual/en/reserved.variables.php 中找到. 另外应检查引用变量时名字的大小写,因为变量名是区分大小写的.数据库和表名也 是如此.一定要确保正确、一致地引用它们.如果修改了某个变量名,就应修改该变量名 的所有实例. 如果在脚本中一直遵循某个命名规则,就很容易保证变量名的一致性.这与第

2 章中 讨论的优秀编码规则有关. 18.3.2 打开一个新浏览器 有时,如果在会话中工作,且处于脚本的测试阶段,就有外来的会话设置妨碍我们获 得希望的结果,并修改变量值. 只有关闭网络浏览器,再打开一个新的浏览器,才可以清除所有的会话变量(假定没有 修改配置文件,如第

2 章所述). 18.4 "标题已发送"错误 用户可能会遇到如下错误消息: Warning: Cannot modify header information C headers already sent by (output started at C:\Program files\Apache Software Foundation\Apache2.2\htdocs\ headererror.php: 1) in C:\Program files\Apache Software Foundation\Apache2.2\ htdocs\headererror.php on line

2 在使用会话和 cookie 时, 这是一个常见错误. 如果试图在给服务器发送 HTML 代码后 设置它们,就会出现这个错误.服务器必须在给浏览器发送 HTML 输出之前处理会话和 cookie,也就是说,这些代码行必须放在 HTML 代码或 echo 语句的前面.甚至在第一行代 码 如果不使用函数 ob_start()和ob_end_flush(),则在重定向用户时,就会出现"标题已 发送"错误.这是由 header.php 文件中的代码造成的.可以看出,是逻辑出现了错误,因 为我们把连接变量放在了一个单独的文件中,而没有和 HTML 代码放在一起,但这不是使 网站不工作的致命设计错误.因此我们可以欺骗系统. 初学者最好不要这么做,因为学习编写好的代码和遵循规则是最重要的,但比较有经 验的编程人员则可以使用这组有用的函数.如果要学习更多的输出缓冲区函数,可以参考 附录 C 中的完整列表,或者访问 www.php.net. 18.5 一般调试提示 即使遇到最困难的错误我们也可以通过一定的方法,用无比的耐心来将其改正.毕竟 这只是代码,没有什么可怕的.对于一般的调试,下面给出了一些提示,有助于解决许多 讨厌的错误. 18.5.1 使用 echo 显然,我们希望知道服务器的想法,看看它是如何考虑问题的.一种方式是在代码中 定期显示变量的内容,来验证服务器是否正确解析了代码. 可以在使用变量的过程中通过 echo 逐步显示变量的值,看看服务器如何在代码中处 理值.如果要对变量的值执行复杂的数学计算,但输出了错误的答案,这种方法就会很有 帮助.我们需要找出问题出在哪里,所以在数学计算的每一步中插入 echo 语句,验证服务 器在执行数学计算时是否正确.于是,我们会看到不断变化的变量值. echo 命令还可以用于 if 语句、foreach 语句、函数等,以确保这些循环正确调用或 处理. 第18 章排除故障583 下面是一个简单的例子,演示了 echo 如何帮助我们.假定有如下脚本: 在浏览器上运行这段代码,就得到数字 38.如果希望得到是 40,或者想查看$abc 变 量是否正确,就可以通过在处理过程中显示变量的值,来检查程序是如何工作的,于是: 现在就会看到数字 1~20 和最初的答案 38.很容易看出,尽管$curr_var 达到了 20, 但答案只处理了

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题