`

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的测试框架呢。如果有的话,大家帮忙给个连接。

 

 

 

 

 

分享到:
评论

相关推荐

    简单的ajax评论完整代码.docx

    error_reporting(E_ALL ^ E_NOTICE); include "conn.php"; include "comment.class.php"; // Select all the comments and populate the $comments array with objects $comments = array(); $result = mysql_query...

    PHP面试大全-基础篇

    - **MVC(Model-View-Controller)**:模型-视图-控制器模式,是软件工程中的一种架构模式,用来开发灵活的动态网站。 - **Model(模型)**:负责存储和管理数据。 - **View(视图)**:显示数据给用户看。 - **...

    thinkhphp开发常用的原码手稿,方便敏捷开发!

    - **描述**: 发送AJAX请求至服务器,并处理返回的数据。 - **代码示例**: ```javascript url: '' + domain + '/employer/job/adds', ``` - **用途**: 构建完整的URL路径用于发起异步请求,其中`domain`变量应...

    总结的一些PHP开发中的tips(必看篇)

    7. **错误处理**:在开发阶段开启全部错误报告,如`error_reporting( E_ALL ^ E_NOTICE )`,但在生产环境中关闭错误显示并记录错误日志。 8. **异常处理**:使用`try-catch`来捕获异常,提高代码的健壮性,尤其在...

    对PHP新手的一些建议(PHP学习经验总结)

    4. **报错信息管理**: 环境应开启所有错误提示(ERROR, WARNING, NOTICE),但可屏蔽NOTICE级别的错误,以便及时发现和修正代码中的潜在问题。 5. **错误处理**: 遇到报错时,要仔细查看错误原因和行号,并分析出...

    KODExplorer 芒果云-资源管理器

    - ajax error 系统错误 对话框提示内容 - 懒加载优化 ###ver2.3 `2014/6/2` ---- ####update: - 拖动url——创建ext app - 文件管理,树目录变化后(增删改)自动同步到文件列表 - 文件管理,文件列表变化后...

    simple-tags

    * Fix a bug and a notice with st_the_tags() that not display any tags... * Version 2.0-beta4 : * Fix a fatal with error with autoterms. * Fix a bug with autoterms when saving post, somes times ...

    java 极验证的实现

    在Web开发中,特别是在Java SpringMVC框架中集成极验证,可以有效防止自动化工具的恶意攻击和爬虫。 ### 二、前端页面配置 #### 1. 引入极验证资源文件 在HTML页面中引入极验证所需的JS文件: ```html ...

    wordpress在安装使用中出现404、403、500及502问题的分析与解决方法

    第一种情况是程序报错:程序报错一般会直接在网站顶部或者网站其他部分显示错误或者警告提示,如error:… 、Notice:….、 warning:…. 这些是程序在运行中出现的问题,一般服务器没有屏蔽php错误的话就会出现这些...

    基于PNotify的轮询Demo

    .catch(error => console.error('Error:', error)); ``` 4. **显示通知**:收到新通知后,使用PNotify的API创建并显示这些通知。 ```javascript function displayNotifications(notifications) { notifications....

    java springmvc 的极验验证

    该接口负责返回初始化验证所需的数据,包括`gt`、`challenge`等参数。 ```java @GetMapping("/validate") public @ResponseBody Map, Object> validateInit() { // 调用极验服务获取初始化参数 Map, Object> ...

    phpind8.7 html页面文件说明

    - **描述**:利用Ajax技术实现的弹窗页面。 - **功能点**: - 支持动态加载数据,无需刷新页面即可显示或更新信息。 - 可用于快速响应用户的交互操作,提高用户体验。 #### 4. **Ajax_friendinvite.htm - Ajax...

Global site tag (gtag.js) - Google Analytics