php无法php 循环读取数据据

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
php文件无法得到POST过来的数据,通过$_SERVER得到如下
[HOSTNAME] =& localhost.localdomain
[PATH] =& /usr/local/bin:/usr/bin:/bin
[TMP] =& /tmp
[TMPDIR] =& /tmp
[TEMP] =& /tmp
[OSTYPE] =&
[MACHTYPE] =&
[MALLOC_CHECK_] =& 2
[USER] =& www
[HOME] =& /home/www
[FCGI_ROLE] =& RESPONDER
[GATEWAY_INTERFACE] =& CGI/1.1
[SERVER_SOFTWARE] =& nginx
[QUERY_STRING] =&
[REQUEST_METHOD] =& GET
[CONTENT_TYPE] =&
[CONTENT_LENGTH] =&
[SCRIPT_FILENAME] =& /data0/htdocs/www_v2/index/htdocs/index.php
[SCRIPT_NAME] =& /index.php
[REQUEST_URI] =& /tcenter/manage_type/saveunitc/
[DOCUMENT_URI] =& /index.php
[DOCUMENT_ROOT] =& /data0/htdocs/www_v2/index/htdocs
[SERVER_PROTOCOL] =& HTTP/1.1
[REMOTE_ADDR] =& 222.130.133.84
[REMOTE_PORT] =& 11347
[SERVER_ADDR] =& 118.145.8.49
[SERVER_PORT] =& 80
[SERVER_NAME] =& *.
[REDIRECT_STATUS] =& 200
[HTTP_HOST] =&
[HTTP_CONNECTION] =& keep-alive
[HTTP_CACHE_CONTROL] =& max-age=0
[HTTP_ACCEPT] =&
text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8
[HTTP_USER_AGENT] =& Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31
(KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
[HTTP_REFERER] =& /tcenter/manage_type/editunit.do?id=&num=2
[HTTP_ACCEPT_ENCODING] =& gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] =& zh-CN,q=0.8
[HTTP_ACCEPT_CHARSET] =& GBK,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] =& PHPSESSID=8bce4d7c80; KF360_6971_LIVE=Y; KF360_6971_REFERER=; PHPSESSID=ecb96ff35d7e68bdc14ffcfcd12835 KF360_6971_INVITEDTIMES=2; KF360_6971_VISITID=5666977; uname=172474; upass=123456; rem=1; Hm_lvt_b63de5fda5749bda8159; Hm_lpvt_b63de5fda5749bda1967; formhash=03bc8587; VISITORID=5269925
[PHP_SELF] =& /index.php
[REQUEST_TIME] =&
[argv] =& Array
[argc] =& 0
但是在做项目的时候其他模板post的数据都可以接受,打印其中一个可接受到post数据的$_server
[HOSTNAME] =& localhost.localdomain
[PATH] =& /usr/local/bin:/usr/bin:/bin
[TMP] =& /tmp
[TMPDIR] =& /tmp
[TEMP] =& /tmp
[OSTYPE] =&
[MACHTYPE] =&
[MALLOC_CHECK_] =& 2
[USER] =& www
[HOME] =& /home/www
[FCGI_ROLE] =& RESPONDER
[GATEWAY_INTERFACE] =& CGI/1.1
[SERVER_SOFTWARE] =& nginx
[QUERY_STRING] =&
[REQUEST_METHOD] =& POST
[CONTENT_TYPE] =& application/x-www-form-urlencoded
[CONTENT_LENGTH] =& 199
[SCRIPT_FILENAME] =& /data0/htdocs/www_v2/index/htdocs/index.php
[SCRIPT_NAME] =& /index.php
[REQUEST_URI] =& /tcenter/manage_type/saveUnit.do
[DOCUMENT_URI] =& /index.php
[DOCUMENT_ROOT] =& /data0/htdocs/www_v2/index/htdocs
[SERVER_PROTOCOL] =& HTTP/1.1
[REMOTE_ADDR] =& 222.130.133.84
[REMOTE_PORT] =& 10758
[SERVER_ADDR] =& 118.145.8.49
[SERVER_PORT] =& 80
[SERVER_NAME] =& *.
[REDIRECT_STATUS] =& 200
[HTTP_HOST] =&
[HTTP_CONNECTION] =& keep-alive
[HTTP_CONTENT_LENGTH] =& 199
[HTTP_CACHE_CONTROL] =& max-age=0
[HTTP_ACCEPT] =&
text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8
[HTTP_ORIGIN] =&
[HTTP_USER_AGENT] =& Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
[HTTP_CONTENT_TYPE] =& application/x-www-form-urlencoded
[HTTP_REFERER] =& /tcenter/manage_type/addUnit.do?gid=0&did=0&sid=0&tid=0
[HTTP_ACCEPT_ENCODING] =& gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] =& zh-CN,q=0.8
[HTTP_ACCEPT_CHARSET] =& GBK,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] =& PHPSESSID=8bce4d7c80; KF360_6971_LIVE=Y; KF360_6971_REFERER=;
PHPSESSID=ecb96ff35d7e68bdc14ffcfcd12835 KF360_6971_INVITEDTIMES=2; KF360_6971_VISITID=5666977; uname=172474; upass=123456; rem=1; Hm_lvt_b63de5fda5749bda8159; Hm_lpvt_b63de5fda5749bda1967; formhash=03bc8587; VISITORID=5269925
[PHP_SELF] =& /index.php
[REQUEST_TIME] =&
[argv] =& Array
[argc] =& 0
两者的不同之处
‘HTTPCONTENTTYPE’与‘HTTPCONNECTION’,‘HTTPCACHE_CONTROL’,
模板来回看了n遍,也没找到错误
下面是无法post数据的模板
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
&html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&
&meta http-equiv="Content-Type" content="text/charset=UTF-8" /&
&title&&/title&
&script type="text/javascript" src="&!--{$baseurl}--&/js/jquery.js"&&/script&
&div class="nav3 mb10"
&ul class="cc" style="margin-left:20margin-top: 10px"&
&li&&a href="/tcenter/manage_type/manageunit.do"&管理单元&/a&&/li&
&form action="/tcenter/manage_type/saveunitc"
method="post" onsubmit="return check();"&
&input type="hidden" name="id" value="&!--{$mesunit.id}--&" /&
&table style="width:300"&
&td&单元顺序:&/td&
&select name="unitnum" id="unitnum" &
&option value="0" &请选择&/option&
&!--{foreach from=$unitnums key=key item=item}--&
&option value="&!--{$key}--&" &!--{if $key==$num}--&selected&!--{/if}--&&&!--{$item}--&&/option&
&!--{/foreach}--&
&td&单元名称:&/td&
&td&&input type="text" name="name" id="name" value="123"/&&/td&
&td colspan="2"&
&input type="submit" value="提交" class="inputs"/&
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
感觉是个低级错误,你上边打出来的$server 里method 是GET ,提交get请求肯定没有$POST了
[REQUEST_METHOD] => GET
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:php post数据不完整 - 为程序员服务
php post数据不完整
最近在项目中,出现一个奇怪的现象,有一个大form里面有上千个input,提交的时候,老是发现post过来的数据不完整,一开始还怀疑是html 表单名称有冲突,排除掉了。
然后,网上找了一堆,php.ini 的post_max_size和upload_max_filesize都设置了很大的值,没用,nginx的client_max_body_size 500m;加到了那么大的值,也没用。
最后终于google到办法:
原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,实在无语。
该值默认情况下是1000 , 不能满足有1000个以上输入项的需求,所以得在php.ini 里面加上更大的值如:
max_input_vars = 5000 ,修改后重启php,终于一切正常!
专注有效的web技术
原文地址:, 感谢原作者分享。
您可能感兴趣的代码工作中要采集一些网页的数据,在中常用到的采集函数就是和函数。php在用函数采集网站时,有时明明用浏览器可以看,但就是采不到任何内容。
这样的问题我就遇到了,我要采集的这个页面却怎么也获取不到数据,经过测试获取百度、新浪、网易等页面内容都是正常。这个问题让我百思不得其解,于是找了个朋友来试试,他通过file_get_contents和函数获取都是正常的。我就郁闷了,后来才知道他用的是nginx的web服务器,我的是apache服务器。
通过不断的测试和查找资料,发现原来是php的User Agent的问题。这很有可能是服务器上做了设置,通过php&获取 User_agent判断是否为正常的浏览器请求 ,因为默认php的file_get_contents函数是不发送ua的。
我们就来认识下什么是User Agent,User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
我通过测试,在要抓取的页面输出变量为空。这样在被抓取的服务器通过php来获取$_SERVER["HTTP_USER_AGENT"]的值,如果为空的话,就跳转到404错误页面,这样就无法抓取到页面信息。
说下上面朋友可以采集的原因,估计是nginx在编译的时候,开启了UA代理。这个大家可以测试下。
解决这个问题有2种方法
1、设置php.ini配置文件,找到这个开启,把前面的分号去掉;
2、通过php的()方法设置用户代理。
ini_set(‘’,'Mozilla/4.0 ( MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)’);echo file_get_contents(‘你想要采集的页面url’);
通过上面2种方法就可以让$_SERVER["HTTP_USER_AGENT"]的值不为空,就可以顺利的采集到你想要的内容。
注意:在设置user_agent的时候,最好使用浏览器的版本或者蜘蛛,像我上面设置的是火狐的,这样被采集的服务器就会正常的通过认证。因为服务器不会屏蔽蜘蛛或者浏览器的版本的,这个问题你应该清楚吧,哈哈。如果他要是把这个也屏蔽了的话,那就是不让蜘蛛抓取页面,也无法识别用户使用的浏览器里。
出处:.cn/s/blog_5d6c3a1f0101nmii.html //设置http 头部个息header就不行了吗?
阅读(...) 评论() &

我要回帖

更多关于 php读取数据库 的文章

 

随机推荐