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的区别的更多相关文章

  1. 【转】为什么我们都理解错了HTTP中GET与POST的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  2. Visual Studio 中 Build 和 Rebuild 的区别

    因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...

  3. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...

  4. java集合中List与set的区别

       java集合中List与set的区别.     List可以存储元素为有序性并且元素可以相同.     set存储元素为无序性并且元素不可以相同.     下面贴几段代码感受一下: ArrayL ...

  5. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  6. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  7. JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别

    JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...

  8. Java中Comparable和Comparator接口区别分析

    Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...

  9. 【jQuery】【转】jQuery中的trigger和triggerHandler区别

    trigger(event, [data]) 在每一个匹配的元素上触发某类事件. 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器 ...

随机推荐

  1. Lynx以纯文本的形式下载网页

    Lynx是一款基于命令行的web浏览器 [root@test88 ~]# yum install lynx -y [root@test88 ~]# lynx www.baidu.com 以纯文本的形式 ...

  2. 端口扫描———nmap

    nmap教程之nmap命令使用示例(nmap使用方法) 浏览:8268 | 更新:2014-03-29 17:23 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚 ...

  3. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  4. 解决xshell4中文乱码

    前言 在公司看到别人使用xshell后,由于之前一直使用SecureCRT所以心里一直痒痒的想换下xshell试下.于是在昨天晚上使用xshell,却被中文乱码折腾了很长时间以至于想放弃,最终灵光一现 ...

  5. vscode vue配置和一些其它辅助【工具篇】

    后续有补充就经常更新

  6. 七 使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  7. grep 同时排除多个关键字

    不说废话, 例如需要排除 abc.txt 中的  mmm   nnn grep -v 'mmm\|nnn' abc.txt 再举个例子,需要确定mac 的本机ip地址,  显然直接可以输入 ifcon ...

  8. HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模

    Multiply game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  9. Android中由Handler和内部类引起的内存泄漏

    原文地址:http://johnnyshieh.github.io/android/2015/09/03/android-handler-memory-leak/ 在Android中我们经常用Hand ...

  10. USACO 控制公司 Controlling Companies

    友情链接神犇520的博客 题目: 题目描述 有些公司是其他公司的部分拥有者,因为他们获得了其他公司发行的股票的一部分.(此处略去一句废话)据说,如果至少满足了以下三个条件之一,公司A就可以控制公司B了 ...