一些PHP写的小东西


Posted in PHP onDecember 06, 2006

一些小东西有时候可能用得上! 

1.得到客户端IP地址 

function getip(){ 
       if (! empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ //使用代理的情况 
               $tip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); 
               $cip = $tip[0]; 
       } 
       else 
               $cip = $_SERVER["REMOTE_ADDR"];[ 
       return dechex(ip2long($cip)); 

2.session控制的函数 

function session_begin(){ 
       global $userid, $sid, $ip, $session, $db, $islogin; 
       $ip = getip(); 
       /* 短期而言,系统默认需要支持cookie. */ 
       if (!isset($_COOKIE['userid'])) return false; 
       else $userid = $_COOKIE['userid']; 
       if (!isset($_COOKIE['sid'])) return false; 
       else $sid = $_COOKIE['sid']; 
       /* 以上返回false意味着用户没有登陆,页面将跳转至首页(登陆页). */ 

       $query = "SELECT * FROM user WHERE nickname = '$userid'"; 
       $result = $db->sql_query($query); 
       if ($row = $db->sql_fetchrow($result)){ 
               if ($row['sid'] != $sid) return false; /* cookie传送的sid和数据库保存的不吻合 */ 
               if ($row['lastloginip'] != $ip) return false; /* IP不吻合 */ 
               /* 是否要考虑 session的过期 问题呢? */ 
       } 
       else return false; /* 没有这个userid */ 
       $session = $row; 
//        $session[''] = $row['']; 
       unset($row); 

       $islogin = true; 
       return true; 

/* bool session_end(int $userid, string $sid) */ 
function sesssion_end($userid, $sid){ 
       return true; 

3.做选美的投票程序 

<?php 
header("Refresh:0;url=./");  //一秒刷新 
?> 
<script>alert('<?php 
require_once('mysql.php'); 
require_once('functions.php'); 
$db = new sql_db('localhost','root','','selectmm'); 
$user_id = $_GET['user_id']; 
$ip = getip(); 
$deltime = time()-3600;  //减去一小时 
$sql = "delete from vote where time <$deltime"; //删除掉过期的数据 
$db->sql_query($sql); 

$sql = "select ip from vote where ip='$ip' and user_id='$user_id'"; //查看一小时内是否投过 
$linkid=$db->sql_query($sql) or die(mysql_error()); 
$count=$db->sql_affectedrows(); 
if($count) 

echo "您已经投过票了!"; 

else 

$sql = "update user set vote_count=vote_count+1 WHERE user_id='$user_id'"; 
$db->sql_query($sql); 
$count=$db->sql_affectedrows(); 
if($count) 

 echo "投票成功!"; 
    $sql = "insert into vote (`ip`,`user_id`,`time`) values ('$ip','$user_id','".time()."')";//投票成功就插入一条记录。 
    $db->sql_query($sql); 


else 

 echo "投票失败!"; 


?>'); 
//history.back(); 
</script> 

4.smarty的搜索程序 

<?php 
require_once('mysql.php'); 
$db = new sql_db('localhost','root','','selectmm'); 
require_once('functions.php'); 
require_once('session.php'); 
session_begin(); 
require('./Libs/Smarty.class.php'); 
$smarty = new Smarty; 
$title = "首页"; 
$smarty->assign("islogin",$islogin); 
$smarty->assign("title",$title); 
$age=$_GET['age']; 
$arr=explode(',',$age); 
$y=date('Y'); 
$md=date('-m-d'); 
$begin=($y-$arr[1]).$md; 
$end=($y-$arr[0]).$md; 
$sql="select p.* from pic_info p,user u where p.user_id=u.user_id and u.birthday between '$begin' and '$end' group by u.user_id"; 
$link=$db->sql_query($sql) or die(mysql_error()); 
$row = $db->sql_fetchrowset($link); 
$db->sql_freeresult(); 
$smarty->assign("pic",$row); 
$smarty->display('index.tpl.htm'); 
?> 

5.注册程序 

<? 
require('mysql.php'); 
$str=new sql_db('localhost','root','','selectmm'); 
$METHOD = $_POST; 
   if (isset($METHOD['nickname']) && $METHOD['nickname'] != '') $nickname = $METHOD['nickname']; 
  else { echo "<script>alert("用户昵称不能为空.")</script>"; echo "<script>location="register.php"</script>"; } 
   if (isset($METHOD['password']) && strlen($METHOD['password'])>=6) $password = $METHOD['password']; 
  else { echo "<script>alert("密码至少6位")</script>"; echo "<a href='javascript:history.go(-2);'>"; } 
   $password2 = $METHOD['password2']; 
   if ($password != $password2) 
  { echo "<script>alert("两次输入密码不一致")</script>"; echo "<script>location="register.php"</script>"; } 
   if (isset($METHOD['name']) && $METHOD['name'] != '') $name = $METHOD['name']; 
  else { echo "<script>alert("用户名不能为空.")</script>"; echo "<script>location="register.php"</script>"; } 
    $birthday=$METHOD['Year'].$METHOD['Month'].$METHOD['Day']; 
    $stature = $METHOD['stature']; 
    $astrology = $METHOD['astrology']; 
    $bloodtype = $METHOD['bloodtype']; 
    $goodat = $METHOD['goodat']; 
    $work = $METHOD['work']; 
    $educate = $METHOD['educate']; 
    $homeplace = $METHOD['homeplace']; 
    $address = $METHOD['address']; 
    $tel = $METHOD['tel']; 
    $qq = $METHOD['qq']; 
   if (isset($METHOD['email']) && $METHOD['email'] != '') $email = $METHOD['email']; 
  else { echo "<script>alert("Email不能为空")</script>"; echo "<script>location="register.php"</script>"; } 
   if (!eregi("^[0-9a-z.-_]+@[0-9a-z.]+.[a-z]$",$email)) { echo "<script>alert("电子邮件格式不合法")</script>"; echo "<script>location="register.php"</script>"; } 
     $dian =$METHOD['dian']; 
   if (isset($METHOD['myself']) && $METHOD['myself'] != '') $myself = $METHOD['myself']; 
  else { echo "<script>alert("用.....不能为空")</script>"; echo "<script>location="register.php"</script>"; } 
   if(isset($METHOD['enounce'])&& $METHOD['enounce']!='')$enounce = $METHOD['enounce']; 
   else { echo "<script>alert(".....不能为空")</script>"; echo "<script>location="register.php"</script>"; } 

   $query = "SELECT * FROM user WHERE nickname ='$nickname' or email='$email'"; 
   $result = $str->sql_query($query)or die(mysql_error()); ; 
   if ($row = $str->sql_fetchrow($result)) 
    { echo "<script>alert("对不起,该用户已经注册")</script>"; echo "<script>location="register.php"</script>"; } 
   $password = md5($password); 
   $query = "INSERT INTO `user` (`nickname`,`password`,`name`,`birthday`,`astrology`,`bloodtype`,`stature`,`goodat`,`work`,`educate`,`homeplace`,`address`,`tel`,`email`,`qq`,`dian`,`myself`,`enounce`) VALUES('$nickname','$password','$name','$birthday','$astrology','$bloodtype','$stature','$goodat','$work','$educate','$homeplace','$address','$tel','$email','$qq','$dian','$myself','$enounce')"; 
if($str->sql_query($query)) 
     $str->sql_close(); 
   echo "<script>alert("恭喜你,注册成功")</script>"; 

   echo "<script>location="login.php"</script>"; 
?> 

6.提交参数 JS控制 

echo "<td><a href='delete.php?nickname=' onclick="return confirm('确定删除吗?rn此操作不可恢复')"><font color=red>删除该用户</font></a></td>"; 

7.在给同事做一个文本处理,两个文档一个有7万条记录,开始用嵌套循环,php死了,后面用数组解决了问题 

<?php 
if(($fp=fopen("1.txt","a+"))===false) 
  { 
          die("打开文件失败"); 
  } 
$data1=file("old.txt") or die("打开文件失败"); 
$data2=file("sports.txt") or die("打开文件失败"); 
foreach($data1 as $data) 

$x = split("[./]",$data); 
$name = $x[count($x)-2]; 
$a[$name]['md5']=$data; 

foreach($data2 as $data) 

$x = split("[,./]",$data); 
$name = $x[count($x)-2]; 
if(isset($a[$name])) 
$a[$name]['name']=$x[0]; 

foreach($a as $value) 

$str=$value['md5'].','.$value['name']; 
fwrite($fp,$str); 
echo $value['md5'].','.$value['name']."<br>"; 
fwrite($fp,$str); 

?> 

8.验证码 

<?php 
/* 
* Filename:authimg.php 
*/ 

Header("Content-type:image/PNG"); 
session_start(); 
$auth_num = ""; 
/*创建一个基于调色板的图像*/ 
$im = imagecreate(63, 20); 
/*初始化一个随机种子*/ 
srand((double)microtime() * 1000000); 
$auth_num_k = md5(rand(0, 9999)); 
$auth_num = substr($auth_num_k, 17, 5); 
/*赋值会话变量*/ 
$_SESSION['authnum'] = $auth_num; 
$black = ImageColorAllocate($im, 0, 0, 0); 
$white = ImageColorAllocate($im, 255, 255, 255); 
$gray = ImageColorAllocate($im, 200, 200, 200); 
ImageFill($im, 63, 20, $black); 
imagestring($im, 5, 10, 3, $auth_num,$gray); 

for ($i = 0;$i < 200;$i++){ 
       $randcolor = ImageColorallocate($im, rand(0,255), rand(0,255), rand(0,255)); 
       imagesetpixel($im, rand()%70, rand()%30, $randcolor); 

ImagePNG($im); 
ImageDestroy($im); 
?>

PHP 相关文章推荐
如何去掉文章里的 html 语法
Oct 09 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
php强制更新图片缓存的方法
Feb 11 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
php微信支付接口开发程序
Aug 02 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
php7性能提升的原因详解
Oct 13 PHP
PHP7新特性
Mar 09 PHP
关于时间计算的结总
Dec 06 #PHP
一段防盗连的PHP代码
Dec 06 #PHP
PHP安全配置
Dec 06 #PHP
PHP一些有意思的小区别
Dec 06 #PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 #PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 #PHP
PHP 5.0 Pear安装方法
Dec 06 #PHP
You might like
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python属于软件吗
2020/06/18 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
介绍一下JNDI的基本概念
2013/07/26 面试题
《晚上的太阳》教学反思
2014/04/23 职场文书
大学计划书范文800字
2014/08/14 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书