首页 > 编程技术 > php

随机头像PHP版

发布时间:2016-11-25 15:20

1.    31字节 PHP 随机显示头像 
<?readfile(rand(0,5).'.jpg');?>
2.
<?php
$url='pic';
//图片地址,用相对路径
$files=array();
if ($handle=opendir("$url")) {
while(false !== ($file = readdir($handle))) { 
if ($file != "." && $file != "..") { 
if(substr($file,-3)=='gif' 
 substr($file,-3)=='jpg') $files[count($files)] = $file;
}

}
closedir($handle); 
$random=rand(0,count($files)-1);
if(substr($files[$random],-3)=='gif') header("Content-type: image/gif");
elseif(substr($files[$random],-3)=='jpg') header("Content-type: image/jpeg");
readfile("$url/$files[$random]");
?>

PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。
1.简介
PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。
PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单。
如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 
1.1 历史
三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。
PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。
1.2 PHP的先进之处
应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点:
- 学习过程
PHP 网页根据来访这的浏览器语言不同自动跳转中英文页面 
演示:http://www.gabion.cn
当来访者浏览器语言是中文就进入中文版面
国外的用户默认浏览器不是中文的就跳转英文页面
PHP代码:
<?
        $lan = substr($HTTP_ACCEPT_LANGUAGE,0,5);
        if ($lan == "zh-cn")
           print("<meta http-equiv='refresh' content = '0;URL = gb/index.htm'>");
        else
           print("<meta http-equiv='refresh' content = '0;URL = eng/index.htm'>");
?>
HTML网页根据来访这的浏览器语言不同自动跳转多语言页面 
在 <head> </head> 之间加入如下代码。
<script> 
var type=navigator.appName 
if (type=="Netscape") 
var lang = navigator.language 
else 
var lang = navigator.userLanguage 
//cut down to first 2 chars of country code 
var lang = lang.substr(0,2) 
// 英语
if (lang == "en") 
window.location.replace('url') 
// 简体中文
else if (lang == "zh-cn") 
window.location.replace('url') 
// 繁体中文
else if (lang == "zh-tw") 
window.location.replace('url') 
// 德语
else if (lang == "de") 
window.location.replace('url') 
// 除上面所列的语言
else 
window.location.replace('url')
</script>

可以用做签名,论坛头像
PHP代码:--------------------------------------------------------------------------------
<?php
/****************************************************
残风制作ip签名探针---stormor@163.com
如果有显示不正确的地方请发E-mail给我,以便修改!
*****************************************************/
Header("Content-type: image/png");
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
$ip_agent = getenv("REMOTE_ADDR");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$ip_real = getenv("HTTP_X_FORWARDED_FOR");
$ip_agent = getenv("REMOTE_ADDR");
} else {
$ip_real = getenv("REMOTE_ADDR");
$ip_agent = "";
}
if(!$ip_agent){
$wenzi="IP:";
$ip_count=strlen($ip_real);
$left=22;
$width=$ip_count*6+$left+5;
$height=14;
$picture=Imagecreate($width,$height);
$bgcolor=ImageColorAllocate($picture,225,250,225);
$bordercolor=ImageColorAllocate($picture,0,0,0);
$fontcolor=ImageColorAllocate($picture,0,0,0);
Imageline($picture,0,0,$width-1,0,$bordercolor);
Imageline($picture,0,0,0,$height-1,$bordercolor);
Imageline($picture,$width-1,$height-1,$width-1,0,$bordercolor);
Imageline($picture,$width-1,$height-1,0,$height-1,$bordercolor);
Imagestring($picture,2,2,0,$wenzi,$fontcolor);
Imagestring($picture,2,$left+2,0,$ip_real,$fontcolor);
Imagepng($picture);
ImageDestroy($picture);
}else{
$wenzi1="IP1:";
$wenzi2="IP2:";
$ip_count1=strlen($ip_real);
$ip_count2=strlen($ip_agent);
$left=26;
if($ip_count1>=$ip_count2){$width=$ip_count1*6+$left+5;}else{$width=$ip_count2*6+$left+5;}
$height=29;
$middle=$height/2+1;
$picture=Imagecreate($width,$height);
$bgcolor=ImageColorAllocate($picture,225,250,225);
$bordercolor=ImageColorAllocate($picture,0,0,0);
这一个漏洞在 packetstorm 被发表,我把它翻成中文,加上自己的一些注解,希望对在 NT 上执行
PHP 的朋友有一些帮助。
当你下载 PHP 後,在它内含的安装文件中帮助了 PHP 在 NT + Apache Web Server 的安装方式
,其中的安装帮助会要你将底下这几行设置加到 apache 的 httpd.conf 设置文件中,而这个安装文
件将导引你将你的系统门户大开。
这几行命令为:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
我们进一步的解释这三行设置,这些设置命令要求 Apache 将 /php/ 这个虚拟目录直接映射到 c:/php/
目录下,所以当你使用: 
"http://www.example.com/php/"
链接网页的时候,实际上 Web Server 是直接存取到 c:/php/ 这个目录,这时候你会看到 "Access Denied"
的错误信息,但是当你改用:
"http://www.example.com/php/php.exe"
命令来连接的时候,你会发现服务器回送了 "No input file specified." 这行字,这行字是由 php.exe
所进行的回送,表示你刚刚在这台 server 上执行了 php 执行文件。
如果你的服务器是使用 php 里所教你的安装方法来作设置的,这时候你可能有了以下的危机。
[** 漏洞 1 **]
我们可以利用这个漏洞来读取这台服务器上的任何一个文件,甚至可以跨磁盘读取,只要使用下列方式连接:
"http://www.example.com/php/php.exe?c:winntepairsam"
PHP 会将文件 "c:winntepairsam" 丢给浏览器,并把它显示出来,而这个文件正是 Windows NT 
保存密码的所在,
"http://www.example.com/php/php.exe?d:winntepairsam"
PHP 会把在 D: 磁盘中相同的文件传出。
而有了这个 SAM 文件,黑客可以用以破解出你在这台机器上所设置的密码。
[** 漏洞 2 **]
如果你指定了在 php 目录下的文件,你的 Web 服务器会尝试执行这个文件,并且传会错误信息,所以当你
标签:[!--infotagslink--]

您可能感兴趣的文章: