PHP编程:分歧操作体系下PHP吸收HTTP POST数据问...
培训的第四阶段,就是应用PHP语言开发实际的程序。以结合实际的项目开发来进行学习,效果真的很好,在学习完之后就开始练习,能比较容易掌握所学的知识,这是学校的学习所没法比的。数据|成绩 文档版本版本创立工夫创立人备注1.0.0606.12003-6-6郑 昀第一稿 Implementation Scope:
本文档将申明PHP页面吸收HTTP组件POST的数据成绩。普通来讲,POST过去的二进制数据流,只需求PHP用$HTTP_RAW_POST_DATA就能够吸收。然而,咱们碰到的情形却不是如许。 持续浏览之前,咱们假定您熟习以下常识:n PHPn MSXML2.ServerXMLHTTPn HTTP POST 景象
咱们碰到了这么一个成绩:我从Windows 2000上,使用MSXML2.ServerXMLHTTP接口向Linux Apche下的PHP页面POST二进制数据流。PHP页面的$HTTP_RAW_POST_DATA变量为空,得不到数据,并且sizeof($_POST)的值也是0。 然而,假如我一样向一个Windows 2000 IIS下的PHP页面POST数据,却可以用$HTTP_RAW_POST_DATA吸收到正常数据。为何两者有这类区分呢?情况信息
倡议HTTP POST恳求方・体系情况
Windows XP Professional(Service Pack 1)MSXML3.Dll(SP3 / 版本号:8.30.9926.0)挪用ServerXMLHTTP的代码是: MSXML2::IServerXMLHTTPRequestPtr pIXMLHttpRequest = NULL; HRESULT hr = pIXMLHttpRequest.CreateInstance("MSXML2.ServerXMLHTTP"); hr = pIXMLHttpRequest->open(L"POST", bstrPHPURL, VARIANT_FALSE,// 同步发送 vtMissing, vtMissing); hr = pIXMLHttpRequest->send(varData); 准确吸收POST恳求的PHP for MS Windows・体系情况
用$HTTP_RAW_POST_DATA正常吸收了数据的PHP for Windows装置信息:PHP Version 4.2.2SystemWindows NT 5.1 build 2600Server APICGI关于利用这个全局变量的相干设置:DirectiveLocal ValueMaster Valuealways_populate_raw_post_data00 没法吸收POST恳求的PHP for Linux・体系情况
没法用$HTTP_RAW_POST_DATA吸收POST数据的PHP for Linux装置信息:PHP Version 4.3.2RC3System Linux atm2 2.4.18-1 #1 Wed May 29 10:45:23 CST 2002 i686 Server API Apache Registered PHP Streams php, http, ftp 关于利用这个全局变量的相干设置:DirectiveLocal ValueMaster Valuealways_populate_raw_post_dataOnOn更多信息
照理说,只需php.ini中界说了; Always populate the $HTTP_RAW_POST_DATA variable.always_populate_raw_post_data = On就完整可以用$HTTP_RAW_POST_DATA变量来吸收数据。最少$_POST变量是可以测算出POST到页面的数据巨细的。 我的确看到有几团体试图呈报“Empty $HTTP_RAW_POST_DATA”是一个PHP的Bug,然而PHP保护人员说一定不是。处理步调
不晓得Windows下的PHP 4.2.2怎样一向可以吸收。然而假如我显式声明Content-Type为file的话,Linux下的PHP 4.3.2RC3就能够正常吸收POST数据了。设置头信息的代码以下:hr = pIXMLHttpRequest->setRequestHeader( _bstr_t("Content-Type"), _bstr_t("file")); 如许做的话,PHP 4.2.2 for Windows和PHP 4.3.2RC3 for Linux都可以用$HTTP_RAW_POST_DATA吸收,没有成绩。 总结:
假如你的$HTTP_RAW_POST_DATA不在那儿了,你可以在挪用HTTP组件发送HTTP POST恳求时,指定Content-Type为file。 Disclaimers:
本文档所包括的信息代表了在宣布之日,zhengyun对所会商成绩确当前意见。本文档不该了解为zhengyun一方的许诺,zhengyun不包管所给信息在宣布之日今后的正确性。 本文档仅供参考。用户必需恪守一切合用的版权法。在不合错误版权法所划定的权力加以限制的情形下,如未失掉 zhengyun和CSDN.Net明白的书面允许,不得出于任何目标、以任何模式或手腕(电子的、机械的、影印、录制等等)复制、传布本文的任何局部,也不得将其存储或引入到检索体系中。没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 当然这种网站的会员费就几十块钱。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 当然这种网站的会员费就几十块钱。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
页:
[1]