`

php开发模式开启notice导致ajax返回error

php 
阅读更多

最近一直在做web这块。因为是别人写的,这次是在上面改。所以遇见了许多小问题。不能说人家写的好与不好,其实是每个程序员都有自己的实现方式而已。今天遇到的bug主要是由三个方面引起,而且这个项目没有任何的测试,导致调试起来有些费劲。下面和大家分享一下遇到的问题。

因为这次是三个方面引起的,所以得一个个的排出。

首先是变量未定义使用。这在php里面会导致这个变量为空。看代码

//做php不是很长,命名可能有些不规范
function storeInfo(arrInfo)
{
   if(isset(array["age"])
  {
    $age = array["age"];
  }
  //.... 其他处理
  data = array(); 
  data['age'] = $age;
}

 很明显这里可能会造成$age undefined 。然后返回一个$age undefinded的提示,然后我的ajax就崩溃了,返回error 。

第二个错误跟他类似:

function storeInfo(arrInfo)
{
  $name = arrInfo["name"];
  if(!isset($name))
 {
    $user = find_by_id($id);
    $name=$user["name"]
 }
  // ...其他处理
  data = array();
  data["name"] = $name ;
}

 问题和刚才那个大同小异。

第三个错误是因为开发的时候没有关闭notice的提示。然后在ajax的时候就会出现错误。和上面的两个错误有关。ajax请求返回的结果是这样的:

Notice : $name is undefined at x/y.php in line:123 // 大概是这个意思,记得不是很全
{status:"success",id=123}

 然后就出现了开头的那一幕,因为ajax认为这样的结果是error,然后就悲剧了。

我想说几点:

1.   我写这种代码的时候对后面回用的变量是在开头全部声明,当然像for循环里面的ijk可以直接定义使用;

2.   在项目上,无论大小,有测试才好,像php,js都可以写测试,这样别人在接受的时候能更快的上手;

3.   像这样的错误,涉及前后端了,找bug的位置更大了,需要耐心一点点的调试,查看log。

4.   条错误的同时,我也再像,有没有类似与ajax的测试框架呢。如果有的话,大家帮忙给个连接。

 

 

 

 

 

分享到:
评论

相关推荐

    Laravel开发-notice

    Laravel开发-notice 暂无描述

    Laravel开发-ding-notice

    Laravel开发-ding-notice 一种用于发送消息的DingTalk机器人消息句柄

    Laravel开发-wechat-notice

    Laravel开发-wechat-notice 基于微信的消息通知服务

    ajax IM 源代码(php)

    // Do not remove this notice // /////////////////////////////////// About ----------------------------------- ajax im ("asynchronous javascript and xml instant messenger") is a browser-based instant ...

    PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    在看帝国cms的connect.php是发现第一句是error_reporting(E_ALL ^ E_NOTICE);以前也没注意过这个语句,知道是设置错误提示的,但不清楚具体怎样设置使用。下面从网上摘抄了些东西,总结了一下。

    ajax动态分页的DEMO

    ajax动态分页的DEMO 文件 ajax.js Ajax.jsp database.sql notice.htm

    PHP中error_reporting函数用法详细介绍

    PHP中对错误的处理会用到error_reporting函数,看到最多的是error_reporting(E_ALL ^ E_NOTICE),这个是什么意思呢?下面我们具体分析error_reporting函数。 定义用法 error_reporting() 设置 PHP 的报错级别并返回...

    add_notice.php

    add_notice.php

    PHP捕获Fatal error错误的方法

    Fatal error 一般是不需要捕获的, 但是在一个复杂的程序中, 如果偶然出现内存不足导致fatal error就难以处理了. 比如. fatal error 出在MySQL类中fetch的时候. 这个时候就很难定位到真正问题所在了. PHP异常处理中 ...

    ajax设计模式与最佳实践.pdf

    ajax设计模式与最佳实践 Sometimes your destiny will follow you around for years before you notice it. Amidst the medley of fascinating new technologies that I was playing—I mean working—with in the...

    屏蔽PHP默认设置中的Notice警告的方法

    PHP的默认设置是显示Notice警告提示,这会造成页面无法正常显示出来。你有没定义的变量直接使用了。不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点。 在把自己辛辛苦苦编写的PHP程序部署到...

    PHP提示Notice: Undefined variable的解决办法

    PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable ...修改为error_reporting = E_ALL & ~E_NOTICE 2) register_globals设置: 找到register_globals = Off 修改为registe

    PHP中error_reporting()用法详解

    首先要知道error_reporting()函数是用来设置错误级别并返回当前级别的。它有14个错误级别,如下: 1 E_ERROR 致命的运行时错误。 错误无法恢复过来。脚本的执行被暂停 2 E_WARNING 非致命的运行时错误。 脚本的执行...

    dismissible_notice:通过AJAX创建可解散的文件-admin nag

    添加管理员的简单方法,可以通过AJAX取消。 例子 如果当前PHP版本低于5.3,则显示警告。 add_action ( 'plugins_loaded' , 'caeq_bootstrap' ); function caeq_bootstrap (){ if ( ! version_compare ( ...

    PHP新手NOTICE错误常见解决方法

    刚学习PHP,不久,一般就看看手册,和一本叫PHP和mysql web开发的。 最近在整留言板,刚才遇到个问题。 页面中,好多类似 Notice: Use of undefined constant title – assumed ‘title’ in D:\wamp\...

    maven-notice-plugin-1.0.1.jar

    maven-notice-plugin-1.0.1.jar

    PHP中Notice错误常见解决方法

    肯定会遇到不同的错误提示,比如:警告,致命,等等,其中NOTICE错误等级最低,页面中,好多类似 Notice: Use of undefined constant title – assumed ‘title’ in D:\wamp\www\phpmysqlweb\bbs\list.php on line ...

Global site tag (gtag.js) - Google Analytics