php 服务器变量 $_SERVER
服务器变量 $_SERVER 详解:
*的是我认为比较常用和重要的,{}部分是我自己调试后加上的,便于理解。
*1、$_SESSION['PHP_SELF'] -- 获取当前正在执行脚本的文件名
2、$_SERVER['SERVER_PROTOCOL'] -- 请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
*3、$_SERVER['REQUEST_TIME'] -- 请求开始时的时间戳。从 PHP 5.1.0 起有效。{和time函数效果一样}
*4、$_SERVER['argv'] -- 传递给该脚本的参数。{我试了下,get方法可以得到$_SERVER['argv'][0];post方法无法给他赋值}
*5、$_SERVER['SERVER_NAME'] -- 返回当前主机名。
6、$_SERVER['SERVER_SOFTWARE'] -- 服务器标识的字串,在响应请求时的头信息中给出。{如Microsoft-IIS/6.0}
*7、$_SERVER['REQUEST_METHOD'] -- 访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”
*8、$_SERVER['QUERY_STRING'] -- 查询(query)的字符串(URL 中第一个问号 ? 之后的内容)。
9、$_SERVER['DOCUMENT_ROOT'] -- 当前运行脚本所在的文档根目录。在服务器配置文件中定义。{如E:server}
10、$_SERVER['HTTP_ACCEPT'] -- 当前请求的 Accept: 头信息的内容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] -- 当前请求的 Accept-Charset: 头信息的内容。例如:“iso-8859-1,*,utf-8”。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] -- 当前请求的 Accept-Encoding: 头信息的内容。例如:“gzip”。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] -- 当前请求的 Accept-Language: 头信息的内容。例如:“en”。
14、$_SERVER['HTTP_CONNECTION'] -- 当前请求的 Connection: 头信息的内容。例如:“Keep-Alive”。
15、$_SERVER['HTTP_HOST'] -- 当前请求的 Host: 头信息的内容。
*16、$_SERVER['HTTP_REFERER'] -- 链接到当前页面的前一页面的 URL 地址。
*17、$_SERVER['HTTP_USER_AGENT'] -- 返回用户使用的浏览器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER['HTTPS'] -- 如果通过https访问,则被设为一个非空的值,否则返回off.
*19、$_SERVER['REMOTE_ADDR'] -- 正在浏览当前页面用户的 IP 地址。
20、$_SERVER['REMOTE_HOST'] -- 正在浏览当前页面用户的主机名。反向域名解析基于该用户的 REMOTE_ADDR。{如本地测试返回127.0.0.1}
21、$_SERVER['REMOTE_PORT'] -- 用户连接到服务器时所使用的端口。{我在本机测试没通过,不知道什么原因}
22、$_SERVER['SCRIPT_FILENAME'] -- 当前执行脚本的绝对路径名。{如返回E:serverindex.php}
23、$_SERVER['SERVER_ADMIN'] -- 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值
24、$_SERVER['SERVER_PORT'] -- 服务器所使用的端口。默认为“80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
25、$_SERVER['SERVER_SIGNATURE'] -- 包含服务器版本和虚拟主机名的字符串。
26、$_SERVER['PATH_TRANSLATED'] -- 当前脚本所在文件系统(不是文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 Apache 2 用 户可以使用 httpd.conf 中的 AcceptPathInfo On 来定义 PATH_INFO。
*27、$_SERVER['SCRIPT_NAME'] -- 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 包含当前文件的绝对路径和文件名(例如包含文件)。
*28、$_SERVER['REQUEST_URI'] -- 访问此页面所需的 URI。例如,“/index.html”。
29、$_SERVER['PHP_AUTH_DIGEST'] -- 当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作)。
30、$_SERVER['PHP_AUTH_USER']-- 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
31、$_SERVER['PHP_AUTH_PW'] -- 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
32、$_SERVER['AUTH_TYPE']--当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
设置cookie时是将数据先经过serialize将数据变成一个字符串,然后再经过base64_encode转化成一个没特殊符号的字符串。把这个字符串设置到cookie中。然后在得到cookie的数据时用getcookie函数取回对应的数据。
这样做的好处正如我之前说的,可以很方便得把数组甚至对像都保存在cookie中。方便进行设置及调用。
当然也会有不足的地方,那就是cookie可以保存的数据量会大大减小,因为保存了很多用于定义数据属性的内容。
function MyCookie($var,$value='',$lifetime='Y')
{
if($value!='')
{
$value=base64_encode(serialize($value));
}
if($lifetime=='D')
{
$lifetime=time()+86400;
}
setcookie($var,$value,$$lifetime);
}
function GetCookie($var)
{
$value='';
if(array_key_exists($var,$_COOKIE)
{
$value=$_COOKIE[$var];
$value=unserialize(base64_decode($value));
}
return $value;
}
常用到到sql select来进行数据库查询,与显示操作
<?php
//连接数据库
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
//选择数据库
mysql_select_db("my_test");
//以上为头部数据库连接部分,为以下公用的部分。
if(!$_GET[id]){
//显示用户列表
$sql = "select * from userinfo";
$result=mysql_query($sql);
echo "<TABLE border=1>
<TR>
<TD>编号</TD>
<TD>用户名称</TD>
<TD>性别</TD>
<TD>年龄</TD>
<TD>注册时间</TD>
<TD>详细信息</TD>
</TR>";
while($row=mysql_fetch_array($result)){
echo "<TR>
<TD>".$row[id]."</TD>
<TD>".$row[username]."</TD>
<TD>".$row[gender]."</TD>
<TD>".$row[age]."</TD>
<TD>".$row[regdate]."</TD>
<TD><a href=query.php?id=".$row[id].">查看</a></TD>
</TR>";
}
echo "</TABLE>";
}
else
{
//显示指定用户的详细信息
$sql="select * from userinfo where id=".$_GET[id];
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo "编号:".$row[id]."<br>用户名:".$row[username]."<br>性别:".$row[gender]."<br>年龄:".$row[age]."<br>注册时间:".$row['regdate'];
echo "<br><br><br><a href=query.php>继续查询</a>";
}
}//end if
?>
<?php
//连接数据库
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
mysql_select_db("my_test");
if(!$_GET[id])
{
$result=mysql_query("select * from userinfo");
echo "<TABLE border=1>
<TR>
<TD>编号</TD>
<TD>用户名称</TD>
<TD>性别</TD>
<TD>年龄</TD>
<TD>注册时间</TD>
<TD>操作</TD>
</TR>";
while($row=mysql_fetch_array($result)){
echo "<TR>
<TD>".$row[id]."</TD>
<TD>".$row[username]."</TD>
<TD>".$row[gender]."</TD>
<TD>".$row[age]."</TD>
<TD>".$row[regdate]."</TD>
<TD><a href=modify.php?id=".$row[id].">编辑</a></TD>
</TR>";
}
echo "</TABLE>";
}//显示列表的内容
else
{
if(!$_POST[ok])
{
$sql="select * from userinfo where id=".$_GET[id];
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
?>
<form method=post action='modify.php?id=<? echo $_GET[id];?>'>
<?
echo $row[id]."<br>";
?>
<INPUT TYPE="hidden" name="id" value=<?echo $row[id];?>>
姓名 <input type=text name="username" value=<?echo $row[username];?>><br>
性别 <input type=text name="gender" value=<?echo $row[gender];?>><br>
年龄 <input type=text name="age" value=<?echo $row[age];?>><br>
注册时间 <input type=text name="regdate" value=<?echo $row['regdate'];?>><br>
<input type=submit name=ok value="提交">
</form>
<?
}// if(!$_POST[ok])
else{//针对$ok被激活后的处理:
$sql="update userinfo set username='".$_POST[username]."',gender='".$_POST[gender]."',age='".$_POST[age]."',regdate='".$_POST[regdate]."' where id='".$_POST[id]."'";
$result=mysql_query($sql);
if($result)
echo "记录已经成功修改<br><a href='modify.php'>继续修改记录</a>";
else
echo "记录修改失败<br><a href=modify.php?id=".$_POST[id].">返回</a>";
}
}//else($id部分)
} // end if
?>
<?php
if($_POST[ok])
{
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
//选择数据库
mysql_select_db("my_test");
//插入数据SQL语句
$sql="insert into userinfo values('".$_POST[id]."','".$_POST[name]."','".$_POST[gender]."','".$_POST[age]."','".$_POST[regdate]."')";
//执行SQL语句
$result=mysql_query($sql);
if($result)
{
echo "记录已经成功插入<br><a href='insert.php'>继续插入记录</a>";
}
else
echo "执行插入SQL语句失败";
//关闭数据库
mysql_close($link_id);
}
}
else
{
?>
<form method=post action=insert.php>
编号<input type=text name="id"><br>
姓名<input type=text name="name"><br>
性别<input type=text name="gender" ><br>
年龄<input type=text name="age"><br>
注册时间<input type=text name="regdate"><br>
<input type=submit name=ok value="提交">
</form>
<?
}//end if
?>
相关文章
- 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
- 本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
- 这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
解决vue的router组件component在import时不能使用变量问题
这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27- 这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
- 简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
- 在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
- 这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08- 前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
- 本文详细讲解了SQLServer中执行动态SQL的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2022-05-19
- 这篇文章主要介绍了C#查询SqlServer数据库并返回单个值的方法,涉及C#操作SQLServer数据库查询的相关技巧,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法
这篇文章主要介绍了SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法,需要的朋友可以参考下...2020-07-11- 这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
- 虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法...2020-06-25
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
解决HttpPost+json请求---服务器中文乱码及其他问题
这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22C#实现Excel表数据导入Sql Server数据库中的方法
这篇文章主要介绍了C#实现Excel表数据导入Sql Server数据库中的方法,结合实例形式详细分析了C#读取Excel表数据及导入Sql Server数据库的具体操作步骤与相关操作技巧,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09