PHP中getenv()和$_SERVER的区别
PHP中getenv()和$_SERVER的用法区别:
getenv 取得系统的环境变量,环境变量的格式为name=value。
语法: string getenv(string varname);
返回值: 字符串 函数种类: PHP 系统功能
内容说明
若正确取得环境变量 varname,则返回变量值,失败则返回 false。
下例可以取得用户浏览器所在机器的网址
<?php $ip = getenv(“REMOTE_ADDR”); ?>
$_SERVER是服务器超级全局变量数组 用$_SERVER['REMOTE_ADDR']同样可以获取到客户端的IP地址。
二者的区别在于,getenv不支持IIS的isapi方式运行的PHP。
【转】解决PHP获取不到ip地址`函数getenv(“REMOTE_ADDR”)与$_SERVER['REMOTE_ADDR']的区别
最近用PHP帮朋友写了个用于投票的页面,一切都很顺利,装上后发现:访客IP地址没能记录上(没能成功获取IP地址),怪事,当初本地测试都好的呀。难不成本地和服务器有别,马上开个空间,测试,仍然一切正常。再一个个问题都排除后,了解到对方是windows下的iis,而自己测试都在apache上,很可能是这个原因。
马上更换函数:将原来的ip地址获取函数”getenv(“REMOTE_ADDR”)“更换为”$_SERVER['REMOTE_ADDR']“,覆盖更新,再看数据库,ip地址已经成功记录,搞定。
既然再次遇到这问题,就还是记录下吧:PHP中获取访客(客户端)的ip地址函数getenv(“REMOTE_ADDR”) 与$_SERVER['REMOTE_ADDR']的区别,其实,通过这件事,已经很清楚了。getenv(“REMOTE_ADDR”)函数在 apache下能正常获取ip地址,而在iis中,一点作用都没,而$_SERVER['REMOTE_ADDR']函数,既可在apache中成功获取 访客的ip地址,在iis下也同样有效。
摘自:http://wanglianghuaihua.blog.163.com/blog/static/54251531201091211275342/
PHP中getenv()和$_SERVER的区别的更多相关文章
- 【转】为什么我们都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- Visual Studio 中 Build 和 Rebuild 的区别
因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...
- SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...
- java集合中List与set的区别
java集合中List与set的区别. List可以存储元素为有序性并且元素可以相同. set存储元素为无序性并且元素不可以相同. 下面贴几段代码感受一下: ArrayL ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- oracle中函数和存储过程的区别和联系【转载竹沥半夏】
oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...
- JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别
JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- 【jQuery】【转】jQuery中的trigger和triggerHandler区别
trigger(event, [data]) 在每一个匹配的元素上触发某类事件. 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器 ...
随机推荐
- 短信API——短信验证码
简介 短信服务(Short Message Service.SMS)是指通过调用短信发送API,将指定短信内容发送给指定手机用户. 阿里云短信服务 阿里云短信服务产品介绍:https://www.al ...
- LAMP网站架构解释
对于大流量.大并发量的网站系统架构来说,除了硬件上使用高 性能的服务器.负载均衡.CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS).高性能的网页服务器(Web Serv ...
- rpmdb: Thread/process 9180/139855524558592 failed: Thread died in Berkeley DB library
使用yum安装出现问题:rpmdb: Thread/process 9180/139855524558592 failed: Thread died in Berkeley DB library 解决 ...
- Porting of cURL to Android OS using NDK (from The Software Rogue)
Porting of cURL to Android OS using NDK In continuing my journey into Android territory, I decided ...
- base64的作用
本函数将字符串以 MIME BASE64 编码.此编码方式可以让中文字或者图片也能在网络上顺利传输.在 BASE64 编码后的字符串只包含英文字母大小写.阿拉伯数字.加号与反斜线,共 64 个基本字符 ...
- (转)粒子编辑器Particle designer属性的介绍
转载:http://blog.csdn.net/ym19860303/article/details/9210539 Particle designer粒子编辑器可到这里下载(包含授权码):http: ...
- 【转】【delphi】ClientDataSet详细解读
原文:http://www.cnblogs.com/lcw/p/3496764.html TClientDataSet的基本属性和方法 TClientDataSet控件继承自TDataSet,其数据存 ...
- n*m的矩阵,行和列都递增有序,求是否出现target元素(面试题)
题目描述:给定一个n*m的矩阵,矩阵的每一行都是递增的,每一列也是递增的,给定一个元素target,问该target是否在矩阵中出现. 思路:先从最左下角的元素开始找,三种情况: 1. 如果该元素大于 ...
- [实战]MVC5+EF6+MySql企业网盘实战(6)——ajax方式登录
写在前面 今天回来的比较早,就趁着有空,把登录的代码更新一下.上篇文章实现了ajax的注册,这篇将实现登录,实现目标,ajax登录方式,如果勾选记住我,则下次不再输入用户名密码,直接跳转到网盘界面. ...
- Check whether a + b = c or not after removing all zeroes from a,b and c
Check whether a + b = c or not after removing all zeroes from a,b and c Given two integers a and b, ...