Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义php web应用程序中的作业说明未显示_Php - Fatal编程技术网

自定义php web应用程序中的作业说明未显示

自定义php web应用程序中的作业说明未显示,php,Php,希望你们中的一些人能够很好地使用php 基本上,制作这个的人是MIA,所以我不能问他我需要做什么来解决我们的问题 背景: 我们是一家锁匠公司,它使用一个定制的web应用程序在路上通知锁匠他们有了新工作。这个web应用程序还提供了一些额外的功能,比如提供gps位置、工作时间以及在工作完成后保存客户签名的功能 问题: 该应用程序的工作原理是从我们的帐户管理应用程序E3接收一封电子邮件,该电子邮件(示例:)由该web应用程序读取,解析为电子邮件和网页,并发送给锁匠查看他的新工作。当锁匠通过手机到达网页

希望你们中的一些人能够很好地使用php

基本上,制作这个的人是MIA,所以我不能问他我需要做什么来解决我们的问题

背景: 我们是一家锁匠公司,它使用一个定制的web应用程序在路上通知锁匠他们有了新工作。这个web应用程序还提供了一些额外的功能,比如提供gps位置、工作时间以及在工作完成后保存客户签名的功能

问题: 该应用程序的工作原理是从我们的帐户管理应用程序E3接收一封电子邮件,该电子邮件(示例:)由该web应用程序读取,解析为电子邮件和网页,并发送给锁匠查看他的新工作。当锁匠通过手机到达网页(例如:)时,他可以看到工作的详细信息,包括客户的姓名、地址和联系方式。但问题是,由于原始电子邮件中没有为职务说明指定标题,代码必须计算出职务说明的位置,这是出现问题的部分,因为web应用程序不再在职务说明中显示数据。工作笔记很重要,因为它告诉锁匠他需要修理什么。这以前是有效的,但现在刚刚停止工作,我们不知道为什么

如何将数据传输到web应用程序是非常有趣的,它不是存储数据的数据库,而是将数据放在地址栏中,然后网页解释代码并将其格式化到页面中

例如,这是当前链接的外观(取出数据,替换为xxxxxxx):

?客户端=xxxxxx&公司=xxxxxx&手机=xxxxxx&电话=xxxxxx&联系人=XXXXXXXXXX&地址数据=数组&地址索引=3&街道地址=XXXXXXXXXXXXXXXXXX&地址地区=xxxxxxx&邮政编码=xxxxxx&城市=xxxxxxxx&客户邮箱=工作日期=2012年11月22日&工作时间=1:30:00%20PM&工作ID=xxxxxx&工作邮箱=XXXXXXXXXXXXXX&公司邮箱=XXXXXXXXXXXXXX&=ng>员工姓名=xxxxxxx&员工电话=xxxxxxx

以前,在工作时,此链接添加了jobNotes字段:

?客户端=xxxxxxxx&公司=xxxxxxxx&手机=xxxxxxxx&联系人=xxxxxxxx&地址数据=数组&地址索引=4&街道地址=XXXXXXXXXXXXXXXX&地址位置=XXXXXXXXXXXXXXXXXXXX&邮政编码rong>city=xxxxxxxx&客户邮件=xxxxxxxx&jobNotes=Quote%20on%20installing%20new%20keying%20system%0A%0AAlso%20想要%20a%20Quote%20on%20Install%20CCTV%0A%0A%0A%0A%20a%2a%2a%2a%2a%2a%2a%2a%2a%a%a%a总时间20223.64%3A%0A%2a%2a%2a%2a%2a%2a%2a%a%2a%a%2a%a%a%a%a%amisc&>g> jobID=xxxxxxxx&jobAMPM=PM&adminEmail=xxxxxxxx&noreplyEmail=XXXXXXXXXXXX&companyPhone=XXXXXXXXXXXX&StaffMail=XXXXXXXXXXXX&staffPhone=XXXXXXXXXXXXXXXXXXXXXXXXXXXX&

代码:

这是e3-parser.php的摘录,该文件是将e3电子邮件中的数据转换为web应用程序的主文件

    // Job notes
  if ($this->clientEmail) {

// REMOVED NOW THAT EMAIL IS BEING PUT ON THIRD LINE OF ADDRESS
//   // If customer email present grab everything after it save it as job notes
//   preg_match("/$this->clientEmail[^-]+/",$e3Output,$matches);
//   $result = implode("",$matches);
//   $notes  = trim(str_replace($this->clientEmail,'',$result));
//   $this->jobNotes = rawurlencode($notes);
// } else {

    // Fall back to grabbing everything after the time
    preg_match("/AM[^-]+/",$e3Output,$matchesAM);
    preg_match("/PM[^-]+/",$e3Output,$matchesPM);
    $resultAM = implode("",$matchesAM);
    $resultPM = implode("",$matchesPM);    
    $notes  = trim(str_replace('AM','',$resultAM) . str_replace('PM','',$resultPM));
    $this->jobNotes = rawurlencode($notes);
  }
这里的问题是,它是否成功获取了所需时间字段后列出的数据?(例如,它所读取的电子邮件:
http://cl.ly/image/2E433O330T0N

以下是将解析数据放入网页的代码:

// Create job link
$url      = $e3->create_job_url('http://www.prvgroup.com.au/apps/jobbook/on-my-way?');  
$linkName = "View job details";
$href     = '<a class="btn btn-small" href="' . $url . '&staffEmail=' . $staff-    >staffEmail . '&staffName=' . $staff->staffName . '&staffPhone=' . $staff->staffPhone . '">' . $linkName . '</a>';  
//创建作业链接
$url=$e3->创建作业\u url('http://www.prvgroup.com.au/apps/jobbook/on-my-way?');  
$linkName=“查看作业详细信息”;
$href='';
这将通过电子邮件发送给锁匠,通过可点击的链接“查看工作详细信息”通知他新的工作。链接中充满了所需的数据。然而,从表面上看,jobNotes的数据并不存在。我对这段代码的备份在这里显示了与代码显示jobNotes时完全相同的内容,因此我不确定它是如何将该字段放入的

如果你走到这一步,干得好!我希望我已经足够清楚这个问题是什么,但是如果你需要更多的澄清,尽管问吧

干杯,
Marc

查看代码后,只有在有客户邮件的情况下才运行preg_匹配。从上面的示例电子邮件来看,您似乎从未执行过此代码,因为没有客户端电子邮件,或者使用preg_匹配未找到此代码。要查看的具体位置位于e3-parser.php文件的第113行。您将看到:

if($this->clientEmail) 
{
    //matching code here.
}

在第109行和第110行,您正在查找电子邮件地址,但未找到该地址或该地址位于错误的位置。无论如何,不管是否有电子邮件地址,都应该执行此代码。注释必须设置为以后使用,现在没有设置任何内容。删除此if语句可以解决您的问题。

这是一个很难使用提供的详细信息进行诊断的项目。如果我不得不猜测,我会说有一个转移问题或一个变量被错误命名。我要说的是,使用URL重写方法可能不是处理此类事务的最佳方式,但我相信诊断此问题比重写项目更容易。从最上面的URL中,您缺少作业注释,并且由于URL中不存在该变量,因此无法在页面上显示它们是有意义的。如果您愿意分享更多的代码,我很乐意为您提供帮助。谢谢Jammin,我很乐意继续发布完整的代码h